TiDB 生态工具功能概览

TiDB 提供了丰富的生态工具,可以帮助你进行数据迁移和校验,例如:数据迁入、全量导出、全量导入、备份恢复、校验等等。请根据需要选择适用的工具。

数据迁入 - TiDB Data Migration (DM)

TiDB Data Migration (DM) 是将 MySQL/MariaDB 数据迁移到 TiDB 的工具,支持全量数据的迁移和增量数据的复制。

基本信息:

  • TiDB DM 的输入:MySQL/MariaDB
  • TiDB DM 的输出:TiDB 集群
  • 适用 TiDB 版本:所有版本
  • Kubernetes 支持:使用 TiDB Operator 在 Kubernetes 上部署 TiDB DM。

如果数据量在 TB 级别以下,推荐直接使用 TiDB DM 迁移 MySQL/MariaDB 数据到 TiDB(迁移的过程包括全量数据的导出导入和增量数据的复制)。

如果数据量在 TB 级别,推荐的迁移步骤如下:

  1. 使用 Dumpling 导出 MySQL/MariaDB 全量数据。
  2. 使用 TiDB Lightning 将全量导出数据导入 TiDB 集群。
  3. 使用 TiDB DM 复制 MySQL/MariaDB 增量数据到 TiDB。

注意:

  • 原 Syncer 工具已停止维护,不再推荐使用,相关场景请使用 TiDB DM 的增量复制模式进行替代。

全量导出 - Dumpling

Dumpling 是一个用于从 MySQL/TiDB 进行全量逻辑导出的工具。

基本信息:

  • Dumpling 的输入:MySQL/TiDB 集群
  • Dumpling 的输出:SQL/CSV 文件
  • 适用 TiDB 版本:所有版本
  • Kubernetes 支持:尚未支持

注意:

PingCAP 之前维护的 Mydumper 工具 fork 自 Mydumper project,针对 TiDB 的特性进行了优化。Mydumper 已经被 Dumpling 工具取代,并使用 Go 语言编写,支持更多针对 TiDB 特性的优化。建议切换到 Dumpling。

全量导入 - TiDB Lightning

TiDB Lightning 是一个用于将全量数据导入到 TiDB 集群的工具。

使用 TiDB Lightning 导入数据到 TiDB 时,有三种模式:

  • local 模式:TiDB Lightning 将数据解析为有序的键值对,并直接将其导入 TiKV。这种模式一般用于导入大量的数据(TB 级别)到新集群,但在数据导入过程中集群无法提供正常的服务。
  • importer 模式:和 local 模式类似,但是需要部署额外的组件 tikv-importer 协助完成键值对的导入。对于 4.0 以上的目标集群,请优先使用 local 模式进行导入。
  • tidb 模式:以 TiDB/MySQL 作为后端,这种模式相比 localimporter 模式的导入速度较慢,但是可以在线导入,同时也支持将数据导入到 MySQL。

基本信息:

注意:

原 Loader 工具已停止维护,不再推荐使用。相关场景请使用 TiDB Lightning 的 tidb 模式进行替代,详细信息请参考 TiDB Lightning TiDB-backend 文档

备份和恢复 - Backup & Restore

Backup & Restore (BR) 是一个对 TiDB 进行分布式备份和恢复的工具,可以高效地对大数据量的 TiDB 集群进行数据备份和恢复。

基本信息:

TiDB 增量数据同步 - TiCDC

TiCDC 是一款通过拉取 TiKV 变更日志实现的 TiDB 增量数据同步工具,具有将数据还原到与上游任意 TSO 一致状态的能力,同时提供开放数据协议 (TiCDC Open Protocol),支持其他系统订阅数据变更。

基本信息:

  • TiCDC 的输入:TiDB 集群
  • TiCDC 的输出:TiDB 集群、MySQL、Kafka、Apache Pulsar、Confluent
  • 适用 TiDB 版本:v4.0.6 及以上

TiDB 增量日志同步 - TiDB Binlog

TiDB Binlog 是收集 TiDB 的增量 binlog 数据,并提供准实时同步和备份的工具。该工具可用于 TiDB 集群间的增量数据同步,如将其中一个 TiDB 集群作为另一个 TiDB 集群的从集群。

基本信息:

数据校验 - sync-diff-inspector

sync-diff-inspector 是一个用于校验 MySQL/TiDB 中两份数据是否一致的工具。该工具还提供了修复数据的功能,可用于修复少量不一致的数据。

基本信息:

  • sync-diff-inspector 的输入:TiDB、MySQL
  • sync-diff-inspector 的输出:TiDB、MySQL
  • 适用 TiDB 版本:所有版本

TiSpark

TiSpark 是 PingCAP 为解决用户复杂 OLAP 需求而推出的产品。它借助 Spark 平台,同时融合 TiKV 分布式集群的优势,和 TiDB 一起为用户一站式解决 HTAP (Hybrid Transactional/Analytical Processing) 的需求。