Kylin3.1.2实战--调优CUBE构建数据倾斜优化
kylin构建时数据倾斜发生情况及解决方案一览:
1)未开启重新分发中间表 (kylin.source.hive.redistribute-flat-table
: false的时候,默认为True)
问题分析:先考虑启动Kylin自带缓解数据倾斜方案,也就是重分发中间表。
解决方案:开启重分发中间表kylin.source.hive.redistribute-flat-table:true
2)开启重分发表且设置share by维度
问题分析:设置share by维度之后,数据会按照share by维度分发,数据倾斜说明该项不适合作为share by列
解决方案:1、选取其他share by列 2、去掉share by列
3)开启重分发表且未设置share by维度
问题分析:在Build Base Cuboid (构建基础cuboid)的Mapper就是重分发中间表一步的reducer,所以数据倾斜实质是重分发表中reduce数据不均衡导致。网上大多资料显示未设置share by维度时,按照distribute by rand分发,但那是Kylin2.X的做法,在Kylin3.X中引入了参数ylin.source.hive.redistribute-column-count(
重分配列的数量,默认值为 3),如果不设置的该参数就会在第二步时distribute by rowkeys的前3列,这也是我们一般需要将Rowkeys中超高基前移的原因。如果Rowkeys前三列属性保证数据均衡,就会导致空有重分发表依旧数据倾斜
解决方案:1、将超高基维度前移 2、 设置合适的share by列 3、增加ylin.source.hive.redistribute-column-count个数,直到能满足均匀分布要求
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本