はじめに
データベースの運用ではデータベースの中のデータを出し入れする必要が生じます。TiDBにはこのようなときに利用できる豊富な周辺ツールがあるのですが、あまり全体像について書いたものがありません。
本記事ではそのような周辺ツールの全体像を紹介します。また、TiDB Cloudで利用可能かどうかについても言及します。
全体像
TiDBの周辺ツールの全体像はこちらです。
これらのツールの多くは tiup
から利用可能になっています。
一つひとつ見ていきましょう。
BR: バックアップ&リカバリツール
TiDB Cloudではバックアップ・リストアが標準で利用可能です。
BRはTiDBのバックアップ・リストアツールで、TiDBのデータが保存されているTiKVのデータファイルのバックアップを作成します。s3へのエクスポートオプションもあります。
その動作上TiKVへの直接アクセスが必要になるため、TiDB CloudではツールとしてのBRは利用できません。標準のバックアップとリストアを利用します。
Dumpling: データエクスポートツール
TiDB Cloudのクラスタに対しても利用可能です。
DumplingはTiDBからデータをエクスポートするツールです。TiDBだけではなくMySQLに対しても利用可能です。CSV/SQL形式でクラウドストレージへの直接出力もサポートし、条件を指定した出力や、サイズや行数で出力ファイルを分割したりなど、高機能かつ高速な出力が可能です。
Lightning: データインポートツール
TiDB Cloudではimportが標準で利用可能です。
Dumplingの逆で、データをimportするツールです。Dumplingの出力をインポートするように設計されています。TiKVに直接データを書き込むPhysicalインポートモードをサポートし、高速なインポートが可能です。(Insert文として実行するLogicalインポートモードもあります)
TiDB Cloudではインポートツールとして提供されています。Lightning同様にDumplingでクラウドストレージに出力したファイルをインポートすることができます。
PhysicalインポートモードはTiKVに直接書き込むためTiDB Cloudでは利用できませんが、LogicalインポートモードをTiDB Cloudに対して利用することは可能です。ただTiDB Cloudの場合は標準のインポート機能を利用することをおすすめします。
DM: データ移行ツール
TiDB Cloudではオプションで利用可能です。(Data Migrationメニュー/Dedicatedのみ)
AWSのDMSのような、データ移行を行うツールです。移行元としてTiDBとMySQL、移行先としてTiDBをサポートしています。DMS同様に一括のデータ移行と、継続移行モードをサポートしています。一括データ移行は実質Dumpling+Lightningです。
TiDB Cloudではマネージドサービスとして、メニューから起動するだけで利用できます。
DMをセルフホストで起動してTiDB Cloudに対して利用することもできます。
TiCDC: チェンジフィードツール
TiDB Cloudではオプションで利用可能です。(Changefeedメニュー/Dedicatedのみ)
TiCDCはTiDBの更新差分を外部システムに連携するツールです。いわゆるCDC(Change Data Capture)と呼ばれるツールです。主にTiDBクラスタ同士の同期に利用されるツールですが、連携先はTiDBだけではなくMySQLやS3, DebeziumやKafkaなどがあり、更新情報を使ったイベント駆動アプリケーションの実装も可能です。
TiDB Cloudではマネージドサービスとして、メニューから起動するだけで利用できます。
TiKVに直接アクセスする必要があるため、セルフホストのTiCDCをTiDB Cloudに対して利用することはできません。
sync-diff-inspector: 差分確認ツール
TiDB Cloudのクラスタに対しても利用可能です
sync-diff-inspectorは、TiDB同士、もしくはMySQLとTiDBのデータ比較を行うツールです。
主に移行でデータが正しく移行できたかどうかの確認に利用されます。
TiDB Cloudに対しても利用可能です。
差分がある場合に差分を修正するためのSQLが生成されるのも面白い特徴です。
利用方法については、下記のブログに詳しく記載されています。
おわりに
いかがでしたでしょうか。また別の記事で個別のツールについては詳しく見ていきたいと思います!