美文网首页
hive分区分桶

hive分区分桶

作者: 安申 | 来源:发表于2020-06-08 22:57 被阅读0次

    1.在hdfs目录上,桶是以文件的形式存在的,而不是像分区那样以文件夹的形式存在。

    2.直接load data不会有分桶的效果,这样和不分桶一样,在HDFS上只有一个文件。

    3.需要借助中间表,先将数据load到中间表,再将中间表的数据插入到分桶表中

    4.创建分桶表时,对某字段进行排序,结果每个分桶表中的数据都是按照这个字段进行排好序的

    5.不同于分区,分桶中的字段是原始数据中存在的;分区表,分区字段在原始文件中并不存在

    6.分区表和分桶表的优点,字段的要求

    分区表:    优点是:提高查询效率,避免全表扫描      要求是:分区字段绝对不能出现在表已有的字段内。

    分桶表:    优点是:提高join效率和用于数据取样。    要求是:分桶字段必须出现在表已有的字段内。

    7.选什么字段分桶

    1)int类型字段比较友好

    2)取hash后各分区块数据量比较均匀的字段

    3)join的连接字段

    当join连接的字段值取hash不够均匀时,多取一个其它字段作为分桶字段;

    分桶公式:

    bucket num = hash_function(bucketing_column) mod num_buckets

    列的值做哈希取余 决定数据应该存储到哪个桶

    分桶是相对分区进行更细粒度的划分。分桶将整个数据内容安装某列属性值得hash值进行区分,如要安装name属性分为3个桶,就是对name属性值的hash值对3取摸,按照取模结果对数据分桶。如取模结果为0的数据记录存放到一个文件,取模为1的数据存放到一个文件,取模为2的数据存放到一个文件。

    ————————————————

    版权声明:本文为CSDN博主「epitomizelu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/epitomizelu/java/article/details/41911657

    相关文章

      网友评论

          本文标题:hive分区分桶

          本文链接:https://www.haomeiwen.com/subject/jwxjtktx.html