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 のデータに接続

  1. ターミナルを開き、Spark shell でCData JDBC Driver for Kintone JAR file をjars パラメータに設定します: $ spark-shell --jars /CData/CData JDBC Driver for Kintone/lib/cdata.jdbc.kintone.jar
  2. 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()
  3. 接続が完了し、データがロードされたら、テーブルスキーマが表示されます。
  4. Kintone をテンポラリーテーブルとして登録します:

    scala> kintone_df.registerTable("apps")
  5. データに対して、次のようなカスタムSQL クエリを実行します。

    scala> kintone_df.sqlContext.sql("SELECT Name, Description FROM Apps WHERE AppId = 1354841").collect.foreach(println)

    コンソールで、次のようなKintone のデータを取得できました!これでKintone との連携は完了です。

    Kintone をApache Spark から取得

CData JDBC Driver for Kintone をApache Spark で使って、Kintone に対して、複雑かつハイパフォーマンスなクエリを実行できます。30日の無償評価版 をダウンロードしてぜひお試しください。

Apache Spark の設定

CData で実現できるkintone 連携のユースケース

Power BIロゴ Tableauロゴ

Power BI、Tableau などBI ツール & Excel 連携

Power BI & Tableau との連携はこちら
SQL Serverロゴ

SQL Server 上のマスタデータとの双方向連携

SQL Server 連携はこちら
連携先基幹システムロゴ

基幹システム・SaaS 間連携による業務自動化

基幹システム・SaaS 間連携はこちら

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。