Loader 使用文档

Loader 包含在 tidb-enterprise-tools 安装包中,可在此下载

当数据量比较大的时候,如果用 mysqldump 这样的工具迁移数据会比较慢。我们尝试了 ,能够多线程导出和导入数据。在使用过程中,mydumper 问题不大,但是 myloader 由于缺乏出错重试、断点续传这样的功能,使用起来很不方便。所以我们开发了 loader,能够读取 mydumper 的输出数据文件,通过 MySQL protocol 向 TiDB/MySQL 中导入数据。

  • 多线程导入
  • 支持表级别的并发导入,分散写入热点
  • 支持对单个大表并发导入,分散写入热点
  • 出错重试
  • 断点续导
  • 通过 system variable 优化 TiDB 导入数据速度

注意事项

请勿使用 loader 导入 MySQL 实例中 系统数据库到下游 TiDB。

如果使用默认的 checkpoint-schema 参数,在导完一个 database 数据库后,请 后再开始导入下一个 database。

推荐数据库开始导入的时候,明确指定 checkpoint-schema = "tidb_loader" 参数。

除了使用命令行参数外,还可以使用配置文件来配置,配置文件的格式如下:

或者使用配置文件 “config.toml”:

合库合表场景案例说明

根据配置文件的 route-rules 可以支持将分库分表的数据导入到同一个库同一个表中,但是在开始前需要检查分库分表规则:

  • 是否可以利用 route-rules 的语义规则表示
  • 分表中是否包含唯一递增主键,或者合并后是否包含数据上有冲突的唯一索引或者主键

Loader 需要配置文件中开启 route-rules 参数以提供合库合表功能

  • 如果使用该功能,必须填写 与 target-schema