用pytispark写入从tidb的一个表写到另一个表性能很差


如图,
用pytispark 执行isert into table t1 as select * from s1
这样简单的数据导入,大概两小时才能导入四千万条数据,有什么参数可以优化么?

1 个赞
  1. 写时候的读取是用于冲突等判断
  2. 根据之前的 bechmark, 4000w 的数据用 tispark / spark jdbc 应该都是分钟级别的。如果不需要全局事务还是建议 spark jdbc
  3. 你现在的并发度是多少,benchmark 里的是 32。如果低了可以增加 executor 数量/核心数来增加并发
1 个赞

有具体的代码么?看看你是哪种写入方式?

直接 jdbc就好了

2 个赞

PyTiSpark这是套了两层马甲吗?本来Python就是够慢的了,再套上一层Spark肯定更慢了。说不定用Dumpling导出,再用Lightning导入都比这个快~

2 个赞

确实够慢的,换个写法呗