📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

MySQL 統合タスク



このページでは、MySQL データベースから TiDB Cloud Lake にデータを同期する MySQL 統合タスクを作成する方法について説明します。MySQL タスクは、完全な Snapshot ロード、継続的な Change Data Capture (CDC)、またはその両方の組み合わせをサポートしています。

再利用可能な MySQL 接続設定を先に作成する必要がある場合は、MySQL - Credentials を参照してください。

同期モード

同期モード説明
Snapshotソーステーブルから一度だけ完全なデータのロードを実行します。初回のデータ移行や定期的な一括インポートに最適です。
CDC OnlyMySQL binlog からリアルタイムの変更(insert、update、delete)を継続的に取得します。マージ操作には主キーが必要です。
Snapshot + CDC最初に完全なスナップショットを実行し、その後シームレスに継続的な CDC に移行します。ほとんどのユースケースで推奨されます。

前提条件

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: 基本情報

  1. Data > Data Integration に移動し、Create Task をクリックします。

    Data Integration Page

  2. 基本設定を構成します。

    フィールド必須説明
    Data Sourceはいドロップダウンから既存の MySQL - Credentials データソースを選択します
    Nameはいこの統合タスクの名前
    Source Database—選択したデータソースに基づいて自動的に表示されます
    Source TableはいMySQL データベースから同期するテーブルを選択します
    Sync ModeはいSnapshot、CDC Only、または Snapshot + CDC から選択します
    Primary Key条件付きマージ操作に使用する一意識別子カラムです。CDC Only および Snapshot + CDC モードで必須です
    Sync Intervalはい書き込み操作の間隔(秒)(デフォルト: 3)
    Batch Sizeいいえバッチごとの行数
    Allow DeleteいいえCDC で DELETE 操作を許可するかどうか。CDC Only および Snapshot + CDC モードで使用できます

    Create Task - Basic Info

Snapshot モードのオプション

Snapshot モードを使用する場合、追加オプションを利用できます。

  • Snapshot WHERE Condition: スナップショット中にデータをフィルタリングする SQL WHERE 句です(例: created_at > '2024-01-01')。これにより、ソースデータの一部のみをロードできます。

  • Archive Schedule: 定期アーカイブを有効にすると、繰り返しスケジュールに従ってスナップショットを自動実行できます。有効にすると、次のフィールドが表示されます。

フィールド説明
Cron Expressioncron 形式のスケジュール(例: 毎日午前 1:00 に実行する 0 1 * * *)
Timezoneスケジュールのタイムゾーン(デフォルト: UTC)
Modeアーカイブ頻度 — Daily、Weekly、または Monthly
Time Columnアーカイブのパーティション分割に使用する時間ベースのカラム(例: created_at)

ステップ 2: データのプレビュー

基本設定を構成したら、Next をクリックしてソースデータをプレビューします。

Preview Data

システムは選択した MySQL テーブルからサンプル行を取得し、カラム名とデータ型を表示します。続行する前に、正しいテーブルとカラムが選択されていることを確認してください。

ステップ 3: ターゲットテーブルの設定

TiDB Cloud Lake 内の宛先を構成します。

フィールド説明
Warehouse同期の実行に使用する対象の TiDB Cloud Lake Warehouse を選択します
Target DatabaseTiDB Cloud Lake 内の対象データベースを選択します
Target TableTiDB Cloud Lake 内のテーブル名です(デフォルトではソーステーブル名になります)

Set Target Table

システムはソースカラムをターゲットテーブルのスキーマに自動的にマッピングします。カラムマッピングを確認し、Create をクリックして統合タスクの作成を完了します。

同期モードごとのタスクの動作

同期モード動作
Snapshot一度実行され、完全なデータのロードが完了すると自動的に停止します。
CDC Only手動で停止するまで継続的に実行され、リアルタイムの変更を取得します。
Snapshot + CDC最初に初回スナップショットを完了し、その後、手動で停止するまで継続的な CDC に移行します。

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 の同期維持
  • イベント駆動型データパイプライン

仕組み:

  1. 一意の server ID を使用して MySQL binlog に接続します
  2. 行レベルの変更をリアルタイムで取得します
  3. 変更を TiDB Cloud Lake の生のステージングテーブルに書き込みます
  4. 主キーを使用して変更を定期的にターゲットテーブルへマージします
  5. クラッシュリカバリのためにチェックポイント(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)

このページは役に立ちましたか?