在10s内写入120w数据到tidb,请教下大佬们是使用什么方式好?jdbc插入,或者load data方式呢?
这个导入的速度和你的硬件配置、目标表结构、单行列数和SQL情况紧密相关,你可以多提供一些信息。
通常使用lightning 或BR工具执行物理导入的方式会最快,但是也要考虑你的目标集群是否是离线、是否有业务等因素
都可以吧,看并发。比如 load data 40个并发,如果解决热点问题来插入,那么需要更少并发。
前提是资源也没有瓶颈,nvme盘,tikv可能要解除一些限流参数。
可以试下lightning导入工具导入,有两种模式:
1、local模式:对集群有影响,且需要是空表,但是速度快;
2、tidb模式:对集群影响小,无需是空表,但是速度慢,本质是批量replace操作;
1秒12w数据?我用kettle倒是达到过2-3w的情况,10w/s的速度有点高了,并且这还取决于每条记录的大小。jdbc估计是达不到这个要求的。
我压测500线程一条条插入也跑10万以上了,如果只是导入数据一个insert后面多带点数据,几个并发就够了
业务实时插入?
一次插入搞的批次大一些,就是values弄多一些。
多整几个链接试试。
如果按照1条数据1k算,1秒一百来兆的写入。不算太大,writebuffer改大一些。
https://docs.pingcap.com/zh/tidb/stable/tune-tikv-thread-performance
是我HHD硬盘不配
这与机器硬件配置有关,还与并发情况和工具有关
网络带宽、IO要有保障,可以使用的方法很多,直接Java代码或者数据导入工具如kettle都有可能
感觉JDBC是没这个实力了,用导入的方式应该可以,不过也跟服务器硬件条件相关
单台服务器不行多几台写入就行了。jdbc执行几十万qps还是见过的。
直接看这个就好了
IMPORT INTO
lightning +1
听着就很猛的样子
使用说明方式需要看你的业务,是否能达到要看你的配置。
lightning local模式应该是最快的了