如何使用 TDengine Sink Connector?( 四 )


如何使用 TDengine Sink Connector?
文章图片
结果分析
从上图可以看出 , 相同数据量 , 线程越多写入速度越快 。 当使用单线程写入时 , 每秒能写入大概10万以上 。 当使用5个线程写入时 , 每秒写入大概35万左右 。 当使用10个线程时 , 每秒能写入55万左右 。
写入速度比较平稳 , 与总数据量关系不大 。
同时也发现线程增加越多 , 线程增加带来的速度提升越少 。 线程数从1变到10 , 速度只从10万变到50万 。 可能的原因是数据在各个分区分布不均匀 。 有的task执行时间长 , 有的task执行时间短 , 数据量越大 , 数据倾斜越大 。 比如1000万数据 , 10个分区的时候 , 各分区的数据量:[bding@vm95kafka-logs]$du-h./-d1125M./meters-8149M./meters-7119M./meters-9138M./meters-4110M./meters-3158M./meters-6131M./meters-5105M./meters-0113M./meters-299M./meters-1
另一个影响多线程写入速度的是数据的乱序程度 。 本测试场景中 , 多条时间线的数据随机分配到了不同分区 , 当单线程写入时(即1个分区时) , 数据是严格有序的 , 写入速度最快 。 线程越多乱序程度越大 。
所以在实际应用场景中 , 建议将同一个子表的数据 , 放在Kafka同一个分区中 。
附录
·测试程序
本文中用到的所有代码和原始测试结果数据都已上传到GitHub仓库 。
·测试环境
如何使用 TDengine Sink Connector?
文章图片
返回搜狐 , 查看更多
责任编辑: