メインコンテンツへスキップ
Apache NiFi は、ソフトウェアシステム間のデータフローを自動化するために設計されたオープンソースのワークフロー管理ソフトウェアです。ETL データパイプラインを作成でき、300 を超えるデータプロセッサがあらかじめ用意されています。このステップバイステップのチュートリアルでは、Apache NiFi をデータソースおよび宛先の両方として ClickHouse に接続し、サンプルデータセットを読み込む方法を説明します。
1

接続情報を確認する

HTTP(S) で ClickHouse に接続するには、次の情報が必要です。ClickHouse Cloud サービスの詳細は、ClickHouse Cloud コンソールで確認できます。 サービスを選択し、Connect をクリックします。HTTPS を選択します。接続情報は curl コマンドの例として表示されます。セルフマネージド ClickHouse を使用している場合、接続情報は ClickHouse 管理者によって設定されます。
2

Apache NiFi をダウンロードして実行する

新規セットアップの場合は、https://nifi.apache.org/download.html からバイナリをダウンロードし、./bin/nifi.sh start を実行して起動します
3

ClickHouse JDBCドライバーをダウンロードする

  1. GitHub のClickHouse JDBCドライバーのリリースページにアクセスし、最新の JDBC リリースを確認します
  2. 該当するリリースで “Show all xx assets” をクリックし、“shaded” または “all” を含む JAR ファイルを探します (例: clickhouse-jdbc-0.5.0-all.jar)
  3. その JAR ファイルを Apache NiFi からアクセスできるフォルダーに配置し、絶対パスを控えておきます
4

DBCPConnectionPool Controller Service を追加し、そのプロパティを設定する

  1. Apache NiFi で Controller Service を設定するには、“gear” ボタンをクリックして NiFi Flow Configuration ページを開きます
  2. Controller Services タブを選択し、右上の + ボタンをクリックして新しい Controller Service を追加します
  3. DBCPConnectionPool を検索し、“Add” ボタンをクリックします
  4. 新しく追加した DBCPConnectionPool は、デフォルトでは Invalid 状態です。設定を開始するには、“gear” ボタンをクリックします
  5. “Properties” セクションで、以下の値を入力します
  1. Settings セクションで、識別しやすいように Controller Service の名前を “ClickHouse JDBC” に変更します
  2. “lightning” ボタンをクリックし、続けて “Enable” ボタンをクリックして DBCPConnectionPool Controller Service を有効にします
  3. Controller Services タブを確認し、Controller Service が有効になっていることを確認します
5

ExecuteSQL プロセッサを使用してテーブルから読み取る

  1. 適切な上流側および下流側のプロセッサとともに、ExecuteSQL プロセッサを追加します
  2. ExecuteSQL プロセッサの “Properties” セクションで、次の値を入力します
  3. ExecuteSQL プロセッサを開始します
  4. クエリが正常に処理されたことを確認するには、出力キュー内の FlowFile のいずれか 1 つを確認します
  5. 出力 FlowFile の結果を表示するには、表示を “formatted” に切り替えます
6

MergeRecordPutDatabaseRecord プロセッサを使用してテーブルに書き込む

  1. 1 回の insert で複数の行を書き込むには、まず複数のレコードを 1 つのレコードにマージする必要があります。これは MergeRecord プロセッサを使用して行えます
  2. MergeRecord プロセッサの “Properties” セクションで、以下の値を入力します
  3. 複数のレコードが 1 つにマージされていることを確認するには、MergeRecord プロセッサの input と output を確認します。output は複数の input レコードからなる配列である点に注意してください Input Output
  4. PutDatabaseRecord プロセッサの “Properties” セクションで、以下の値を入力します
  5. 各 insert に複数の行が含まれていることを確認するには、テーブルの行数が MergeRecord で定義した “Minimum Number of Records” の値以上ずつ増えていることを確認します。
  6. これで、Apache NiFi を使用して ClickHouse にデータを正常にロードできました!
最終更新日 2026年6月19日