TiDB Cloudにシンク

このドキュメントでは、 TiDB Cloud Dedicated クラスターからTiDB Cloud Serverless クラスターにデータをストリーミングする方法について説明します。

注記:

Changefeed 機能を使用するには、 TiDB Cloud Dedicated クラスターのバージョンが v6.1.3 以降であることを確認してください。

制限

  • TiDB Cloudクラスターごとに、最大 100 個の変更フィードを作成できます。

  • TiDB Cloud は、変更フィードを確立するために TiCDC を使用するため、同じTiCDCとしての制限持ちます。

  • レプリケートするテーブルに主キーまたは NULL 以外の一意のインデックスがない場合、レプリケーション中に一意の制約がないと、再試行シナリオによっては下流に重複したデータが挿入される可能性があります。

  • Sink to TiDB Cloud機能は、次の AWS リージョンにあり、2022 年 11 月 9 日以降に作成されたTiDB Cloud Dedicated クラスターでのみ使用できます。

    • AWS オレゴン (us-west-2)
    • AWS フランクフルト (eu-central-1)
    • AWS シンガポール (ap-southeast-1)
    • AWS 東京 (ap-northeast-1)
  • ソースTiDB Cloud Dedicated クラスターと宛先TiDB Cloud Serverless クラスターは、同じプロジェクトと同じリージョンに存在する必要があります。

  • TiDB Cloudへのシンク機能は、プライベートエンドポイント経由のネットワーク接続のみをサポートします。TiDB TiDB Cloud DedicatedクラスターからTiDB Cloud Serverlessクラスターにデータをストリーミングするための変更フィードを作成すると、 TiDB Cloudは2つのクラスター間のプライベートエンドポイント接続を自動的に確立します。

前提条件

Sink to TiDB Cloudコネクタは、一定のTSO経過した後にのみ、 TiDB Cloud Dedicated クラスターからTiDB Cloud Serverless クラスターに増分データをシンクできます。

変更フィードを作成する前に、ソースのTiDB Cloud Dedicated クラスターから既存のデータをエクスポートし、そのデータを宛先のTiDB Cloud Serverless クラスターにロードする必要があります。

  1. その間、履歴データが TiDB によってガベージ コレクションされないように、 tidb_gc_life_time次の 2 つの操作の合計時間よりも長く延長します。

    • 既存のデータをエクスポートおよびインポートする時間
    • Sink to TiDB Cloudを作成する時間

    例えば:

    SET GLOBAL tidb_gc_life_time = '720h';
  2. Dumpling使用してTiDB Cloud Dedicated クラスターからデータをエクスポートし、 TiDB Cloudサーバーレス インポート使用して宛先のTiDB Cloud Serverless クラスターにデータをロードします。

  3. Dumplingのエクスポートファイルから、メタデータ ファイルからTiDB Cloudシンクの開始位置を取得します。

    以下はメタデータファイルの例の一部です。3 SHOW MASTER STATUSのうちPosは既存データのTSOであり、 TiDB Cloudシンクの開始位置でもあります。

    Started dump at: 2023-03-28 10:40:19 SHOW MASTER STATUS: Log: tidb-binlog Pos: 420747102018863124 Finished dump at: 2023-03-28 10:40:20

TiDB Cloudシンクを作成する

前提条件を完了したら、データを宛先のTiDB Cloud Serverless クラスターにシンクできます。

  1. ターゲット TiDB クラスターのクラスター概要ページに移動し、左側のナビゲーション ペインで[データ] > [Changefeed]クリックします。

  2. 「Changefeed の作成」をクリックし、宛先としてTiDB Cloudを選択します。

  3. TiDB Cloud接続領域で、宛先のTiDB Cloud Serverless クラスターを選択し、宛先クラスターのユーザー名とパスワードを入力します。

  4. [次へ]をクリックして、2 つの TiDB クラスター間の接続を確立し、変更フィードが正常に接続できるかどうかをテストします。

    • はいの場合は、構成の次の手順に進みます。
    • そうでない場合は接続エラーが表示されるので、エラーに対処する必要があります。エラーが解決したら、もう一度「次へ」をクリックしてください。
  5. テーブルフィルターをカスタマイズして、複製するテーブルをフィルタリングします。ルールの構文については、 テーブルフィルタルールを参照してください。

    • フィルタールール: この列でフィルタールールを設定できます。デフォルトでは、すべてのテーブルを複製するルール*.*が設定されています。新しいルールを追加すると、 TiDB CloudはTiDB内のすべてのテーブルをクエリし、ルールに一致するテーブルのみを右側のボックスに表示されます。フィルタールールは最大100件まで追加できます。
    • 有効なキーを持つテーブル: この列には、主キーや一意のインデックスなど、有効なキーを持つテーブルが表示されます。
    • 有効なキーのないテーブル: この列には、主キーまたは一意キーを持たないテーブルが表示されます。これらのテーブルは、一意の識別子がないと、下流で重複イベントを処理する際にデータの不整合が発生する可能性があるため、レプリケーション中に問題が発生します。データの整合性を確保するには、レプリケーションを開始する前に、これらのテーブルに一意のキーまたは主キーを追加することをお勧めします。または、これらのテーブルを除外するフィルタールールを追加することもできます。例えば、ルール"!test.tbl1"を使用してテーブルtest.tbl1を除外できます。
  6. イベント フィルターをカスタマイズして、複製するイベントをフィルターします。

    • 一致するテーブル: この列では、イベントフィルターを適用するテーブルを設定できます。ルールの構文は、前述の「テーブルフィルター」領域で使用した構文と同じです。変更フィードごとに最大10個のイベントフィルタールールを追加できます。
    • 無視されるイベント: イベント フィルターが変更フィードから除外するイベントの種類を設定できます。
  7. [レプリケーション開始位置]領域に、 Dumplingからエクスポートされたメタデータ ファイルから取得した TSO を入力します。

  8. 次へをクリックして、変更フィード仕様を構成します。

    • 「Changefeed 仕様」領域で、Changefeed で使用されるレプリケーション容量単位 (RCU) の数を指定します。
    • 「Changefeed 名」領域で、Changefeed の名前を指定します。
  9. 「次へ」をクリックして、変更フィード構成を確認します。

    すべての構成が正しいことを確認したら、リージョン間レプリケーションのコンプライアンスをチェックし、 「作成」をクリックします。

    設定を変更する場合は、 「前へ」をクリックして前の設定ページに戻ります。

  10. シンクはすぐに起動し、シンクのステータスが「作成中」から「実行中」に変わることがわかります。

    変更フィード名をクリックすると、チェックポイント、レプリケーションのレイテンシー、その他のメトリックなど、変更フィードに関する詳細が表示されます。

  11. シンクが作成された後、 tidb_gc_life_time元の値 (デフォルト値は10m ) に戻します。

    SET GLOBAL tidb_gc_life_time = '10m';

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