如何分桶更合理?

提问者:帅平 问题分类:面试刷题
如何分桶更合理?
1 个回答
温柔刀下鬼
温柔刀下鬼
分桶到底是越多越好还是越少越好?这个在一般场景下应该让数据分布的更均匀,也就是说选择散列度尽可能大的列,这样会使得数据分布均衡避免数据倾斜的问题以及提升查询效率,但是在一些特定场景下这种方式并不是最优解,以下举例2种场景:
1、多聚合场景:这种场景往往最好是不要分桶,如果是单桶的话仅需要扫描到数据merge计算即可返回结果,如果是多桶,需要扫描多桶先merge一次,然后最终汇总二次merge,再这个过程中数据传输、计算都会消耗大量cpu、因此这种场景最好是不要分桶
2、多过滤、多关联场景:这2种场景往往需要使用的固定的列,所以这种场景下将被多次使用到的列设置为分桶键,在数据查询的时候往往会达到最优解(只扫描与计算相关的数据,其他数据全部过滤)
发布于:1个月前 (02-08) IP属地:四川省
我来回答