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

TiCDC の互換性

このセクションでは、TiCDC に関連する互換性の問題とその処理方法について説明します。

TiDB Lightningとの互換性

TiDB Lightningには、 論理インポートモード物理インポートモード 2つのデータインポートモードがあります。このセクションでは、これらのモードと TiCDC の互換性、およびクラスター内でTiDB Lightningと TiCDC を併用する手順について説明します。

論理インポートモードでは、 TiDB LightningはSQL文を実行してデータをインポートします。このモードはTiCDCと互換性があります。TiDB Lightningの論理インポートモードをTiCDCと組み合わせてデータレプリケーションに使用するには、以下の手順を実行してください。

  1. 変更フィードを作成します。詳細については、 レプリケーションタスクを作成する参照してください。
  2. TiDB Lightningを起動し、論理インポートモードを使用してデータをインポートします。詳細については、 論理インポートモードを使用する参照してください。

物理インポートモードでは、 TiDB LightningはSSTファイルをTiKVに挿入することでデータをインポートします。TiCDCはこのモードと互換性がなく、物理インポートモードでインポートされたデータの複製をサポートしていません。TiDB Lightningの物理インポートモードとTiCDCの両方を使用する必要がある場合は、下流システムに応じて以下のいずれかのソリューションを選択してください。

  • ダウンストリームが TiDB クラスターの場合は、次の手順を実行します。

    1. TiDB Lightningを使用して、上流と下流の両方の TiDB クラスターにデータをインポートし、データの一貫性を確保します。
    2. SQLを通じて書き込まれた後続の増分データを複製するための変更フィードを作成します。詳細については、 レプリケーションタスクを作成する参照してください。
  • ダウンストリームが TiDB クラスターでない場合は、次の手順を実行します。

    1. 下流システムが提供するオフライン インポート ツールを使用して、TiDB Lightning の入力ファイルをインポートします。
    2. SQLを通じて書き込まれた後続の増分データを複製するための変更フィードを作成します。詳細については、 レプリケーションタスクを作成する参照してください。

TiFlashとの互換性

現在、TiCDC を使用してテーブルをダウンストリーム TiDB クラスターにレプリケートする場合、テーブルのTiFlashレプリカの作成はサポートされていません。つまり、TiCDC は次のようなTiFlash関連の DDL ステートメントのレプリケートをサポートしていません。

  • ALTER TABLE table_name SET TIFLASH REPLICA count;
  • ALTER DATABASE db_name SET TIFLASH REPLICA count;

CLIと設定ファイルの互換性

  • TiCDC v4.0.0 では、 ignore-txn-commit-tsが削除され、start_ts を使用してトランザクションをフィルター処理するignore-txn-start-ts追加されました。
  • TiCDC v4.0.2では、 db-dbs / db-tables / ignore-dbs / ignore-tablesが削除され、データベースとテーブルに新しいフィルタールールを使用するrules追加されました。詳細なフィルター構文については、 テーブルフィルター参照してください。
  • TiCDC v6.2.0以降、 cdc cli TiCDC Open APIを介してTiCDCサーバーに直接アクセスできるようになりました。3 --serverを使用してTiCDCサーバーのアドレスを指定できます。5 --pd非推奨です。
  • v6.4.0 以降、 SYSTEM_VARIABLES_ADMINまたはSUPER権限を持つ changefeed のみが TiCDC Syncpoint 機能を使用できます。

互換性の問題に対処する

このセクションでは、TiCDC に関連する互換性の問題とその処理方法について説明します。

TiCDC v5.0.0-rc cdc cliツールを使用して v4.0.x クラスターを操作することによって発生する非互換性の問題

TiCDC v5.0.0-rc のcdc cliツールを使用して v4.0.x TiCDC クラスターを操作すると、次の異常な状況が発生する可能性があります。

  • TiCDC クラスターが v4.0.8 以前のバージョンの場合、v5.0.0-rc cdc cliツールを使用してレプリケーション タスクを作成すると、クラスターの異常が発生し、レプリケーション タスクが停止する可能性があります。

  • TiCDC クラスターが v4.0.9 以降のバージョンの場合、v5.0.0-rc cdc cliツールを使用してレプリケーション タスクを作成すると、古い値と統合ソーター機能が予期せずデフォルトで有効になります。

解決策:

TiCDC クラスター バージョンに対応するcdc実行可能ファイルを使用して、次の操作を実行します。

  1. v5.0.0-rc cdc cliツールを使用して作成された変更フィードを削除します。例えば、コマンドtiup cdc:v4.0.9 cli changefeed remove -c xxxx --pd=xxxxx --forceを実行します。
  2. レプリケーションタスクが停止している場合は、TiCDC クラスターを再起動してください。例えば、コマンドtiup cluster restart <cluster_name> -R cdcを実行してください。
  3. 変更フィードを再作成します。例えば、コマンドtiup cdc:v4.0.9 cli changefeed create --sink-uri=xxxx --pd=xxxを実行します。

