MySQL 統合タスク
このページでは、MySQL データベースから TiDB Cloud Lake にデータを同期する MySQL 統合タスクを作成する方法について説明します。MySQL タスクは、完全な Snapshot ロード、継続的な Change Data Capture (CDC)、またはその両方の組み合わせをサポートしています。
再利用可能な MySQL 接続設定を先に作成する必要がある場合は、MySQL - Credentials を参照してください。
同期モード
前提条件
MySQL データ統合を設定する前に、MySQL インスタンスが次の要件を満たしていることを確認してください。
- MySQL - Credentials データソースがすでに作成されていること
- 対象の MySQL インスタンスに TiDB Cloud Lake から到達できること
Binlog を有効にする
すべての同期モードで、MySQL のバイナリログを有効にしてください。CDC Only および Snapshot + CDC では、バイナリログは ROW 形式と FULL row image を必ず使用する必要があります。
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
binlog-row-image=FULL
設定を変更した後、変更を有効にするために MySQL を再起動してください。
専用ユーザーを作成する(推奨)
データレプリケーションに必要な権限を持つ MySQL ユーザーを作成します。
CREATE USER 'lake_cdc'@'%' IDENTIFIED BY 'your_password';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'lake_cdc'@'%';
FLUSH PRIVILEGES;
ネットワークアクセス
MySQL インスタンスに TiDB Cloud Lake からアクセスできることを確認してください。ファイアウォールルールとセキュリティグループを確認し、MySQL ポートへの受信接続を許可してください。
MySQL 統合タスクの作成
ステップ 1: 基本情報
Data > Data Integration に移動し、Create Task をクリックします。
基本設定を構成します。
Snapshot モードのオプション
Snapshot モードを使用する場合、追加オプションを利用できます。
Snapshot WHERE Condition: スナップショット中にデータをフィルタリングする SQL WHERE 句です(例:
created_at > '2024-01-01')。これにより、ソースデータの一部のみをロードできます。Archive Schedule: 定期アーカイブを有効にすると、繰り返しスケジュールに従ってスナップショットを自動実行できます。有効にすると、次のフィールドが表示されます。
ステップ 2: データのプレビュー
基本設定を構成したら、Next をクリックしてソースデータをプレビューします。
システムは選択した MySQL テーブルからサンプル行を取得し、カラム名とデータ型を表示します。続行する前に、正しいテーブルとカラムが選択されていることを確認してください。
ステップ 3: ターゲットテーブルの設定
TiDB Cloud Lake 内の宛先を構成します。
システムはソースカラムをターゲットテーブルのスキーマに自動的にマッピングします。カラムマッピングを確認し、Create をクリックして統合タスクの作成を完了します。
同期モードごとのタスクの動作
CDC タスクでは、停止時に現在の binlog 位置がチェックポイントとして保存されるため、再起動時に中断した位置から再開できます。
同期モードの詳細
Snapshot
Snapshot モードでは、ソーステーブルを一度だけ完全に読み取り、すべてのデータを TiDB Cloud Lake のターゲットテーブルにロードします。
ユースケース:
- MySQL から TiDB Cloud Lake への初回データ移行
- 定期的な完全データ更新
- WHERE 条件によるフィルタリングを伴う一度限りのデータインポート
特長:
- WHERE 条件によるフィルタリングをサポートし、データの一部のみをロード可能
- 繰り返しスナップショットのための定期アーカイブスケジュールをサポート
- タスクは完了後に自動停止
CDC (Change Data Capture)
CDC モードでは、MySQL binlog を継続的に監視し、ソーステーブルのリアルタイムな行レベル変更(INSERT、UPDATE、DELETE)を取得します。
ユースケース:
- リアルタイムデータレプリケーション
- 運用中の MySQL データベースと TiDB Cloud Lake の同期維持
- イベント駆動型データパイプライン
仕組み:
- 一意の server ID を使用して MySQL binlog に接続します
- 行レベルの変更をリアルタイムで取得します
- 変更を TiDB Cloud Lake の生のステージングテーブルに書き込みます
- 主キーを使用して変更を定期的にターゲットテーブルへマージします
- クラッシュリカバリのためにチェックポイント(binlog 位置)を保存します
Snapshot + CDC
このモードは両方のアプローチを組み合わせたものです。最初にソーステーブルの完全なスナップショットを実行し、その後シームレスに CDC モードへ移行して継続的に変更を取得します。完全な初期データロードと、その後の継続的なリアルタイム同期を実現できるため、ほとんどのデータ統合シナリオで推奨されるモードです。
詳細設定
Primary Key
Primary Key は、CDC 中の MERGE 操作に使用される一意識別子カラムを指定します。変更イベントが取得されると、TiDB Cloud Lake はこのキーを使用して、新しい行を挿入するか既存の行を更新するかを判断します。通常は、ソーステーブルの主キーを指定します。
Sync Interval
同期間隔(秒)は、取得した変更をターゲットテーブルにどのくらいの頻度でマージするかを制御します。間隔を短くするとレイテンシーは低くなりますが、リソース使用量が増える可能性があります。デフォルト値の 3 秒は、ほとんどのワークロードに適しています。
Batch Size
データロード中にバッチごとに処理する行数を制御します。この値を調整することで、大きなテーブルに対するスループットの最適化に役立ちます。システムのデフォルト値を使用する場合は空欄のままにしてください。
Allow Delete
有効にすると(CDC モードではデフォルト)、MySQL binlog から取得した DELETE 操作が TiDB Cloud Lake のターゲットテーブルに適用されます。無効にすると、削除は無視され、ターゲットテーブルにはすべての履歴レコードが保持されます。これは、完全な監査証跡を管理したいシナリオで役立ちます。
Archive Schedule
Snapshot モードでは、定期アーカイブを構成して、繰り返しスケジュールに従ってスナップショットを自動実行できます。これは、継続的な CDC のオーバーヘッドなしで定期的なデータ更新が必要なシナリオで役立ちます。
- Cron Expression: スケジュール設定用の標準 cron 形式(例: 毎日午前 1:00 に実行する
0 1 * * *) - Mode: Daily、Weekly、または Monthly のアーカイブを選択します
- Time Column: 時間ベースのパーティション分割に使用するカラムを指定します(例:
created_at) - Timezone: スケジュールのタイムゾーンを設定します(デフォルト: UTC)



