GBASE 8A v953报错集锦37--加载千余个小文件耗时较长

针对GBase8aMPPCluster在处理小批量宽表加载时出现的高IO成本和低效率问题,建议通过增大批量加载和优化并发配置来改善。增大批量可在业务允许的时间内减少提交频率,提高总体效率;调整并发加载参数,如合理设置gbase_pararrel_max_thread_in_pool和gbase_loader_parallel_degree,能更好地利用硬件资源,减少任务间的串行等待,从而提升加载速度。

问题现象

现场加载频繁,每次加载的数据量很小(几 MB 到几十 MB,1000 行级别),而且

大多是宽表(800~1000 列)。由于 GBase 8a MPP Cluster 是列存数据库,在这种情

况下每次加载任务需要打开大量文件(与列数成正比)进行读写,并且每次写入的

数据量又很少。导致每次加载任务的 IO 代价较高(在整个加载时间的占比较高),

加载最后阶段需要把数据和元数据 sync 到磁盘,数据提交阶段占用时间较长,总体

加载效率偏低。目前的存储结构和整体架构确定了 GBase 8a MPP Cluster 擅长于进

行大批量数据加载,不擅长处理宽表小文件频繁加载的场景。

解决方法

 放大批量

在业务允许的时间窗口内,尽量放大单次加载的批量,降低提交的频率。可以

有效提高总体加载的效率。

 关于并发加载的参数配置

现场配置了 gbase_pararrel_max_thread_in_pool=64,10 个并发加载任务,这样

的配置不合理,3 个任务就可以用光线程池资源,后续任务只能串行,从而影

响效率。在有并发任务的情况下,一定要根据现场硬件情况配置线程池和并

行度,如在 10 并发情况下可以尝试如下配置:

gbase_pararrel_max_thread_in_pool=128

gbase_loader_parallel_degree=12

(如果还有其他背景任务,还要适当调低 parallel_degree)。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值