1.Hive中的分区表
可以选择字段作为表分区。
分区其实就是HDFS上的不同文件夹。
分区表可以极大的提高特定场景下Hive的操作性能。
2.分区语法
sql
create table tablename(...) partitioned by (分区列 列类型, ...)
row format delimited fields terminated by '';
3.Hive中的分桶表
选择一个字段作为分桶字段
分桶表本质上是数据分开在不同的文件中
分区和分桶可以同时使用
4.为什么要用insert select的方式插入分桶表数据
需要insert select触发MapReduce进行hash取模计算,来基于分桶列的值,确定哪一条数据进入到哪一个桶文件中。
5.分桶表能带来什么性能提升?
在基于分桶列做操作的前提下:
单值过滤
JOIN
GROUP BY