📣
TiDB Cloud Essential はパブリックプレビュー中です。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDB Cloudにシンクする



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

注記:

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

制限

  • TiDB Cloudの各クラスターにつき、最大100個のチェンジフィードを作成できます。

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

  • 複製対象のテーブルに主キーまたはNULLを許容しない一意インデックスがない場合、複製中に一意制約が存在しないことで、一部の再試行シナリオにおいて、下流で重複データが挿入される可能性があります。

  • TiDB Cloudへのシンク機能は、以下のAWSリージョンにあり、2022年11月9日以降に作成されたTiDB Cloud Dedicatedクラスターでのみ利用可能です。

    • AWSオレゴン(米国西部2)
    • AWS フランクフルト (eu-central-1)
    • AWSシンガポール (ap-southeast-1)
    • AWS東京 (ap-northeast-1)
  • ソースとなるTiDB Cloud Dedicatedクラスターと、宛先となるTiDB Cloud StarterまたはTiDB Cloud Essentialインスタンスは、同じプロジェクトおよび同じリージョンに属している必要があります。

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

前提条件

TiDB Cloudへのシンクコネクタは、特定のTSOの後、 TiDB Cloud DedicatedクラスタからTiDB Cloud StarterまたはTiDB Cloud Essentialインスタンスに増分データをシンクすることのみが可能です。

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

  1. tidb_gc_life_time以下の 2 つの操作の合計時間よりも長く設定することで、その期間中の履歴データが TiDB によってガベージ コレクションされないようにします。

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

    例えば:

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

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

    以下はメタデータファイルの例の一部です。 PosSHOW MASTER STATUSは、既存データの 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 StarterまたはTiDB Cloud Essentialインスタンスにシンクできます。

  1. 対象のTiDBクラスタのクラスタ概要ページに移動し、左側のナビゲーションペインで「データ」 > 「変更フィード」をクリックします。

  2. 「変更フィードを作成」をクリックし、宛先として「TiDB Cloud」を選択します。

  3. TiDB Cloud接続エリアで、接続先のTiDB Cloud StarterまたはTiDB Cloud Essentialインスタンスを選択し、接続先のインスタンスのユーザー名とパスワードを入力します。

  4. 「次へ」をクリックして、2つのTiDBクラスター間の接続を確立し、changefeedがそれらを正常に接続できるかどうかをテストします。

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

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

    • 一致するテーブル:この列では、イベントフィルターを適用するテーブルを設定できます。ルールの構文は、前のテーブルフィルター領域で使用されているものと同じです。変更フィードごとに最大10個のイベントフィルタールールを追加できます。
    • イベントフィルター:以下のイベントフィルターを使用して、変更フィードから特定のイベントを除外できます。
      • イベントを無視する:指定されたイベントタイプを除外します。
      • SQL を無視: 指定された式に一致する DDL イベントを除外します。たとえば、 ^drop DROPで始まるステートメントを除外し、 add columnADD COLUMNを含むステートメントを除外します。
      • 挿入値の式を無視する: 特定の条件を満たすINSERTステートメントを除外します。たとえば、 id >= 100は、 INSERTが 100 以上であるidステートメントを除外します。
      • 新しい値の更新式を無視する: 新しい値が指定された条件に一致するUPDATEステートメントを除外します。たとえば、 gender = 'male'gendermaleになるような更新を除外します。
      • 古い値の更新を無視する式: 古い値が指定された条件に一致するUPDATEステートメントを除外します。たとえば、 age < 18 ageの古い値が 18 未満である場合の更新を除外します。
      • 削除値式を無視する: 指定された条件を満たすDELETEステートメントを除外します。たとえば、 name = 'john'DELETEnameである'john'ステートメントを除外します。
  7. 「レプリケーション開始位置」領域に、Dumplingでエクスポートしたメタデータファイルから取得したTSOを入力します。

  8. 「次へ」をクリックして、変更フィードの仕様を設定してください。

    • 変更フィード仕様領域で、変更フィードで使用するレプリケーション容量ユニット(RCU)の数を指定します。
    • 変更フィード名欄に、変更フィードの名前を指定します。
  9. 「次へ」をクリックして、変更フィードの設定を確認してください。

    すべての構成が正しいことを確認したら、リージョン間レプリケーションの準拠性をチェックし、 [作成]をクリックします。

    設定を変更したい場合は、 「前へ」をクリックして前の設定ページに戻ってください。

  10. シンクはまもなく開始され、シンクのステータスが「作成中」から「実行中」に変わるのが確認できます。

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

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

    SET GLOBAL tidb_gc_life_time = '10m';

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