AirbyteをClickHouseに接続する
ClickHouse用のAirbyteソースおよびデスティネーションは現在アルファステータスであり、大規模なデータセット(1,000万行超)の移動には適していません。
Airbyte
は、オープンソースのデータ統合プラットフォームです。
ELT
データパイプラインの作成が可能で、140以上のすぐに使えるコネクタが付属しています。このステップバイステップのチュートリアルでは、AirbyteをClickHouseのデスティネーションとして接続し、サンプルデータセットを読み込む方法を説明します。
Airbyte をダウンロードして実行する
-
Airbyte は Docker 上で動作し、
docker-composeを使用します。最新版の Docker をダウンロードしてインストールしてください。 -
公式の GitHub リポジトリをクローンし、任意のターミナルで
docker-compose upを実行して Airbyte をデプロイします。 -
ターミナルに Airbyte のバナーが表示されたら、localhost:8000 に接続できます。
注記代わりに、Airbyte Cloud にサインアップして利用することもできます。
ClickHouse を送信先として追加する
このセクションでは、ClickHouse インスタンスを送信先として追加する方法を説明します。
-
ClickHouse サーバーを起動します(Airbyte は ClickHouse バージョン
21.8.10.19以降と互換性があります)、または ClickHouse Cloud アカウントにログインします。 -
Airbyte 内で "Destinations" ページを選択し、新しい送信先を追加します。

-
"Destination type" のドロップダウンリストから ClickHouse を選択し、ClickHouse のホスト名とポート、データベース名、ユーザー名とパスワードを入力して "Set up the destination" フォームに必要事項を記入し、SSL 接続かどうかを選択します(
clickhouse-clientの--secureフラグに相当)。
-
おめでとうございます。これで Airbyte に ClickHouse を送信先として追加できました。
ClickHouse を送信先として利用するには、使用するユーザーにデータベースやテーブルの作成、および行の挿入を行う権限が必要です。Airbyte 用に専用ユーザー(例: my_airbyte_user)を作成し、次の権限を付与することを推奨します。
データセットをソースとして追加する
このチュートリアルで使用するサンプルデータセットは、New York City Taxi Data(Github 上)です。このチュートリアルでは、このデータセットのうち 2022 年 1 月に対応するサブセットを使用します。
-
Airbyte で "Sources" ページを選択し、タイプが file の新しいソースを追加します。

-
"Set up the source" フォームで、ソース名と NYC Taxi Jan 2022 ファイルの URL(下記参照)を入力します。ファイルフォーマットに
parquet、Storage Provider にHTTPS Public Web、Dataset Name にnyc_taxi_2022を選択してください。
-
これで完了です。Airbyte にソースファイルを追加できました。
ClickHouse への接続を作成し、データセットをロードする
- Airbyte 内の「Connections」ページを開き、新しい接続を追加します。

-
「Use existing source」を選択して New York City Taxi Data を選び、その後「Use existing destination」を選択して自分の ClickHouse インスタンスを指定します。
-
「Set up the connection」フォームで Replication Frequency を選択します(このチュートリアルでは
manualを使用します)。また、同期したいストリームとしてnyc_taxi_2022を選択します。Normalization として必ずNormalized Tabular Dataを選択してください。

- 接続が作成されたら、「Sync now」をクリックしてデータロードを実行します(Replication Frequency に
Manualを選択しているためです)。

- データのロードが開始されます。ビューを展開すると、Airbyte のログと進行状況を確認できます。処理が完了すると、ログ内に
Completed successfullyというメッセージが表示されます。

