各製品の資料を入手。
詳細はこちら →Apache Spark でKintone のデータをSQL で操作する方法
CData JDBC ドライバーを使用して、Apache Spark でKintone にデータ連携。
最終更新日:2023-09-04
この記事で実現できるKintone 連携のシナリオ
こんにちは!リードエンジニアの杉本です。
Apache Spark は大規模データ処理のための高速エンジンです。CData JDBC Driver for Kintone と組み合わせると、Spark はリアルタイムでKintone のデータに連携して処理ができます。本記事では、Spark シェルに接続してKintone をクエリする方法について解説します。
CData JDBC Driver は、最適化されたデータ処理がドライバーに組み込まれているため、リアルタイムKintone と対話するための高いパフォーマンスを提供します。Kintone に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計など、サポートされているSQL操作を直接Kintone にプッシュし、組込みSQL エンジンを使用してサポートされていない操作(SQL 関数やJOIN 操作)をクライアント側で処理します。組み込みの動的メタデータクエリを使用すると、ネイティブデータ型を使用してKintone を操作して分析できます。
CData JDBC Driver for Kintone をインストール
まずは、本記事右側のサイドバーからKintone JDBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。
Spark Shell を起動してKintone のデータに接続
- ターミナルを開き、Spark shell でCData JDBC Driver for Kintone JAR file をjars パラメータに設定します:
$ spark-shell --jars /CData/CData JDBC Driver for Kintone/lib/cdata.jdbc.kintone.jar
- Shell でJDBC URL を使ってKintone に接続し、SQL Context load() function でテーブルを読み込みます。
Kintone 接続プロパティの設定方法
Kintone に接続するには、以下の接続プロパティを設定する必要があります。
- URL:Kintone のアクセスURL(例:https://yoursitename.cybozu.com または https://yoursitename.kintone.com)
- User:アカウントのユーザー名
- Password:アカウントのパスワード
- AuthScheme:Password を指定
パスワード認証の代わりにAPI トークン認証を利用する場合は、ヘルプドキュメントの「接続の設定」セクションをご参照ください。
Basic 認証の設定
ご利用のKintone ドメインでBasic 認証を有効にしている場合は、接続プロパティの「詳細」設定で以下の項目を追加設定してください。
- BasicAuthUser:Basic認証のユーザー名
- BasicAuthPassword:Basic認証のパスワード
クライアント証明書認証の設定
Basic認証の代わりにクライアント証明書による認証を利用する場合は、以下の項目を設定してください。
- SSLClientCert:クライアント証明書のパス
- SSLClientCertType:証明書の種類
- SSLClientCertSubject:証明書のサブジェクト
- SSLClientCertPassword:証明書のパスワード
組み込みの接続文字列デザイナー
JDBC 接続文字列URL の作成には、Kintone JDBC Driver にビルトインされたデザイナを使用できます。JAR ファイルをダブルクリックするか、コマンドラインでJAR ファイルを実行するとデザイナが開きます。
java -jar cdata.jdbc.kintone.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
scala> val kintone_df = spark.sqlContext.read.format("jdbc").option("url", "jdbc:kintone:User=myuseraccount;Password=mypassword;URL=http://subdomain.domain.com;").option("dbtable","Apps").option("driver","cdata.jdbc.kintone.KintoneDriver").load()
- 接続が完了し、データがロードされたら、テーブルスキーマが表示されます。
Kintone をテンポラリーテーブルとして登録します:
scala> kintone_df.registerTable("apps")
-
データに対して、次のようなカスタムSQL クエリを実行します。
scala> kintone_df.sqlContext.sql("SELECT Name, Description FROM Apps WHERE AppId = 1354841").collect.foreach(println)
コンソールで、次のようなKintone のデータを取得できました!これでKintone との連携は完了です。
CData JDBC Driver for Kintone をApache Spark で使って、Kintone に対して、複雑かつハイパフォーマンスなクエリを実行できます。30日の無償評価版 をダウンロードしてぜひお試しください。