注記:

この問題は、 cdc cli v5.0.0-rc の場合にのみ発生します。3 他の v5.0.x バージョンのcdc cliは、v4.0.x クラスターと互換性があります。

sort-dirdata-dir互換性に関する注意事項

sort-dir設定は、TiCDC ソーターの一時ファイルディレクトリを指定するために使用されます。機能はバージョンによって異なる場合があります。次の表は、 sort-dirにおけるバージョン間の互換性の変更点を示しています。

バージョンsort-engine機能注記おすすめ
v4.0.11 またはそれ以前の v4.0 バージョン、v5.0.0-rcこれは、チェンジフィード構成項目であり、 fileソーターおよびunifiedソーターの一時ファイル ディレクトリを指定します。これらのバージョンでは、 fileソーターとunifiedソーターは実験的機能であり、本番環境には推奨されません

複数の changefeed がunifiedソーターをsort-engineとして使用する場合、実際の一時ファイル ディレクトリはいずれかの changefeed のsort-dir構成になる可能性があり、各 TiCDC ノードに使用されるディレクトリは異なる場合があります。
本番環境でunifiedソーターを使用することはお勧めしません。
v4.0.12、v4.0.13、v5.0.0、および v5.0.1これは changefeed またはcdc serverの構成項目です。デフォルトでは、changefeed のsort-dir設定は有効にならず、 cdc serversort-dir設定はデフォルトで/tmp/cdc_sortに設定されます。本番環境ではcdc serverのみを設定することをお勧めします。

TiUPを使用して TiCDC を展開する場合は、最新のTiUPバージョンを使用し、TiCDCサーバー構成でsorter.sort-dir設定することをお勧めします。

unifiedソーターは、v4.0.13、v5.0.0、v5.0.1 ではデフォルトで有効になっています。クラスターをこれらのバージョンにアップグレードする場合は、TiCDCサーバー構成でsorter.sort-dir正しく設定されていることを確認してください。
cdc serverコマンドラインパラメータ (またはTiUP) を使用してsort-dir設定する必要があります。
v4.0.14 以降の v4.0 バージョン、v5.0.3 以降の v5.0 バージョン、それ以降の TiDB バージョンsort-dirは非推奨です。 data-dir設定することをお勧めします。最新バージョンのTiUPを使用してdata-dir設定できます。これらのTiDBバージョンでは、 unifiedソーターがデフォルトで有効になっています。クラスタをアップグレードする際は、 data-dir正しく設定されていることを確認してください。正しく設定されていない場合、一時ファイルディレクトリとしてデフォルトで/tmp/cdc_data使用されます。

ディレクトリが配置されているデバイスのstorage容量が不足している場合、ハードディスク容量不足の問題が発生する可能性があります。この場合、以前のsort-dirのchangefeed設定は無効になります。
cdc serverコマンドラインパラメータ (またはTiUP) を使用してdata-dir設定する必要があります。
v6.0.0以降のバージョンdata-dir 、TiCDC によって生成された一時ファイルを保存するために使用されます。v6.0.0 以降、TiCDC はデフォルトでソート エンジンとしてdb sorter使用します。3 data-dirこのエンジンのディスク ディレクトリです。cdc serverコマンドラインパラメータ (またはTiUP) を使用してdata-dir設定する必要があります。

一時テーブルとの互換性

v5.3.0 以降、TiCDC はグローバル一時テーブルサポートします。v5.3.0 より前のバージョンの TiCDC を使用してグローバル一時テーブルをダウンストリームに複製すると、テーブル定義エラーが発生します。

上流クラスターにグローバル一時テーブルが含まれている場合、下流TiDBクラスターはv5.3.0以降のバージョンである必要があります。それ以外の場合、レプリケーションプロセス中にエラーが発生します。

ベクトルデータ型との互換性

v8.4.0 以降、TiCDC は、 ベクトルデータ型からダウンストリームへのテーブルの複製をサポートします (実験的)。

ダウンストリームが Kafka またはstorageサービス (Amazon S3、GCS、Azure Blob Storage、NFS など) の場合、TiCDC はダウンストリームに書き込む前にベクトル データ型を文字列型に変換します。

ダウンストリームがMySQL互換データベースで、ベクトルデータ型をサポートしていない場合、TiCDCはベクトル型を含むDDLイベントをダウンストリームに書き込むことができません。この場合、 sink-urlhas-vector-type=trueパラメータを追加することで、TiCDCは書き込み前にベクトルデータ型をLONGTEXT型に変換できます。

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