Hive分区与分桶

二次信任 提交于 2020-03-07 04:49:33

分区

定义:分区表是指按照数据表的某一字段或多个字段分为多个区,每一个区都可以可以理解为一个文件夹
优点:在数据庞大的情况下创建分区表便于对数据进行管理,也可以提高查询的效率
使用:在生产上一般以日期作为分区的字段,每一天的数据即时一个分区,存储在一个单独的文件夹内
建表:Hive中创建分区表时可以使用partitioned by(col_name data_type 字段名与类型) 来指定分区表的分区字段,需要注意分区字段一定不能在建表字段中,分区字段是单独存储的

分桶

定义:分桶是相对分区更细粒度的划分:将分桶字段取hash值后再模余分桶个数来划分数据
优点:

  1. 提高join效率:两表以分桶字段join时在Map端只需要关联hash相同的字段
  2. 便于取样
    建表:Hive中创建分桶表时可以使用**clustered by (col_name, col_name, …) [sorted by (col_name [asc|desc], …)] into num_buckets buckets]**来指定分桶,clustered by 指定分桶标志,into num_buckets buckets 指定分桶个数,sorted by指定桶中的排序规则,注意分桶字段一定是建表字段中的某一个或某几个
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!