Zealot
2023 年12 月 13 日 07:54
1
单表数据量16GB,2亿条数据,想通过insert into select的方式复制表,实际测得速度大概只有1秒1-2万条数据被写入;
我的SQL:
SET @@SESSION.autocommit = 1;
SET @@SESSION.tidb_batch_insert = 1;
SET @@SESSION.tidb_batch_delete = 1;
SET @@SESSION.tidb_dml_batch_size = 1000;
insert into table_b select * from table_a;
Zealot
2023 年12 月 13 日 08:10
3
这个也试过了,区别不大,而且不支持子查询,很多东西实现不了
那你用dumpling导出 再用lightning导入,这个快
1 个赞
zhanggame1
(Ti D Ber G I13ecx U)
2023 年12 月 13 日 08:47
5
用dumpling导出成csv再导入是不是更简单点
小龙虾爱大龙虾
(Minghao Ren)
2023 年12 月 13 日 09:51
6
拆批并发搞,没并发很慢的,或者就像楼上说的dumpling+lightning
1 个赞
现在可能还是 dumpling+lightning 比较快。。后续新的版本会出 import into select,速度更快
zhanggame1
(Ti D Ber G I13ecx U)
2023 年12 月 14 日 02:01
8
import into select在7.5 已经更新了,其实还是lightning
Zealot
2023 年12 月 14 日 02:46
9
额,这也太麻烦了,目前用的是DataX,速度还行,其实原理就是多并发分段跑insert into select,后面我再试试用TiSpark做insert会不会快点
随缘天空
(Ti D Ber Ivw R7o Pj)
2023 年12 月 14 日 03:47
10
建议使用官方推荐的迁移工具速度会快一些,或者使用数据抽取工具,比如你说的DataX之类的,创建多个管道任务并行执行(将数据按一定条件切割,每个任务执行一批数据的处理),速度会更快
Kongdom
(Kongdom)
2023 年12 月 14 日 07:08
13
直接有sql语句估计没有太大的变化了,考虑辅助工具吧,我一般用kettle,支持多线程批量插入。速度还挺快的。
Zealot
2023 年12 月 14 日 13:55
14
测了一下TiSpark执行insert into select,速度还可以,数据加工+插入1亿条数据,只用了1个半小时,这还是在Spark资源吃紧的情况下,如果资源足够,应该能更快
Zealot:
tidb_batch_insert
楼主知道这个参数的应该是老用户了吧,可以使用dumpling 导出和lightning 导入,速度很快的。
这两个工具用tiup可以执行命令使用,也是两条命令就完成导出导入了,方便快捷
system
(system)
关闭
2024 年2 月 12 日 14:08
17
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。