Apache NiFi で HubDB に接続
Apache NiFi は、強力かつスケーラブルなデータルーティング、変換、システム間連携ロジックの有向グラフをサポートしています。CData JDBC Driver for HubDB と組み合わせることで、NiFi からリアルタイムのHubDB のデータ を操作できます。この記事では、Apache NiFi Flow からHubDB のデータ に接続してクエリを実行する方法を説明します。
CData JDBC Driver は、最適化されたデータ処理機能が組み込まれており、リアルタイムのHubDB のデータ とのやり取りにおいて比類のないパフォーマンスを提供します。複雑なSQL クエリをHubDB に発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作を直接HubDB にプッシュし、サポートされていない操作(多くの場合SQL 関数やJOIN 操作)は組み込みのSQL エンジンでクライアント側に処理します。また、組み込みの動的メタデータクエリにより、ネイティブのデータ型を使用してHubDB のデータ を操作・分析できます。
Apache NiFi でHubDB のデータ に接続
- CData JDBC Driver for HubDB のインストーラーをダウンロードし、パッケージを解凍して、.exe ファイルを実行してドライバーをインストールします。
CData JDBC Driver のJAR ファイル(およびライセンスファイルがある場合はそれも)、cdata.jdbc.hubdb.jar(および cdata.jdbc.hubdb.lic)を Apache NiFi の lib サブフォルダにコピーします(例:C:\nifi-1.3.0-bin\nifi-1.3.0\lib)。
Windows では、CData JDBC Driver のデフォルトのインストール場所は C:\Program Files\CData\CData JDBC Driver for HubDB です。
bin サブフォルダにある run-nifi.bat ファイルを実行して Apache NiFi を起動します(例:C:\nifi-1.3.0-bin\nifi-1.3.0\bin)。
(または)
コマンドプロンプトで対象のディレクトリに移動し、run-nifi.bat ファイルを実行します:
cd C:\nifi-1.3.0-bin\nifi-1.3.0\bin .\run-nifi.bat
Web ブラウザで Apache NiFi の UI に移動します:https://localhost:8443/nifi でアクセスできます。
注意:古いバージョンの Apache NiFi を使用している場合は、http://localhost:8080/nifi からアクセスする必要があります。以前のバージョンでは HTTP プロトコルが使用されていましたが、最新バージョンでは HTTPS が標準になっています。デフォルトでは、HTTP はポート 8080 で動作し、HTTPS はポート 8443 を使用します。
URL から Apache NiFi にアクセスすると、ログイン用のユーザー名とパスワードの入力を求められます。
ログイン資格情報を取得するには、NiFi のインストールディレクトリ内の log ディレクトリにある「App.log」ファイルを確認してください。このファイルには通常、NiFi インターフェースにアクセスするために必要な情報が含まれています。
- NiFi Flow のワークスペースを右クリックし、「Controller Services」をクリックします。
- ボタンをクリックして、新しいコントローラーサービスを作成します。
- Controller Services セクションで、新しく作成した「DBCPConnection Pool」を見つけ、メニュー()から「Edit」をクリックして新しい接続を設定します。
以下のプロパティを入力します:
- Database Connection URL:jdbc:hubdb:AuthScheme=OAuth;OAuthClientID=MyOAuthClientID;OAuthClientSecret=MyOAuthClientSecret;CallbackURL=http://localhost:33333;
- Database Driver Class Name:cdata.jdbc.hubdb.HubDBDriver
- Database Driver Location(s):Apache NiFi の lib フォルダへのパス(JAR ファイルが配置されている場所)。
組み込みの接続文字列デザイナー
JDBC URL の構築には、HubDB JDBC Driver に組み込まれている接続文字列デザイナーを使用できます。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行してください。
java -jar cdata.jdbc.hubdb.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
HubDBデータソースへの接続には、パブリックHubSpotアプリケーションを使用したOAuth認証とプライベートアプリケーショントークンを使用した認証の2つの方法があります。
カスタムOAuthアプリを使用する
すべてのOAuthフローでAuthSchemeを"OAuth"に設定する必要があります。特定の認証ニーズ(デスクトップアプリケーション、Webアプリケーション、ヘッドレスマシン)に必要な接続プロパティについては、ヘルプドキュメントを確認してください。
アプリケーションを登録し、OAuthクライアント認証情報を取得するには、以下の手順を実行してください。
- HubSpotアプリ開発者アカウントにログインします。
- アプリ開発者アカウントである必要があります。標準のHubSpotアカウントではパブリックアプリを作成できません。
- 開発者アカウントのホームページで、アプリタブをクリックします。
- アプリを作成をクリックします。
- アプリ情報タブで、ユーザーが接続する際に表示される値を入力し、必要に応じて変更します。これらの値には、パブリックアプリケーション名、アプリケーションロゴ、アプリケーションの説明が含まれます。
- 認証タブで、「リダイレクトURL」ボックスにコールバックURLを入力します。
- デスクトップアプリケーションを作成する場合は、http://localhost:33333のようなローカルにアクセス可能なURLに設定します。
- Webアプリケーションを作成する場合は、ユーザーがアプリケーションを承認した際にリダイレクトされる信頼できるURLに設定します。
- アプリを作成をクリックします。HubSpotがアプリケーションとそれに関連する認証情報を生成します。
- 認証タブで、クライアントIDとクライアントシークレットを確認します。これらは後でドライバーを設定する際に使用します。
スコープの下で、アプリケーションの意図する機能に必要なスコープを選択します。
テーブルにアクセスするには、最低限以下のスコープが必要です:
- hubdb
- oauth
- crm.objects.owners.read
- 変更を保存をクリックします。
- 統合に必要な機能にアクセスできる本番ポータルにアプリケーションをインストールします。
- 「インストールURL(OAuth)」の下で、完全なURLをコピーをクリックして、アプリケーションのインストールURLをコピーします。
- コピーしたリンクをブラウザで開きます。アプリケーションをインストールする標準アカウントを選択します。
- アプリを接続をクリックします。結果のタブは閉じて構いません。
プライベートアプリを使用する
HubSpotプライベートアプリケーショントークンを使用して接続するには、AuthSchemeプロパティを"PrivateApp"に設定します。
以下の手順に従ってプライベートアプリケーショントークンを生成できます:
- HubDBアカウントで、メインナビゲーションバーの設定アイコン(歯車)をクリックします。
- 左サイドバーメニューで、統合 > プライベートアプリに移動します。
- プライベートアプリを作成をクリックします。
- 基本情報タブで、アプリケーションの詳細(名前、ロゴ、説明)を設定します。
- スコープタブで、プライベートアプリケーションがアクセスできるようにしたい各スコープに対して読み取りまたは書き込みを選択します。
- テーブルにアクセスするには、最低限hubdbとcrm.objects.owners.readが必要です。
- アプリケーションの設定が完了したら、右上のアプリを作成をクリックします。
- アプリケーションのアクセストークンに関する情報を確認し、作成を続行をクリックし、その後トークンを表示をクリックします。
- コピーをクリックして、プライベートアプリケーショントークンをコピーします。
接続するには、PrivateAppTokenを取得したプライベートアプリケーショントークンに設定します。
- Controller Services セクションで、新しく作成した DBCPConnection Pool を見つけ、メニュー()から「Enable」をクリックして新しい接続を有効にします。
- 「Enable Controller Service」ウィンドウで、Scope を「Service and referencing components」に設定します。
- 接続を確立し、SELECT クエリを実行するには、プロセッサー(黄色でハイライトされている部分)をワークスペースにドラッグ&ドロップします。
- 「ExecuteSQL」プロセッサーを選択し、「Add」ボタンをクリックしてワークスペースに表示させます。
- 追加したプロセッサー(ExecuteSQL)をダブルクリックして、接続ページを開きます。
- Properties セクションで、必要な情報を入力します。Database Connection Pooling Service を作成した DBCPConnectionPool に一致させ、SQL select query セクションに実行したい SQL クエリを設定してください。
- Relationships に移動し、実行プロセスの成功時と失敗時にコンポーネントがどのように処理を進めるかのオプションを選択してください。
- ExecuteSQL コンポーネントを有効にするには、それを選択して Operation セクションの「Enable」をクリックするか、右クリックして「Enable」を選択します。
これでHubDB のデータ が Apache NiFi で使用できるようになりました。たとえば、DBCPConnection Pool を QueryDatabaseTable プロセッサーのソースとして使用できます(以下に表示)。
30日間の無料トライアルをダウンロードして、Apache NiFi でリアルタイムのHubDB のデータ を操作してみてください。ご不明な点は、サポートチームまでお気軽にお問い合わせください。