製品をチェック

HubDB Driver の30日間無償トライアルをダウンロード

 30日間の無償トライアルへ

製品の詳細

HubDB アイコン HubDB JDBC Driver 相談したい

HubDB データと連携するパワフルなJava アプリケーションを短時間・低コストで作成して配布できます。

Apache Spark でHubDB データをSQL で操作する方法

CData JDBC ドライバーを使用して、Apache Spark でHubDB にデータ連携。

杉本和也
リードエンジニア

最終更新日:2023-09-04
hubdb ロゴ

CData

jdbc ロゴ画像
Apache Spark ロゴ

こんにちは!リードエンジニアの杉本です。

Apache Spark は大規模データ処理のための高速エンジンです。CData JDBC Driver for HubDB と組み合わせると、Spark はリアルタイムでHubDB データに連携して処理ができます。本記事では、Spark シェルに接続してHubDB をクエリする方法について解説します。

CData JDBC Driver は、最適化されたデータ処理がドライバーに組み込まれているため、リアルタイムHubDB と対話するための高いパフォーマンスを提供します。HubDB に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計など、サポートされているSQL操作を直接HubDB にプッシュし、組込みSQL エンジンを使用してサポートされていない操作(SQL 関数やJOIN 操作)をクライアント側で処理します。組み込みの動的メタデータクエリを使用すると、ネイティブデータ型を使用してHubDB を操作して分析できます。

CData JDBC Driver for HubDB をインストール

まずは、本記事右側のサイドバーからHubDB JDBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。

Spark Shell を起動してHubDB データに接続

  1. ターミナルを開き、Spark shell でCData JDBC Driver for HubDB JAR file をjars パラメータに設定します: $ spark-shell --jars /CData/CData JDBC Driver for HubDB/lib/cdata.jdbc.hubdb.jar
  2. Shell でJDBC URL を使ってHubDB に接続し、SQL Context load() function でテーブルを読み込みます。

    HubDBデータソースへの接続には、パブリックHubSpotアプリケーションを使用したOAuth認証とプライベートアプリケーショントークンを使用した認証の2つの方法があります。

    カスタムOAuthアプリを使用する

    すべてのOAuthフローでAuthSchemeを"OAuth"に設定する必要があります。特定の認証ニーズ(デスクトップアプリケーション、Webアプリケーション、ヘッドレスマシン)に必要な接続プロパティについては、ヘルプドキュメントを確認してください。

    アプリケーションを登録し、OAuthクライアント認証情報を取得するには、以下の手順を実行してください。

    1. HubSpotアプリ開発者アカウントにログインします。
      • アプリ開発者アカウントである必要があります。標準のHubSpotアカウントではパブリックアプリを作成できません。
    2. 開発者アカウントのホームページで、アプリタブをクリックします。
    3. アプリを作成をクリックします。
    4. アプリ情報タブで、ユーザーが接続する際に表示される値を入力し、必要に応じて変更します。これらの値には、パブリックアプリケーション名、アプリケーションロゴ、アプリケーションの説明が含まれます。
    5. 認証タブで、「リダイレクトURL」ボックスにコールバックURLを入力します。
      • デスクトップアプリケーションを作成する場合は、http://localhost:33333のようなローカルにアクセス可能なURLに設定します。
      • Webアプリケーションを作成する場合は、ユーザーがアプリケーションを承認した際にリダイレクトされる信頼できるURLに設定します。
    6. アプリを作成をクリックします。HubSpotがアプリケーションとそれに関連する認証情報を生成します。
    7. 認証タブで、クライアントIDクライアントシークレットを確認します。これらは後でドライバーを設定する際に使用します。
    8. スコープの下で、アプリケーションの意図する機能に必要なスコープを選択します。

      テーブルにアクセスするには、最低限以下のスコープが必要です:

      • hubdb
      • oauth
      • crm.objects.owners.read
    9. 変更を保存をクリックします。
    10. 統合に必要な機能にアクセスできる本番ポータルにアプリケーションをインストールします。
      • 「インストールURL(OAuth)」の下で、完全なURLをコピーをクリックして、アプリケーションのインストールURLをコピーします。
      • コピーしたリンクをブラウザで開きます。アプリケーションをインストールする標準アカウントを選択します。
      • アプリを接続をクリックします。結果のタブは閉じて構いません。

    プライベートアプリを使用する

    HubSpotプライベートアプリケーショントークンを使用して接続するには、AuthSchemeプロパティを"PrivateApp"に設定します。

    以下の手順に従ってプライベートアプリケーショントークンを生成できます:

    1. HubDBアカウントで、メインナビゲーションバーの設定アイコン(歯車)をクリックします。
    2. 左サイドバーメニューで、統合 > プライベートアプリに移動します。
    3. プライベートアプリを作成をクリックします。
    4. 基本情報タブで、アプリケーションの詳細(名前、ロゴ、説明)を設定します。
    5. スコープタブで、プライベートアプリケーションがアクセスできるようにしたい各スコープに対して読み取りまたは書き込みを選択します。
    6. テーブルにアクセスするには、最低限hubdbとcrm.objects.owners.readが必要です。
    7. アプリケーションの設定が完了したら、右上のアプリを作成をクリックします。
    8. アプリケーションのアクセストークンに関する情報を確認し、作成を続行をクリックし、その後トークンを表示をクリックします。
    9. コピーをクリックして、プライベートアプリケーショントークンをコピーします。

    接続するには、PrivateAppTokenを取得したプライベートアプリケーショントークンに設定します。

    組み込みの接続文字列デザイナー

    JDBC 接続文字列URL の作成には、HubDB JDBC Driver にビルトインされたデザイナを使用できます。JAR ファイルをダブルクリックするか、コマンドラインでJAR ファイルを実行するとデザイナが開きます。

    java -jar cdata.jdbc.hubdb.jar

    接続プロパティを入力し、接続文字列をクリップボードにコピーします。

    scala> val hubdb_df = spark.sqlContext.read.format("jdbc").option("url", "jdbc:hubdb:AuthScheme=OAuth;OAuthClientID=MyOAuthClientID;OAuthClientSecret=MyOAuthClientSecret;CallbackURL=http://localhost:33333;").option("dbtable","NorthwindProducts").option("driver","cdata.jdbc.hubdb.HubDBDriver").load()
  3. 接続が完了し、データがロードされたら、テーブルスキーマが表示されます。
  4. HubDB をテンポラリーテーブルとして登録します:

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

    scala> hubdb_df.sqlContext.sql("SELECT PartitionKey, Name FROM NorthwindProducts WHERE Id = 1").collect.foreach(println)

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

    HubDB をApache Spark から取得

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

関連コンテンツ

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

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