Hive分区/分桶
分区
hive的分区的是针对于数据库的分区,将原来的数据(有规律的数据)分为多个区域,数据和表的信息是不会有变化的,但是会增加namenode的压力
分区的目的是提升查询效率,将原来的文件进行多层次的管理
分区有三种,静态分区,动态分区,混合分区
关键字:partitioned by(字段)
分桶
分桶是对一个表或者一个分区进行更加细粒度的划分
Hive会对分桶的那一列按照哈希值%桶的数量分发到各个桶文件中
在查询的时候就会直接去读取桶中的数据,大大提高效率,如果俩个表关联,并且按照关联字段进行分桶,那么这俩个表进行关联的时候就不会产生笛卡儿积,直接通过桶中的数据去关联
关键字:clustered by(字段)
分区是对字段(值)的分区,分桶是对值的hash值的分桶