通过 ETL 往 tidb 集群插入数据变慢

您好:
我当前的版本4.0.0 ,架构是6节点的tikv 、3节点pd、3节点tidbs,存储采用全闪SSD,现在我通过ETL往集群里面推送数据,刚开始的时候可以达到10000条每秒,不到一分钟后只能到200多条每秒,这个需要调整那个方面,让它速度正常? 谢谢!

你好,

可以从以下几点入手,看是否可以提供一些解决思路:

  1. tidb 前增加 LB,将压力分摊到多个 tidb 中。
  2. 根据以下链接,确定当前集群是否存在热点问题,并根据解决思路进行优化
  3. 查看 etl 批次,是否过大,是否存在数据冲突,导致 sql 重试过多,或慢语句问题。

我就是简单的初始化一张1000万的表,不存在数据冲突的问题,就这个简单的动作,没必要做lb了吧

那应该不会存在数据冲突问题,写入速度可以看下 etl 是 replace 还是 insert into。

目测是写入热点的问题,可以现根据文档排查下。

我调整了etl的参数,现在写入很快的了,谢谢!

请问调整了 etl 的什么参数,多谢。

您好!
我主要调整了:
1、增加读速度配置参数:
defaultFetchSize:10000
useServerPrepStmts:true
useCursorFetch:true
cachePrepStmts:true

2、增加批量写速度配置
defaultFetchSize:5000
rewriteBatchedStatements:true
useServerPrepStmts:false
useCursorFetch:true
useCompression:true
另外 可不可以把https://book.tidb.io/session1/chapter1/tidb-architecture.html 这个书的电子版分享一下给我,谢谢!

1 个赞

OK,感谢分享,目前此书属于 github 项目,随时更新,建议使用线上版本…

好的 谢谢!

~。~,有问题欢迎开新帖继续讨论哦~

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