hive分桶实践

A表1亿条记录

B表1亿条记录,

A表B表通过id字段关联,直接关联报错,跑不动任务;

现在对A B表分别进行分桶,然后进行关联:

主要用了hive的分桶原理,具体操作如下:

A数据重新抽到一张分桶表a_bucket,分桶是针对某一列进行桶的组织。Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中。在本例中是根据id分成100个桶;

B也根据id分成100个桶;

A分桶表和B分桶表关联生成新的表a_b_detail,因为是分桶表,关联的时候相当于将整个表切分成100个小任务进行关联,传统的方式直接关联会直接卡死,分桶后再关联比较高效,耗时225s,这里面用到的关联叫做SMB(Sort-Merge-Buket) Join,具体可自行百度

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容