Azure Databricks でWordPress のデータに接続してデータ処理を行う方法
Databricks は、Apache Spark によるデータ処理機能を提供するクラウドベースのサービスです。CData JDBC ドライバと組み合わせることで、Databricks を使用してリアルタイムWordPress のデータのデータエンジニアリングとデータサイエンスを実行できます。この記事では、Azure で CData JDBC ドライバをホストし、Databricks からリアルタイムWordPress のデータに接続してデータを処理する方法を説明します。
最適化されたデータ処理機能を組み込んだ CData JDBC ドライバは、リアルタイムWordPress のデータとのインタラクションにおいて卓越したパフォーマンスを発揮します。WordPress に対して複雑な SQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされている SQL 操作を直接WordPressにプッシュし、サポートされていない操作(主に SQL 関数や JOIN 操作)は組み込みの SQL エンジンを使用してクライアント側で処理します。動的メタデータクエリ機能により、ネイティブのデータ型を使用してWordPress のデータの操作・分析が可能です。
CData JDBC ドライバを Azure にインストール
Databricks でリアルタイムWordPress のデータを操作するには、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://[email protected]/cdata.jdbc.salesforce.jar
Databricks からWordPressに接続
JAR ファイルがインストールされたら、Databricks でリアルタイムWordPress のデータを操作する準備が整いました。まず、ワークスペースで新しいノートブックを作成します。ワークブックに名前を付け、言語として Python が選択されていることを確認し(デフォルトで選択されているはずです)、「Connect」をクリックして「General Compute」から JDBC ドライバーをインストールしたクラスターを選択します(デフォルトで選択されているはずです)。
WordPressへの接続を設定
JDBC ドライバのクラスを参照し、JDBC URL で使用する接続文字列を構築してWordPressに接続します。また、JDBC URL に RTK プロパティを設定する必要があります(Beta ドライバーを使用している場合を除く)。このプロパティの設定方法については、インストールに含まれるライセンスファイルを参照してください。
driver = "cdata.jdbc.wordpress.WordPressDriver" url = "jdbc:wordpress:RTK=5246...;Url=http://www.yourwordpresshost.com;"
組み込みの接続文字列デザイナー
JDBC URL の構築には、WordPress JDBC Driver に組み込まれている接続文字列デザイナーを使用できます。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行してください。
java -jar cdata.jdbc.wordpress.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
WordPress 接続プロパティの取得・設定方法
現時点では、CData JDBC Driver for WordPress はセルフホスト型のWordPress インスタンスへの接続のみをサポートしています。データに接続するには、Url を自身のwordpress サイトに指定し、次に以下に説明するように認証を行います。URL を完全な形式で記入します。例えば、あなたのサイトが'http://localhost/wp/wordpress' でホストされている場合、URL は'http://localhost' ではなく、'http://localhost/wp/wordpress' となるべきです。 URL を完全な形式で入力しないと、'site not found' というエラーが発生します。
WordPress は2種類の認証をサポートします。
- Basic 認証は、テスト環境での使用が推奨されます。
- OAuth 2.0 認証は、デスクトップアプリケーション、Web アプリケーション、またはヘッドレスマシンからのブラウザベースのアクセスをサポートします。
Basic 認証
Basic 認証を使用するようにWordPress を設定する前に:
- WordPress ログインに管理者権限があることを確認してください。
- ローカルホストで実行されているWordPress のバージョンを確認します。(WordPress 4.7 以降はネイティブでWordPress REST API サポートしていますが、それより前のバージョンでは、REST API へのアクセスを安全に行うには、Basic 認証プラグインの使用が必要です。)
- WordPress ホストにログインします。
- 4.7より前のバージョンのWordPress を実行している場合は、REST API プラグインをインストールしてください。
- Basic Authentication プラグインをインストールします。
- カスタムタクソノミーを作成するには、Simple Taxonomy Refreshed をインストールします。プラグインを手動でインストールしたい場合は、圧縮されたフォルダをwp-content\plugins フォルダに展開してからWordPress 管理者インターフェース経由でプラグインを有効にします。
- 次の接続プロパティを設定します。
- AuthScheme:Basic。
- Url:WordPress URL。
- User:ユーザーネーム。
- Password:パスワード。
WordPress のデータの読み込み
接続を設定したら、CData JDBC ドライバと接続情報を使用してWordPress のデータをデータフレームとして読み込むことができます。
remote_table = spark.read.format ( "jdbc" ) \ .option ( "driver" , driver) \ .option ( "url" , url) \ .option ( "dbtable" , "Categories") \ .load ()
WordPress のデータの表示
読み込んだWordPress のデータを display 関数で確認してみましょう。
display (remote_table.select ("Id"))
Azure Databricks でWordPress のデータを分析
Databricks SparkSQL でデータを処理したい場合は、読み込んだデータを一時ビューとして登録します。
remote_table.createOrReplaceTempView ( "SAMPLE_VIEW" )
以下の SparkSQL で分析用のWordPress のデータを取得できます。
result = spark.sql("SELECT Id, Name FROM SAMPLE_VIEW")
WordPress からのデータは、対象のノートブック内でのみ利用可能です。他のユーザーと共有したい場合は、テーブルとして保存してください。
remote_table.write.format ( "parquet" ) .saveAsTable ( "SAMPLE_TABLE" )
CData JDBC Driver for Wordpress の30日間の無償トライアルをダウンロードして、Azure Databricks でリアルタイムWordPress のデータを活用してみてください。ご不明な点があれば、サポートチームまでお気軽にお問い合わせください。