美文网首页
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 1.2.1 分区和分捅

    1. 借鉴 Hive学习笔记——Hive中的分桶Hive分区和分桶(0925)HIVE表索引,分区和分桶的区别 2...

  • hive分区分桶

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

  • Hive 1.2.1 排序

    1. 借鉴 HIVE的四种排序,以及分区分桶谈谈hive的order by ,sort by ,distribut...

  • Hive 分桶

    Hive 分桶 分桶对于每一个表或者分区,Hive可以进一步组织成桶,也就是更为细粒度的数据范围划分Hive是针对...

  • Hive 分区/分桶

    分区/桶 Hive 分区 Hive的分区方式:由于Hive实际上是数据文件在HDFS存在的目录区分分区字段是虚拟列...

  • Hive分桶

    Hive分桶 分桶表是对列值取哈希值的方式,将不同数据放到不同文件中存储。 对于hive中每一个表、分区都可以进一...

  • Hive分桶

    提问:为什么要创建分桶表呢? 我认为有以下两点原因: (1):分桶表是为了在分区表的基础上,进...

  • hive分区分桶索引

    1.分区 分区是以字段的形式在表结构中存在,但该字段不存放实际的数据内容,仅仅是分区的表示。 2.分桶 桶是更为细...

  • Hive分桶表

    测试数据 创建分桶表 设置变量,设置分桶为true, 设置reduce数量是分桶的数量个数 加载数据 检查刚刚加载...

  • Hive 分桶详解

    1分桶 1.1什么是分桶?和分区有什么区别? 分区:Hive在查询数据的时候,一般会扫描整个表的数据,会消耗很多不...

网友评论

      本文标题:hive分区分桶

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