TiDB Lightning 简介

TiDB Lightning 是用于从静态文件导入 TB 级数据到 TiDB 集群的工具,常用于 TiDB 集群的初始化数据导入。

要快速了解 Lightning 的基本原理和使用方法,建议先观看下面的培训视频(时长 32 分钟)。注意本视频只为学习参考,具体操作步骤和最新功能,请以文档内容为准。

TiDB Lightning 支持以下文件类型:

TiDB Lightning 支持从以下位置读取:

概述 - 图1

注意

与 TiDB Lightning 相比,IMPORT INTO 语句可以直接在 TiDB 节点上执行,支持自动化分布式任务调度和 TiDB 全局排序,在部署、资源利用率、任务配置便捷性、调用集成便捷性、高可用性和可扩展性等方面都有很大提升。建议在合适的场景下,使用 IMPORT INTO 代替 TiDB Lightning。

TiDB Lightning 整体架构

TiDB Lightning 整体架构

TiDB Lightning 目前支持两种导入方式,通过 backend 配置区分。不同的模式决定 TiDB Lightning 如何将数据导入到目标 TiDB 集群。

  • 物理导入模式:TiDB Lightning 首先将数据编码成键值对并排序存储在本地临时目录,然后将这些键值对上传到各个 TiKV 节点,最后调用 TiKV Ingest 接口将数据插入到 TiKV 的 RocksDB 中。如果用于初始化导入,请优先考虑使用物理导入模式,其拥有较高的导入速度。物理导入模式对应的后端模式为 local

  • 逻辑导入模式:TiDB Lightning 先将数据编码成 SQL,然后直接运行这些 SQL 语句进行数据导入。如果需要导入的集群为生产环境线上集群,或需要导入的目标表中已包含有数据,则应使用逻辑导入模式。逻辑导入模式对应的后端模式为 tidb

导入模式物理导入模式逻辑导入模式
后端localtidb
速度快 (100 ~ 500 GiB/小时)慢 (10 ~ 50 GiB/小时)
资源使用率
占用网络带宽
导入时是否满足 ACID
目标表必须为空可以不为空
支持 TiDB 集群版本>= v4.0.0全部
导入期间是否允许 TiDB 对外提供服务受限制

概述 - 图3

注意

以上性能数据用于对比两种模式的导入性能差异,实际导入速度受硬件配置、表结构、索引数量等多方面因素影响。