问题一:排序优化中的CLUSTER BY是什么意思?
排序优化中的CLUSTER BY是什么意思?
参考回答:
CLUSTER BY:根据指定的字段进行分桶,并在桶内进行排序,可以认为cluster by是distribute by+sort by。对于排序而言,尝试用distribute by+sort by确保reduce中结果有序,最后在全局有序。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615697
问题二:Join端优化中大表join小表怎么操作?
Join端优化中大表join小表怎么操作?
参考回答:
通过将需要join的小表分发至map端内存中,将Join操作提前至map端执行,避免因分发key值不均匀引发的长尾效应,复杂度从(M*N)降至(M+N),从而提高执行效率。ODPS SQL与Hive SQL使用mapjoin,SPARK使用broadcast。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615698
问题三:Join端优化中大表join大表怎么操作?
Join端优化中大表join大表怎么操作?
参考回答:
长尾效应由热点数据导致,可以将热点数据加入白名单中,通过对白名单数据和非白名单数据分别处理,再合并数据。
具体表现为打散倾斜key,进行两端聚合(针对聚合)或者拆分倾斜key进行打散然后再合并数据。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615699
问题四:Join操作中应如何避免数据膨胀?
Join操作中应如何避免数据膨胀?
参考回答:
在Join操作中,为了避免数据膨胀,应确保Join关联条件是正确的,避免形成笛卡尔积,从而防止数据量爆炸。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615700
问题五:关联key的区分度对数据膨胀有什么影响?
关联key的区分度对数据膨胀有什么影响?
参考回答:
关联key的区分度对数据膨胀有很大影响。当key值区分度低(即distinct数量少)时,越有可能造成数据膨胀。例如,用户表中的性别列或交易表中的省市列,这些列的取值范围有限,如果作为Join的关键字,可能导致大量重复的数据组合。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615701