Azure Databricks でYahoo! JAPAN DATA SOLUTION のデータに接続してデータ処理を行う方法
Databricks は、Apache Spark によるデータ処理機能を提供するクラウドベースのサービスです。CData JDBC ドライバと組み合わせることで、Databricks を使用してリアルタイムYahoo! JAPAN DATA SOLUTION のデータのデータエンジニアリングとデータサイエンスを実行できます。この記事では、Azure で CData JDBC ドライバをホストし、Databricks からリアルタイムYahoo! JAPAN DATA SOLUTION のデータに接続してデータを処理する方法を説明します。
最適化されたデータ処理機能を組み込んだ CData JDBC ドライバは、リアルタイムYahoo! JAPAN DATA SOLUTION のデータとのインタラクションにおいて卓越したパフォーマンスを発揮します。Yahoo! JAPAN DATA SOLUTION に対して複雑な SQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされている SQL 操作を直接Yahoo! JAPAN DATA SOLUTIONにプッシュし、サポートされていない操作(主に SQL 関数や JOIN 操作)は組み込みの SQL エンジンを使用してクライアント側で処理します。動的メタデータクエリ機能により、ネイティブのデータ型を使用してYahoo! JAPAN DATA SOLUTION のデータの操作・分析が可能です。
CData JDBC ドライバを Azure にインストール
Databricks でリアルタイムYahoo! JAPAN DATA SOLUTION のデータを操作するには、Azure Data Lake Storage(ADLS)を通じてドライバーをインストールします。(以前のバージョンの記事で説明していた DBFS を介した接続方法は非推奨となっていますが、廃止日は公開されていません。)
- JDBC JAR ファイルを任意の Blob コンテナにアップロードします(例:「databrickslibraries」ストレージアカウントの「jdbcjars」コンテナ)。
- ストレージアカウントから「セキュリティとネットワーク」を展開し、「アクセスキー」をクリックしてアカウントキーを取得します。使用するキーを表示してコピーしてください。
- コンテナに移動し、JAR を保存している特定のコンテナを開き、JDBC JAR ファイルのエントリを選択して JAR ファイルの URL を取得します。ファイルの詳細が開き、URL をクリップボードにコピーするボタンがあります。この値は以下のようになります(「blob」の部分はストレージアカウントの種類によって異なる場合があります):
https://databrickslibraries.blob.core.windows.net/jdbcjars/cdata.jdbc.salesforce.jar
- Databricks クラスターの「Configuration」タブで「Edit」ボタンをクリックし、「Advanced options」を展開します。そこで、以下の Spark オプション(JAR URL のドメイン名から派生)に、コピーしたアカウントキーを値として追加し、「Confirm」をクリックします:
spark.hadoop.fs.azure.account.key.databrickslibraries.blob.core.windows.net
- Databricks クラスターの「Libraries」タブで「Install new」をクリックし、ADLS オプションを選択します。ドライバー JAR の ABFSS URL(これも JAR URL のドメイン名から派生)を指定し、「Install」をクリックします。ABFSS URL は以下のようになります:
abfss://jdbcjars@databrickslibraries.blob.core.windows.net/cdata.jdbc.salesforce.jar
Databricks からYahoo! JAPAN DATA SOLUTIONに接続
JAR ファイルがインストールされたら、Databricks でリアルタイムYahoo! JAPAN DATA SOLUTION のデータを操作する準備が整いました。まず、ワークスペースで新しいノートブックを作成します。ワークブックに名前を付け、言語として Python が選択されていることを確認し(デフォルトで選択されているはずです)、「Connect」をクリックして「General Compute」から JDBC ドライバーをインストールしたクラスターを選択します(デフォルトで選択されているはずです)。
Yahoo! JAPAN DATA SOLUTIONへの接続を設定
JDBC ドライバのクラスを参照し、JDBC URL で使用する接続文字列を構築してYahoo! JAPAN DATA SOLUTIONに接続します。また、JDBC URL に RTK プロパティを設定する必要があります(Beta ドライバーを使用している場合を除く)。このプロパティの設定方法については、インストールに含まれるライセンスファイルを参照してください。
driver = "cdata.jdbc.yahoods.YahooDSDriver" url = "jdbc:yahoods:RTK=5246...;AppID=12345678-1234-1234-1234-123456789012;"
組み込みの接続文字列デザイナー
JDBC URL の構築には、Yahoo! JAPAN DATA SOLUTION JDBC Driver に組み込まれている接続文字列デザイナーを使用できます。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行してください。
java -jar cdata.jdbc.yahoods.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
認証するには、次のプロパティを指定する必要があります。
- AppID:アプリケーションID は認証に使用されます。取得するには、Yahoo! JAPAN データソリューションのサポートチームにリクエストを送信してください。
Yahoo! JAPAN DATA SOLUTION のデータの読み込み
接続を設定したら、CData JDBC ドライバと接続情報を使用してYahoo! JAPAN DATA SOLUTION のデータをデータフレームとして読み込むことができます。
remote_table = spark.read.format ( "jdbc" ) \ .option ( "driver" , driver) \ .option ( "url" , url) \ .option ( "dbtable" , "SearchRanking") \ .load ()
Yahoo! JAPAN DATA SOLUTION のデータの表示
読み込んだYahoo! JAPAN DATA SOLUTION のデータを display 関数で確認してみましょう。
display (remote_table.select ("Rank"))
Azure Databricks でYahoo! JAPAN DATA SOLUTION のデータを分析
Databricks SparkSQL でデータを処理したい場合は、読み込んだデータを一時ビューとして登録します。
remote_table.createOrReplaceTempView ( "SAMPLE_VIEW" )
以下の SparkSQL で分析用のYahoo! JAPAN DATA SOLUTION のデータを取得できます。
result = spark.sql("SELECT Rank, Volume FROM SAMPLE_VIEW WHERE SearchKeyword = 'yahoo'")
Yahoo! JAPAN DATA SOLUTION からのデータは、対象のノートブック内でのみ利用可能です。他のユーザーと共有したい場合は、テーブルとして保存してください。
remote_table.write.format ( "parquet" ) .saveAsTable ( "SAMPLE_TABLE" )
CData JDBC Driver for Yahoo! JAPAN DATA SOLUTION の30日間の無償トライアルをダウンロードして、Azure Databricks でリアルタイムYahoo! JAPAN DATA SOLUTION のデータを活用してみてください。ご不明な点があれば、サポートチームまでお気軽にお問い合わせください。