MySQL ClickPipe は、MySQL および MariaDB データベースから ClickHouse Cloud にデータを取り込むための、フルマネージドかつ耐障害性に優れた方法です。バルクロードによる一回限りのインジェストと、**変更データキャプチャ (CDC (変更データキャプチャ) ) **による継続的インジェストの両方をサポートしています。
MySQL ClickPipe は、ClickPipes UI を使用して手動でデプロイおよび管理できるほか、OpenAPI や Terraform を使用してプログラムで操作することもできます。
前提条件
開始するには、まず MySQL データベースが binlog レプリケーション用に正しく設定されていることを確認する必要があります。設定手順は MySQL のデプロイ方法によって異なるため、以下の該当するガイドに従ってください。
サポート対象のデータソース
| 名前 | ロゴ | 詳細 |
|---|---|---|
| Amazon RDS MySQL 一度だけロード, CDC (変更データキャプチャ) |
Amazon RDS MySQL の設定ガイドに従ってください。 | |
| Amazon Aurora MySQL 一度だけロード, CDC (変更データキャプチャ) |
Amazon Aurora MySQL の設定ガイドに従ってください。 | |
| Cloud SQL for MySQL 一度だけロード, CDC (変更データキャプチャ) |
Cloud SQL for MySQL の設定ガイドに従ってください。 | |
| Azure Flexible Server for MySQL 一度だけロード |
Azure Flexible Server for MySQL の設定ガイドに従ってください。 | |
| セルフホスト MySQL 一度だけロード, CDC (変更データキャプチャ) |
Generic MySQL の設定ガイドに従ってください。 | |
| Amazon RDS MariaDB 一度だけロード, CDC (変更データキャプチャ) |
Amazon RDS MariaDB の設定ガイドに従ってください。 | |
| セルフホスト MariaDB 一度だけロード, CDC (変更データキャプチャ) |
Generic MariaDB の設定ガイドに従ってください。 |
ソース MySQL データベースの設定が完了したら、ClickPipe の作成に進むことができます。
ClickPipe を作成する
ClickHouse Cloud アカウントにログインしていることを確認してください。まだアカウントをお持ちでない場合は、こちらから登録できます。
- ClickHouse Cloud コンソールで、対象の ClickHouse Cloud サービスを開きます。

- 左側のメニューで
Data Sourcesボタンを選択し、「Set up a ClickPipe」をクリックします

MySQL CDC(変更データキャプチャ)タイルを選択します

ソース MySQL データベース接続を追加する
- 前提条件の手順で設定したソース MySQL データベースの接続情報を入力します。

(任意) TLS設定の変更
デフォルトでは、ClickPipe は TLS と証明書検証を有効にした状態で作成されます。これらのデフォルト設定は、ClickPipe の作成時に変更できます。

または、一時停止中の ClickPipe の Settings タブにある Connection settings セクションで編集することもできます。


各項目の意味は次のとおりです。
Disable TLSは、その接続で TLS を有効または無効にするトグルです。TLS を無効にすると、データはネットワーク上を平文で送信されるため、シークレットや機密データが含まれる可能性があります。Skip certificate verificationは、ソースデータベースから提示される証明書の検証を有効または無効にするトグルです。証明書検証をスキップすることによるセキュリティ上の影響を考慮してください。TLS Host(省略可。デフォルトはソースの Host) は、証明書検証が有効な場合に、証明書の CN と一致している必要があるホスト名です。Upload CAは、証明書検証が有効な場合に使用する CA を指定するために利用できます。
(任意) SSH トンネリングを設定する
ソースの MySQL データベースが外部公開されていない場合は、SSH トンネリングの接続情報を指定できます。
-
「Use SSH Tunnelling」トグルを有効にします。
-
SSH の接続情報を入力します。

-
鍵ベース認証を使用する場合は、「Revoke and generate key pair」をクリックして新しいキーペアを生成し、生成された公開鍵を SSH サーバーの
~/.ssh/authorized_keysにコピーします。 -
「Verify Connection」をクリックして接続を確認します。
接続情報の入力が完了したら、Next をクリックします。
詳細設定を設定する
必要に応じて、詳細設定を行えます。各設定の概要は以下のとおりです。
- 同期間隔: ClickPipes がソースデータベースの変更をポーリングする間隔です。これは宛先の ClickHouse サービスのコストに影響するため、コストを重視する場合は高めの値 (
3600を超える値) に設定することを推奨します。 - 初期ロードの並列スレッド数: 初期スナップショットの取得に使用する並列ワーカー数です。テーブル数が多い場合に、初期スナップショットの取得に使う並列ワーカー数を制御するのに役立ちます。この設定はテーブルごとに適用されます。
- Pull バッチサイズ: 1 回の Batch で取得する行数です。これはベストエフォートの設定であり、すべてのケースで反映されるとは限りません。
- スナップショットのパーティションごとの行数: 初期スナップショット中に各パーティションで取得する行数です。テーブル内の行数が非常に多い場合に、各パーティションで取得する行数を制御するのに役立ちます。
- スナップショットで並列に処理するテーブル数: 初期スナップショット中に並列で取得するテーブル数です。テーブル数が多い場合に、並列に取得するテーブル数を制御するのに役立ちます。
- サーバー ID: MySQL の binlog レプリケーション用のサーバー ID を設定するための任意のパラメータです。設定しない場合、ClickPipes はランダムなサーバー ID を生成しますが、これは ClickPipe のライフサイクル中に変更される可能性があります。ソース側の MySQL サーバーで ClickPipe を決定論的に識別するために使用します。
テーブルを設定
-
ここでは、ClickPipe の宛先データベースを選択できます。既存のデータベースを選択することも、新しいデータベースを作成することもできます。

-
ソース MySQL データベースからレプリケートするテーブルを選択できます。テーブルの選択時には、宛先の ClickHouse データベースでテーブル名を変更したり、特定のカラムを除外したりすることもできます。
-
さらに、宛先のClickHouse テーブルのパーティション化を制御するために、カスタムの
PARTITION BY <expr>式を指定できます。
権限を確認して ClickPipe を開始する
-
権限のドロップダウンから「Full access」ロールを選択し、「Complete Setup」をクリックします。

最後に、よくある問題とその解決方法の詳細については、"MySQL 向け ClickPipes よくある質問" ページを参照してください。
次のステップ
MySQL から ClickHouse Cloud へデータをレプリケートするための ClickPipe の設定が完了したら、次は最適なパフォーマンスを引き出すためのデータのクエリ方法やモデリングに注力できます。MySQL CDC (変更データキャプチャ) に関するよくある質問やトラブルシューティングについては、MySQL よくある質問ページを参照してください。