Hive中的分区、分桶以及数据抽样

  • Post author:
  • Post category:其他




6. Hive中的分区、分桶以及数据抽样



Hive

表进行分区、分桶,可以提高查询效率,抽样效率



6.1 分区

分区,在hdfs中表现为table目录下的子目录



6.2 分桶

对应建表时bucket关键字,在hdfs中表现为同一个表目录下根据hash散列之后的多个文件,会根据不同的文件把数据放到不同的桶中。

如果分桶表导入数据没有生成对应数量的文件,可通过如下方式解决:

  1. 开启自动分桶,设置参数:set hive.enforce.bucketing= true

  2. 手动设置reduce数量,比如set mapreduce.job.reduces=4。

建议对于设计表有分桶需求时,开启自动分桶。因为一旦reduce数量设置错了,规划的分桶数会无效。

注意:要用insert语句或者ctas语句将数据存入分桶表。load语句只是文件的移动或复制。



6.3 抽样(sampling)



6.3



版权声明:本文为qq_42164977原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。