Vitess から TiDB へのデータ移行
このドキュメントでは、 ヴィテスから TiDB にデータを移行するために使用できるツールについて説明します。
VitessのバックエンドはMySQLベースであるため、VitessからTiDBにデータを移行する際には、MySQLに適用できるものと同じ移行ツールTiDB データ移行 (DM) DumplingなどTiDB Lightningを使用できます。これらのツールは、データ移行のためにVitess内の各シャードに対して設定する必要があることに注意してください。
通常、データ移行前にDMタスクをtask-mode ~ all ~ physicalに設定することを推奨します。詳細については、 タスク構成ファイルテンプレート(上級) import-modeしてください。
データ サイズが 10 TiB を超える場合は、2 つの手順でインポートを実行することをお勧めします。
- 既存のデータをインポートするには、 DumplingとTiDB Lightning を使用します。
- DM を使用して増分データをインポートします。
これらのツールに加えて、 Vitess用Debeziumコネクタも使用できます。このコネクタを使用すると、 カフカコネクトまたはアパッチフリンク使用して、Vitess から TiDB に変更をストリーミングできます。
VitessとTiDBはどちらもMySQLプロトコルとSQL方言をサポートしているため、アプリケーションレベルでの変更は小さくなると予想されます。ただし、シャーディングやその他の実装固有の側面を直接管理するタスクでは、変更が大きくなる可能性があります。VitessからTiDBへのデータ移行を容易にするために、TiDBはVitessのHASH関数と互換性のある文字列のハッシュを返すVITESS_HASH()関数を導入しています。
例
DumplingとTiDB Lightning
次の 2 つの例は、 DumplingとTiDB Lightningが連携して Vitess から TiDB にデータを移行する方法を示しています。
この例では、 TiDB Lightning は論理インポートモード使用します。これは、最初にデータを SQL ステートメントにエンコードし、次に SQL ステートメントを実行してデータをインポートします。

この例では、 TiDB Lightning は物理インポートモードを使用してデータを TiKV に直接取り込みます。

DM
次の例は、Vitess から TiDB にデータを移行するDMを示しています。
