BladePipe を ClickHouse に接続する
BladePipe は、サブ秒レイテンシでリアルタイムなエンドツーエンドのデータ統合を実現するツールであり、プラットフォーム間のシームレスなデータフローを可能にします。
ClickHouse は BladePipe にあらかじめ用意されたコネクタの 1 つであり、ユーザーはさまざまなソースから ClickHouse へ自動的にデータを取り込むことができます。このページでは、リアルタイムに ClickHouse にデータをロードする手順を順を追って説明します。
対応しているソース
現在、BladePipe は次のソースから ClickHouse へのデータ統合に対応しています:
- MySQL/MariaDB/AuroraMySQL
- Oracle
- PostgreSQL/AuroraPostgreSQL
- MongoDB
- Kafka
- PolarDB-MySQL
- OceanBase
- TiDB
今後、対応ソースはさらに追加される予定です。
BladePipeのダウンロードと実行
-
BladePipe Cloudにログインします。
-
Install Worker (Docker)またはInstall Worker (Binary)の手順に従い、BladePipe Workerをダウンロードしてインストールします。
または、BladePipe Enterpriseをダウンロードしてデプロイすることもできます。
ClickHouse をターゲットとして追加する
- BladePipe は ClickHouse バージョン
20.12.3.3以降をサポートしています。 - ClickHouse をターゲットとして使用するには、ユーザーに SELECT、INSERT、および一般的な DDL 実行権限が付与されていることを確認してください。
-
BladePipe で「DataSource」>「Add DataSource」をクリックします。
-
ClickHouseを選択し、ClickHouse のホストとポート、ユーザー名とパスワードを入力して設定を行い、「Test Connection」をクリックします。
-
画面下部の「Add DataSource」をクリックすると、ClickHouse インスタンスが追加されます。
MySQL をソースとして追加する
このチュートリアルでは、MySQL インスタンスをソースとして使用し、MySQL データを ClickHouse にロードする手順を説明します。
MySQL をソースとして使用するには、ユーザーに必要な権限が付与されていることを確認してください。
-
BladePipe で「DataSource」>「Add DataSource」をクリックします。
-
MySQLを選択し、MySQL のホストとポート、ユーザー名とパスワードを入力して設定し、「Test Connection」をクリックします。
-
画面下部の「Add DataSource」をクリックすると、MySQL インスタンスが追加されます。
パイプラインを作成する
-
BladePipe で「DataJob」>「Create DataJob」をクリックします。
-
追加した MySQL と ClickHouse のインスタンスを選択し、「Test Connection」をクリックして BladePipe がインスタンスに接続できていることを確認します。その後、移行するデータベースを選択します。

-
DataJob Type として「Incremental」を選択し、「Full Data」オプションも選択します。

-
レプリケート対象のテーブルを選択します。

-
レプリケート対象の列を選択します。

-
DataJob の作成を確認すると、DataJob が自動的に実行されます。

データの検証
- MySQLインスタンスへのデータ書き込みを停止し、ClickHouseがデータをマージするまで待機します。
注記
ClickHouseの自動マージのタイミングは予測できないため、
OPTIMIZE TABLE xxx FINAL;コマンドを実行して手動でマージをトリガーすることができます。ただし、手動マージが必ずしも成功するとは限らない点に注意してください。
または、CREATE VIEW xxx_v AS SELECT * FROM xxx FINAL;コマンドを実行してビューを作成し、そのビューに対してクエリを実行することで、データが完全にマージされていることを確認できます。
:::
- 検証DataJobを作成します。検証DataJobが完了したら、結果を確認し、ClickHouse内のデータがMySQL内のデータと一致していることを確認してください。
