Apache Spark でZoho CRM のデータをSQL で操作する方法
Apache Spark は大規模データ処理のための高速エンジンです。CData JDBC Driver for ZohoCRM と組み合わせると、Spark はリアルタイムでZoho CRM のデータに連携して処理ができます。本記事では、Spark シェルに接続してZoho CRM をクエリする方法について解説します。
CData JDBC Driver は、最適化されたデータ処理がドライバーに組み込まれているため、リアルタイムZoho CRM と対話するための高いパフォーマンスを提供します。Zoho CRM に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計など、サポートされているSQL操作を直接Zoho CRM にプッシュし、組込みSQL エンジンを使用してサポートされていない操作(SQL 関数やJOIN 操作)をクライアント側で処理します。組み込みの動的メタデータクエリを使用すると、ネイティブデータ型を使用してZoho CRM を操作して分析できます。
CData JDBC Driver for ZohoCRM をインストール
まずは、本記事右側のサイドバーからZohoCRM JDBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。
Spark Shell を起動してZoho CRM のデータに接続
- ターミナルを開き、Spark shell でCData JDBC Driver for ZohoCRM JAR file をjars パラメータに設定します:
$ spark-shell --jars /CData/CData JDBC Driver for ZohoCRM/lib/cdata.jdbc.zohocrm.jar
- Shell でJDBC URL を使ってZoho CRM に接続し、SQL Context load() function でテーブルを読み込みます。
Zoho CRM への接続
それでは、Zoho CRM に接続していきましょう。データに接続するには、以下の接続パラメータを設定します。
- Region:Zoho CRM サーバーURL のドメインに関連付けられたリージョン
- Schema:Zoho CRM のバージョン(v2、v2.1、またはv4)。Zoho CRM のバージョンごとに独自のデータモデルがあります
これらのプロパティに加えて、認可時にサンドボックスまたは開発者インスタンスのいずれかを選択した場合は、InstanceType 接続プロパティでも同じ設定を行ってください。
Zoho CRM への認証
Zoho CRM では、データへの認証に2つの方法が用意されています。お使いの環境に応じて適切な方法を選択てください。
デスクトップ経由で自分のローカルデータに認証を行う場合(非ブラウザ接続):CData 製品が提供する埋め込みOAuth アプリケーションを使用
CData 製品はすでにZoho CRM にOAuth アプリケーションとして登録されています。そのため、デスクトップアプリケーションを介したローカルデータへの接続では、自動的に組み込みアプリケーションが使用されます。 OAuth 交換の繰り返しを避け、ローカルデータにアクセスするたびにOAuthAccessToken を手動で設定する手間を省くには、InitiateOAuth をGETANDREFRESH に設定してください。
ネットワーク経由で共有データに認証を行う場合(ブラウザ接続):カスタムOAuth アプリケーションを使用
すべてのOAuth フローで、この認証を有効にするにはAuthScheme をOAuth に設定する必要があります。
より詳細な認証手順については、ヘルプドキュメントの「Zoho CRM への認証」をご確認ください。
組み込みの接続文字列デザイナー
JDBC 接続文字列URL の作成には、Zoho CRM JDBC Driver にビルトインされたデザイナを使用できます。JAR ファイルをダブルクリックするか、コマンドラインでJAR ファイルを実行するとデザイナが開きます。
java -jar cdata.jdbc.zohocrm.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
scala> val zohocrm_df = spark.sqlContext.read.format("jdbc").option("url", "jdbc:zohocrm:AuthToken=2ad3b3e719f6bed7368e5e7e26e4f988;").option("dbtable","Accounts").option("driver","cdata.jdbc.zohocrm.ZohoCRMDriver").load() - 接続が完了し、データがロードされたら、テーブルスキーマが表示されます。
Zoho CRM をテンポラリーテーブルとして登録します:
scala> zohocrm_df.registerTable("accounts")-
データに対して、次のようなカスタムSQL クエリを実行します。
scala> zohocrm_df.sqlContext.sql("SELECT Account_Name, Annual_Revenue FROM Accounts WHERE Industry = Data/Telecom OEM").collect.foreach(println)コンソールで、次のようなZoho CRM のデータを取得できました!これでZoho CRM との連携は完了です。
CData JDBC Driver for ZohoCRM をApache Spark で使って、Zoho CRM に対して、複雑かつハイパフォーマンスなクエリを実行できます。30日の無償評価版 をダウンロードしてぜひお試しください。