GreatDB数据库使用load data 有哪些关键参数?
请列举关键参数,供参考谢谢!
GreatDB数据库使用load data 有哪些关键参数?
请列举关键参数,供参考谢谢!
注意:
当load data导入数据的瓶颈在dbscale解析数据包处时,调大该参数可以显著提高load data的性能。但当该值大于1时,数据实际导入后端 mysql 的顺序将可能与文件中的顺序不一致,通常这是可以忽 略的。
GreatDB 用于处理load data数据包解析的 analysis节点的处理队列最大长度。
全局参数。可以动态修改
默认值 = 30。参数值范围 >=2
注意:
GreatDB对analysis节点进行数据包填充时,总是填充到max-load-analysis-wait-size指定的大小,并且analysis节点在待处理的数据包数量小于该值的一半时会唤醒父线程进行数据包填充。
建议该值使 用默认值或适当调高,如果需要导入的数据量非常的大时。
另外如果该值过大,会导致GreatDB缓存过多的数据包,将会导致GreatDB在load data过程中对机器内存的消耗过多,极端情况下可能会OOM。
GreatDB 处理load data时,每个后端数据包发送 线程缓存的最大待发送数据包的数量。
全局参数。可以动态修改
默认值 = 64。参数值范围 >=10
注意:
GreatDB往后端发送的LOAD DATA数据包每个是16M,默认值64即1G。每个后端partition对应一个数据包发送线程。当后端mysql处理过慢时可能导致数据包在数据包发送线程上堆积,但堆积的量达 到max-load-ready-packets时,GreatDB将挂起该load data任务直到堆积的量小于max-load-ready- packets。
GreatDB 向后端执行一次load的数据包数目。
会话级别参数。可以动态修改
默认值 = 64。参数值范围 >=10
注意:
对于分片表场景,如果一张表load数据量过大,一次load会导致主从延时巨大。此时可以调整本参数,设置每load一定包数就提交一次。
但是这么设置会有一定风险:
就是如果load过程中报错,那么之前load的数据会已经进入数据库,所以此时数据库会有部分脏数据,并且无法确认脏数据量。
一个数据包的大小取决与认证节点的 max_packet_size , 默认值为 0 ,表示不启用该功能,整个load只提交一次。