-
お好みの SQL クライアントを使用して ClickHouse インスタンスに接続し、作成されたテーブルの内容を確認します:
応答は次のようになります:
│ 0 │ 0.5 │ 2 │ 1 │ 2.03 │ 0 │ 17 │ 41 │ 162 │ 1 │ 0 │ 22.33 │ 4.25 │ 3 │ N │ 2.5 │ 2022-01-24T16:02:27 │ 0.3 │ 2022-01-24T16:22:23 │ 000022a5-3f14-4217-9938-5657f9041c8a │ 2022-07-19 04:35:31.000 │ 2022-07-19 04:39:20 │ 91F83E2A3AF3CA79E27BD5019FA7EC94 │ │ 3 │ 0.5 │ 1 │ 1 │ 1.75 │ 0 │ 5 │ 186 │ 246 │ 1 │ 0 │ 10.55 │ 0.9 │ 1 │ N │ 2.5 │ 2022-01-22T23:23:05 │ 0.3 │ 2022-01-22T23:27:03 │ 000036b6-1c6a-493b-b585-4713e433b9cd │ 2022-07-19 04:34:53.000 │ 2022-07-19 04:39:20 │ 5522F328014A7234E23F9FC5FA78FA66 │ │ 0 │ 0.5 │ 2 │ 1 │ 7.62 │ 1.25 │ 27 │ 238 │ 70 │ 1 │ 6.55 │ 45.72 │ 9.16 │ 1 │ N │ 2.5 │ 2022-01-22T19:20:37 │ 0.3 │ 2022-01-22T19:40:51 │ 00003c6d-78ad-4288-a79d-00a62d3ca3c5 │ 2022-07-19 04:34:46.000 │ 2022-07-19 04:39:20 │ 449743975782E613109CEE448AFA0AB3 │ │ 0.5 │ 0.5 │ 2 │ 1 │ 0 │ 0 │ 9.5 │ 234 │ 249 │ 1 │ 0 │ 13.3 │ 1.5 │ 1 │ N │ 2.5 │ 2022-01-22T20:13:39 │ 0.3 │ 2022-01-22T20:26:40 │ 000042f6-6f61-498b-85b9-989eaf8b264b │ 2022-07-19 04:34:47.000 │ 2022-07-19 04:39:20 │ 01771AF57922D1279096E5FFE1BD104A │ │ 0 │ 0 │ 2 │ 5 │ 5 │ 0 │ 60 │ 265 │ 90 │ 1 │ 0 │ 65.3 │ 5.59 │ 1 │ N │ 0 │ 2022-01-25T09:28:36 │ 0.3 │ 2022-01-25T09:47:16 │ 00004c25-53a4-4cd4-b012-a34dbc128aeb │ 2022-07-19 04:35:46.000 │ 2022-07-19 04:39:20 │ CDA4831B683D10A7770EB492CC772029 │ │ 0 │ 0.5 │ 2 │ 1 │ 0 │ 0 │ 11.5 │ 68 │ 170 │ 2 │ 0 │ 14.8 │ 2.2 │ 1 │ N │ 2.5 │ 2022-01-25T13:19:26 │ 0.3 │ 2022-01-25T13:36:19 │ 00005c75-c3c8-440c-a8e8-b1bd2b7b7425 │ 2022-07-19 04:35:52.000 │ 2022-07-19 04:39:20 │ 24D75D8AADD488840D78EA658EBDFB41 │ │ 2.5 │ 0.5 │ 1 │ 1 │ 0.88 │ 0 │ 5.5 │ 79 │ 137 │ 1 │ 0 │ 9.68 │ 1.1 │ 1 │ N │ 2.5 │ 2022-01-22T15:45:09 │ 0.3 │ 2022-01-22T15:50:16 │ 0000acc3-e64f-4b58-8e15-dc47ff1685f3 │ 2022-07-19 04:34:37.000 │ 2022-07-19 04:39:20 │ 2BB5B8E849A438E08F7FCF789E7D7E65 │ │ 1.75 │ 0.5 │ 1 │ 1 │ 7.5 │ 1.25 │ 27.5 │ 17 │ 138 │ 1 │ 0 │ 37.55 │ 9 │ 1 │ N │ 0 │ 2022-01-30T21:58:19 │ 0.3 │ 2022-01-30T22:19:30 │ 0000b339-b44b-40b0-99f8-ebbf2092cc5b │ 2022-07-19 04:38:10.000 │ 2022-07-19 04:39:20 │ DCCE79199EF9217CD769EFD5271302FE │ │ 0.5 │ 0.5 │ 2 │ 1 │ 0 │ 0 │ 13 │ 79 │ 140 │ 2 │ 0 │ 16.8 │ 3.19 │ 1 │ N │ 2.5 │ 2022-01-26T20:43:14 │ 0.3 │ 2022-01-26T20:58:08 │ 0000caa8-d46a-4682-bd25-38b2b0b9300b │ 2022-07-19 04:36:36.000 │ 2022-07-19 04:39:20 │ F502BE51809AF36582561B2D037B4DDC │ │ 0 │ 0.5 │ 2 │ 1 │ 1.76 │ 0 │ 5.5 │ 141 │ 237 │ 1 │ 0 │ 10.56 │ 0.72 │ 2 │ N │ 2.5 │ 2022-01-27T15:19:54 │ 0.3 │ 2022-01-27T15:26:23 │ 0000cd63-c71f-4eb9-9c27-09f402fddc76 │ 2022-07-19 04:36:55.000 │ 2022-07-19 04:39:20 │ 8612CDB63E13D70C1D8B34351A7CA00D │ └───────┴─────────┴──────────┴────────────┴────────────┴─────────────┴─────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴───────────────┴─────────────────┴────────────────────┴──────────────────────┴──────────────────────┴───────────────────────┴───────────────────────┴──────────────────────────────────────┴─────────────────────────┴────────────────────────┴──────────────────────────────────┘
レスポンスは以下の通りです:
-
Airbyteがデータ型を自動的に推論し、宛先テーブルに4つのカラムを追加したことに注意してください。これらのカラムは、Airbyteがレプリケーションロジックを管理し、操作をログに記録するために使用されます。詳細については、Airbyte公式ドキュメントを参照してください。
データセットがClickHouseインスタンスにロードされたので、新しいテーブルを作成し、より適切なClickHouseデータ型を使用できます(詳細)。
-
おめでとうございます。Airbyteを使用してNYCタクシーデータをClickHouseに正常にロードできました。