暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
初识GBase 8a MPP Cluster对分布式执行计划的理解
882
9页
18次
2020-05-07
免费下载
陈举超 2020-05-07
1
初识 GBase 8a MPP Cluster 分布式执行计划的理解
说明习了三 GBase 8a MPP Cluster 相关知识,前段时间参加了孙云吉老师 GBase 8a
MPP Cluster explain 分布式执行计划相的培训个人知识有限,只记录下本人对 GBase 8a
MPP Cluster 分布式执行计划浅显的理解(截图来自于培训内容)
多表连接操作
group by 操作
优化案例举例
多表连接操
1 静态 hash join 执行计划
场景:两个 hash 分布表进行 join,并且关联列是 hash 分布列。
理论上静态 hash join 是最优的,因为可以直接在各个节点上分别单独执行分布式 join 子,
不需要拉复制表或 hash 动态重分布。
但是当 hash 分布列数据分布严重不均时既数据倾斜严重,多数数据集中在某一节点上
效率也会有影响,因为分布式运算时长取决于最慢的节点。
举例说明:
create table t1 (aid int,gid int) distributed by ('gid');
create table t2 (bid int,gid int) distributed by ('gid');
insert into t1 values(1,100),(1,200),(2,100),(3,50),(2,20),(6,80),(9,10),(6,0),(3,12),(1,18),(9,1);
insert into t2 values(1,0),(300,12),(1,6),(20,50),(50,10),(1,80),(3,10),(9,15),(20,12),(13,18),(2,1);
gbase> explain select t1.aid,t2.bid from t1 inner join t2 on t1.gid=t2.gid and t1.gid=100;
陈举超 2020-05-07
2
2 分布表 join 复制表执行计划
场景:随机分布表或 HASH 分布表和复制表进行关联。
也可以直接在各个节点上分别单独执行分布式 join 算子,不需要拉复制表或 hash 动态重分
布。随分布表和复表进行关联时数据是被均匀散到各个节上的,效率较高HASH
分布表和复制表进行关联效率和 hash 分布列数据均匀程度有关。
举例说明:
create table t3(bid int,gid int) replicated;
insert into t3 select * from t2;
explain select t1.aid,t3.bid from t1 inner join t3 on t1.gid=t3.gid;
3 小表拉复制表 join 执行计划
场景:t1,t2 两个 hash 分布表进行关联,其中 t2 联列不是 hash 布列, t2 据量较小时,
可以基 t2 在各个节点上生成一个 t2 的复制表,然后 t1 t2 的复制表进行关联,既将
执行计划变成分布表 join 复制表。
of 9
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