このトピックでは、Apache NiFi を Hologres に接続する方法の例を示します。
背景情報
Apache NiFi は、使いやすく信頼性の高いデータ処理および配信プラットフォームです。システム全体のデータストリームの自動管理を容易にするように設計されています。 Apache NiFi には、高度に対話的でユーザーフレンドリーな Web ベースのユーザーインターフェイス (UI) があります。 Apache NiFi を使用して、システム内またはシステム全体のデータストリームを管理および処理できます。
前提条件
Hologres インスタンスが作成されていること。詳細については、「Hologres インスタンスを購入する」をご参照ください。
Apache NiFi がインストールされていること。詳細については、「NiFi のインストールと起動方法」をご参照ください。
ローカル JSON ファイルを Hologres にインポートする
次の図は、ローカル JSON ファイルを Hologres にインポートする方法を示しています。
GetFile プロセッサ: JSON ファイルを読み取ります。
ConvertJSONToSQL プロセッサ: JSON ファイルのデータに基づいて INSERT ステートメントを生成します。
PutSQL プロセッサ: 生成された INSERT ステートメントを実行して、JSON ファイルのデータを Hologres のデータベースにインポートします。
Hologres にデータベースとテーブルを作成します。
Hologres インスタンスにログオンし、demo という名前のデータベースを作成します。詳細については、「データベースを作成する」をご参照ください。
テーブルを作成します。
次のステートメントを実行して、JSON ファイルのデータをインポートするテーブルを作成します。
DROP TABLE IF EXISTS user_info; CREATE TABLE IF NOT EXISTS user_info ( id int, first_name text, last_name text, email text );
GetFile プロセッサを構成します。
GetFile プロセッサを追加します。
詳細については、「Apache NiFi の概要」をご参照ください。
JSON ファイルのパスを指定します。
[入力ディレクトリ] プロパティに対応する [プロパティ] タブの [値] フィールドに、JSON ファイルのパスを指定します。この例では、user_info.json という名前の JSON ファイルが、Apache Nifi サーバーの
/opt/nifi/nifi-current/file_sourceディレクトリに保存されています。JSON ファイルのデータは次のとおりです。{ "id": 1, "first_name": "Sig", "last_name": "Olivo", "email": "solivo0@blinklist.com" }次の図は、JSON ファイルのパスを指定する方法を示しています。

[適用] をクリックして構成を保存します。
ConvertJSONToSQL プロセッサを構成します。
ConvertJSONToSQL プロセッサを追加します。
JDBC 接続プールにコントローラーサービスを追加します。サービスを追加するときは、[互換性のあるコントローラーサービス] パラメーターを [dbcpconnectionpool 1.16.0] に設定し、[コントローラーサービス名] パラメーターを hologres に設定します。

[dbcpconnectionpool] の右側にある右矢印をクリックして、接続文字列を構成します。
追加した DBCPConnectionPool コントローラーサービスを見つけて、右側にある設定アイコンをクリックします。

[プロパティ] タブをクリックします。[プロパティ] タブで、必要に応じてプロパティを設定します。次の表に、プロパティについて説明します。

パラメーター
説明
備考
データベース接続 URL
Hologres インスタンスへの接続に使用する JDBC 接続文字列。形式:
jdbc:postgresql://<エンドポイント>/<データベース名>。例:jdbc:postgresql://hgpostcn-cn-xxxxxxxxxxx-cn-shanghai.hologres.aliyuncs.com:80/demo。接続文字列のエンドポイントは、Hologres インスタンスのパブリックエンドポイントまたは仮想プライベートクラウド (VPC) エンドポイントである必要があります。エンドポイントを取得するには、Hologres コンソール にログオンし、インスタンスの詳細ページに移動します。
データベースドライバークラス名
ドライバークラス名。このプロパティを org.postgresql.Driver に設定します。
該当なし
データベースドライバーの場所
Hologres データベースへの接続に使用する JDBC ドライバのパス。例:
/opt/nifi/nifi-current/jdbc_driver/postgresql-42.3.4.jar。JDBC ドライバーは PostgreSQL の公式 Web サイトからダウンロードできます。 42.2.25 以降のバージョンの JDBC ドライバーをダウンロードすることをお勧めします。
データベースユーザー
Alibaba Cloud アカウントの AccessKey ID。
AccessKey ページから AccessKey ID を取得できます。
パスワード
Alibaba Cloud アカウントの AccessKey シークレット。
[OK] をクリックします。
[有効化] をクリックして、コントローラーサービスを開始します。
ConvertJSONToSQL プロセッサを構成するページに戻り、パラメーターを変更します。次の表に、パラメーターについて説明します。詳細については、「Apache NiFi の概要」をご参照ください。
パラメーター
説明
ステートメントタイプ
ステートメントタイプ。この例では、このパラメーターは
INSERTに設定されています。テーブル名
JSON ファイルのデータをインポートする Hologres テーブルの名前。この例では、テーブル名は
user_infoです。スキーマ名
Hologres テーブルが属するスキーマの名前。この例では、スキーマ名は
publicです。[適用] をクリックして構成を保存します。
PutSQL プロセッサを構成します。
PutSQL プロセッサを追加します。
JDBC 接続プール パラメーターを、手順 3.ii で追加した DBCPConnectionPool コントローラーサービスに設定します。この例では、DBCPConnectionPool コントローラーサービスの名前は
hologresです。[断片化されたトランザクションのサポート] パラメーターを false に設定します。
[適用] をクリックして構成を保存します。
JSON ファイルのデータをインポートします。
前の手順で構成したプロセッサを実行します。その後、Apache NiFi は JSON ファイルのデータを読み取り、Hologres にインポートします。

データをクエリします。
Hologres で、次のステートメントを実行して、user_info という名前のテーブルをクエリします。
SELECT * FROM user_info;次の図は、クエリ結果を示しています。
