Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Airbyte を ClickHouse に接続する

パートナーインテグレーション

Airbyte はオープンソースのデータインテグレーションプラットフォームです。ELT データパイプラインを作成でき、140 を超えるコネクタが標準で用意されています。このステップバイステップのチュートリアルでは、Airbyte で ClickHouse を宛先として接続し、サンプルデータセットを読み込む方法を紹介します。

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

  1. Airbyte は Docker 上で動作し、docker-compose を使用します。Docker の最新バージョンをダウンロードしてインストールしてください。

  2. 公式の GitHub repository をクローンし、お好みのターミナルで docker-compose up を実行して Airbyte をデプロイします。

    git clone https://github.com/airbytehq/airbyte.git --depth=1
    cd airbyte
    ./run-ab-platform.sh
  3. ターミナルに Airbyte のバナーが表示されたら、localhost:8000 にアクセスできます

    Airbyte バナー

ClickHouse を宛先として追加する

このセクションでは、ClickHouse インスタンスを宛先として追加する方法を説明します。

  1. ClickHouse サーバーを起動するか (Airbyte は ClickHouse バージョン 21.8.10.19 以降に対応しています) 、ClickHouse Cloud アカウントにログインします。

    clickhouse-server start
  2. Airbyte で "Destinations" ページを選択し、新しい宛先を追加します。

    Airbyte で宛先を追加
  3. "Destination type" ドロップダウンリストから ClickHouse を選択し、ClickHouse のホスト名とポート、データベース名、ユーザー名、パスワードを入力して "Set up the destination" フォームに記入し、SSL 接続かどうかを選択します (clickhouse-client--secure フラグに相当します) 。

    Airbyte での ClickHouse 宛先の作成
  4. これで Airbyte に ClickHouse を宛先として追加できました。

データセットをソースとして追加する

このチュートリアルで使用するサンプルデータセットは、New York City Taxi Data (GitHub 上) です。このチュートリアルでは、このデータセットのうち 2022 年 1 月分に相当するサブセットを使用します。

  1. Airbyte で "Sources" ページを開き、file タイプの新しいソースを追加します。

    Airbyte でソースを追加する
  2. "Set up the source" フォームで、ソース名と NYC Taxi Jan 2022 ファイルの URL (以下を参照) を入力します。ファイルのフォーマットには parquet、Storage Provider には HTTPS Public Web、Dataset Name には nyc_taxi_2022 を選択してください。

    https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2022-01.parquet
    Airbyte での ClickHouse ソース作成
  3. これで、Airbyte にソースファイルが追加されました。

接続を作成してデータセットをClickHouseに読み込む

  1. Airbyte で、"Connections" ページを選択し、新しい接続を追加します
Airbyte で接続を追加する
  1. "既存のログソースを使用"を選択し、New York City Taxi Data を選択したら、"既存の宛先を使用"を選択して、ClickHouse インスタンスを選択します。

  2. 「接続を設定」フォームで、レプリケーション頻度 (このチュートリアルでは manual を使用します) を選択し、同期する stream として nyc_taxi_2022 を指定します。Normalization には必ず Normalized Tabular Data を選択してください。

Airbyteでの接続の作成
  1. 接続を作成したら、"Sync now" をクリックしてデータの読み込みをトリガーします (レプリケーション頻度に Manual を選択したため) 。
Airbyteで今すぐ同期する
  1. データの読み込みが開始されます。ビューを展開すると、Airbyte のログと進行状況を確認できます。処理が完了すると、ログに Completed successfully というメッセージが表示されます。
正常に完了しました
  1. お好みのSQLクライアントを使用してClickHouseインスタンスに接続し、作成されたテーブルを確認します。

    SELECT *
    FROM nyc_taxi_2022
    LIMIT 10

    レスポンスは次のようになります。

    Query id: 4f79c106-fe49-4145-8eba-15e1cb36d325
    
    ┌─extra─┬─mta_tax─┬─VendorID─┬─RatecodeID─┬─tip_amount─┬─airport_fee─┬─fare_amount─┬─DOLocationID─┬─PULocationID─┬─payment_type─┬─tolls_amount─┬─total_amount─┬─trip_distance─┬─passenger_count─┬─store_and_fwd_flag─┬─congestion_surcharge─┬─tpep_pickup_datetime─┬─improvement_surcharge─┬─tpep_dropoff_datetime─┬─_airbyte_ab_id───────────────────────┬─────_airbyte_emitted_at─┬─_airbyte_normalized_at─┬─_airbyte_nyc_taxi_2022_hashid────┐
    │     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 │
    └───────┴─────────┴──────────┴────────────┴────────────┴─────────────┴─────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴───────────────┴─────────────────┴────────────────────┴──────────────────────┴──────────────────────┴───────────────────────┴───────────────────────┴──────────────────────────────────────┴─────────────────────────┴────────────────────────┴──────────────────────────────────┘
    SELECT count(*)
    FROM nyc_taxi_2022

    応答は次のとおりです:

    Query id: a9172d39-50f7-421e-8330-296de0baa67e
    
    ┌─count()─┐
    │ 2392428 │
    └─────────┘
  2. Airbyte がデータ型を自動的に推論し、宛先テーブルに 4 つのカラムを追加していることに注目してください。これらのカラムは、Airbyte がレプリケーションのロジックを管理し、操作を記録するために使用されます。詳細は、Airbyte 公式ドキュメントを参照してください。

        `_airbyte_ab_id` String,
        `_airbyte_emitted_at` DateTime64(3, 'GMT'),
        `_airbyte_normalized_at` DateTime,
        `_airbyte_nyc_taxi_072021_hashid` String

    データセットがClickHouseインスタンスに読み込まれたので、新しいテーブルを作成し、ClickHouseのより適切なデータ型を使用できます (詳細はこちら) 。

  3. おめでとうございます。Airbyte を使用して、NYC タクシーのデータを ClickHouse への読み込みに成功しました。

Navigation