MySQL ClickPipe の同期を制御する
このドキュメントでは、ClickPipe が CDC(Running)モード のときに MySQL ClickPipe の同期を制御する方法を説明します。
概要
Database ClickPipes は、ソースデータベースからのプル処理と、ターゲットデータベースへのプッシュ処理という 2 つの並行プロセスからなるアーキテクチャになっています。プル処理は同期設定によって制御されており、その設定でデータをどれくらいの頻度でプルするか、また一度にどれだけのデータをプルするかが定義されます。ここで「一度に」とは 1 バッチを意味します。ClickPipe はデータをバッチごとにプルおよびプッシュするためです。
MySQL ClickPipe の同期を制御する主な方法は 2 つあります。以下のいずれかの設定が有効になると、ClickPipe はプッシュを開始します。
同期間隔
パイプの同期間隔は、ClickPipe がソースデータベースからレコードをプルする時間(秒)です。ClickHouse に取得したデータをプッシュする時間は、この間隔には含まれません。
デフォルトは 1 分 です。 同期間隔には任意の正の整数値を設定できますが、10 秒以上に設定することを推奨します。
プルバッチサイズ
プルバッチサイズは、ClickPipe がソースデータベースから 1 回のバッチで取得するレコード数です。ここでのレコードとは、そのパイプの対象となっているテーブルに対して実行された insert、update、delete を指します。
デフォルトは 100,000 レコードです。 安全な最大値は 1,000 万です。
例外:ソース側の長時間実行トランザクション
トランザクションがソースデータベース上で実行されると、ClickPipe はそのトランザクションの COMMIT を受信するまで待機してから、処理を先に進めます。この挙動により、同期間隔とプル バッチサイズの両方の設定は上書きされます。
同期設定の構成
ClickPipe を新規作成する場合や既存の ClickPipe を編集する場合に、同期間隔と pull バッチサイズを設定できます。 ClickPipe を作成する際は、以下に示すように、作成ウィザードの 2 番目のステップでこれらの設定を行います。

既存の ClickPipe を編集する場合は、対象の ClickPipe の Settings タブを開き、パイプを一時停止してから、ここで Configure をクリックします。

これにより同期設定用のフライアウトが開き、同期間隔と pull バッチサイズを変更できます。

同期制御の挙動の監視
各バッチの処理にどれくらい時間がかかったかは、ClickPipe の Metrics タブにある CDC Syncs テーブルで確認できます。ここでの所要時間にはデータをプッシュする時間が含まれるほか、取り込む行がない場合に ClickPipe が待機している時間も含まれます。
