tidb导入导出的最佳实践是什么

一个好的问题描述有利于社区小伙伴更快帮你定位到问题,高效解决你的问题

【TiDB 使用环境】生产环境
【TiDB 版本】6.5
【部署方式】
【操作系统/CPU 架构/芯片详情】
【机器部署详情】
【集群数据量】
【集群节点数】
【问题复现路径】
表的数据量有1500w, 现在用datax 运行sql做导入导出的. 发现性能非常低, 导入要差不多2个小时,导出要1个小时. 想问下有没有快速的导入导出文件的方法. 字段格式和分隔符要能自定义

试试这两个

1 个赞

我记得好像有一种叫load工具,直接越过lsmtree机制进入合并的sst

6.5版本可以用import into 吗?

你说的是Bulk Load吗? 这种是直接已排序的 SSTable 文件. 普通的 一般不是先先写硬盘的 WAL,再写内存中的 MemTable,最后通过 Compaction 逐步刷盘。 这种的怎么实现?

是不是这样用ligntning ?
(1)先写一个配置表

tidb-lightning.toml

[lightning]

服务地址,用来给 Prometheus 提供监控指标,本地可用默认端口

status-addr = ‘:8289’

[tikv-importer]

设置为 “local” 模式,这是最快的物理导入模式(直接生成 SST)

backend = “local”

本地临时存储路径,必须是一个空目录,且磁盘空间要大于数据源大小

sorted-kv-dir = “/tmp/tidb/lightning/sorted-kv”

[mydumper]

你的数据源目录(刚才 dumpling 导出的目录)

data-source-dir = “/data/export”

如果文件很大,可以设置并发读取

read-block-size = “64KB”

[tidb]

目标 TiDB 集群信息

host = “192.168.1.10” # TiDB IP
port = 4000
user = “root”
password = “your_password”

PD 集群地址 (用于切换 Region 模式),填一个即可

pd-addr = “192.168.1.20:2379”
(2). tiup tidb-lightning -config tidb-lightning.toml

导出: Dumpling
导入: TiDB Lightning
可以尝试一下

  • 最优方案:生产环境优先使用「 Dumpling导出 + TiDB Lightning 导入」,1500 万行数据总耗时可控制在 30 分钟内,且完全支持自定义分隔符 / 字段格式;
  • 折中方案:无法切换工具时,优化 DataX 的并发数、批量大小和 TiDB 参数,性能可提升 50% 以上;
1 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。