MySQL から ClickHouse へのデータインジェスト(CDC の使用)
ClickPipes を使用して MySQL から ClickHouse Cloud へデータを取り込む機能は、現在パブリックベータです。
MySQL ClickPipe は、MySQL および MariaDB データベースから ClickHouse Cloud へデータを取り込むための、フルマネージドで高い耐障害性を備えた手段を提供します。単発のインジェストを行うための 一括ロード と、継続的なインジェストのための Change Data Capture(CDC: 変更データキャプチャ) の両方をサポートします。
MySQL ClickPipes は、ClickPipes UI を使用して手動でデプロイおよび管理できます。将来的には、OpenAPI および Terraform を使用して、プログラムから MySQL ClickPipes をデプロイおよび管理できるようになる予定です。
前提条件
作業を始める前に、MySQL データベースが binlog レプリケーション用に正しく設定されていることを確認する必要があります。設定手順は MySQL のデプロイ方法によって異なるため、以下の該当するガイドに従ってください。
サポートされているデータソース
| 名前 | ロゴ | 詳細 |
|---|---|---|
| Amazon RDS MySQL 1回限りのロード、CDC(変更データキャプチャ) | Amazon RDS MySQL の構成ガイドに従ってください。 | |
| Amazon Aurora MySQL 1回限りのロード、CDC(変更データキャプチャ) | Amazon Aurora MySQL の構成ガイドに従ってください。 | |
| Cloud SQL for MySQL 1回限りのロード、CDC(変更データキャプチャ) | Cloud SQL for MySQL の構成ガイドに従ってください。 | |
| Azure Flexible Server for MySQL 1回限りのロード | Azure Flexible Server for MySQL の構成ガイドに従ってください。 | |
| Self-hosted MySQL 1回限りのロード、CDC(変更データキャプチャ) | Generic MySQL の構成ガイドに従ってください。 | |
| Amazon RDS MariaDB 1回限りのロード、CDC(変更データキャプチャ) | Amazon RDS MariaDB の構成ガイドに従ってください。 | |
| Self-hosted MariaDB 1回限りのロード、CDC(変更データキャプチャ) | Generic MariaDB の構成ガイドに従ってください。 |
ソース MySQL データベースのセットアップが完了したら、ClickPipe の作成を続行してください。
ClickPipe を作成する
ClickHouse Cloud アカウントにログインしていることを確認します。まだアカウントをお持ちでない場合は、こちらからサインアップできます。
- ClickHouse Cloud コンソールで、対象の ClickHouse Cloud Service に移動します。

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

MySQL CDCタイルを選択します。

ソース MySQL データベース接続を追加する
-
前提条件の手順で設定したソース MySQL データベースの接続情報を入力します。
情報接続情報の追加を始める前に、ファイアウォールのルールで ClickPipes の IP アドレスをホワイトリストに登録していることを確認してください。以下のページで ClickPipes の IP アドレス一覧 を確認できます。 詳細については、このページの先頭 にリンクされているソース MySQL セットアップガイドを参照してください。

(オプション)SSH トンネリングをセットアップする
ソースの MySQL データベースがインターネットから直接アクセスできない場合は、SSH トンネリングの詳細を指定できます。
-
「Use SSH Tunnelling」トグルを有効にします。
-
SSH 接続情報を入力します。

-
キーベース認証を使用する場合は、「Revoke and generate key pair」をクリックして新しいキーペアを生成し、生成された公開鍵を SSH サーバー上の
~/.ssh/authorized_keysにコピーします。 -
「Verify Connection」をクリックして、接続を確認します。
ClickPipes が SSH トンネルを確立できるように、SSH バスティオンホストに対するファイアウォールルールで ClickPipes の IP アドレス を必ずホワイトリストに追加してください。
接続情報の入力が完了したら、Next をクリックします。
高度な設定を構成する
必要に応じて高度な設定を構成できます。各設定の概要は次のとおりです。
- Sync interval: ClickPipes がソースデータベースの変更をポーリングする間隔です。これは転送先の ClickHouse サービスにも影響します。コストに敏感なユーザーには、この値を高め(
3600以上)に設定しておくことを推奨します。 - Parallel threads for initial load: 初回スナップショットを取得する際に使用される並列ワーカーの数です。多数のテーブルがあり、初回スナップショット取得に使用する並列ワーカー数を制御したい場合に有用です。この設定はテーブル単位で適用されます。
- Pull batch size: 1 回のバッチで取得する行数です。ベストエフォートの設定であり、すべての場合においてこの値が厳密に守られるとは限りません。
- Snapshot number of rows per partition: 初回スナップショット時に各パーティションで取得される行数です。テーブル内の行数が多く、各パーティションで取得する行数を制御したい場合に有用です。
- Snapshot number of tables in parallel: 初回スナップショット時に並列で取得されるテーブル数です。多数のテーブルがあり、並列で取得するテーブル数を制御したい場合に有用です。
テーブルを設定する
-
ここで、ClickPipe の宛先データベースを選択できます。既存のデータベースを選択するか、新しいデータベースを作成できます。

-
ソースの MySQL データベースからレプリケーション対象とするテーブルを選択できます。テーブルを選択する際に、宛先の ClickHouse データベース側でテーブル名を変更したり、特定のカラムを除外したりすることもできます。
権限を確認して ClickPipe を開始する
-
権限のドロップダウンメニューから「Full access」ロールを選択し、「Complete Setup」をクリックします。

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