Hive 分区表和分桶表

1 分区表
分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所
有的数据文件。 Hive 中的分区就是分目录 ,把一个大的数据集根据业务需要分割成小的数据
集。在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率
会提高很多。
1.1 分区表基本操作
1 )引入分区表(需要根据日期对日志进行管理 , 通过部门信息模拟)
2 )创建分区表语法

 

 

 注意:分区字段不能是表中已经存在的数据,可以将分区字段看作表的伪列。

3 )加载数据到分区表中
(1) 数据准备
Hive 分区表和分桶表_第1张图片

 

(2) 加载数据
Hive 分区表和分桶表_第2张图片

 注意:分区表加载数据时,必须指定分区

Hive 分区表和分桶表_第3张图片

 4)查询分区表中数据

单分区查询
hive (default)> select * from dept_partition where day='20200401';
多分区联合查询

 

5 )增加分区
创建单个分区
hive (default)> alter table dept_partition add partition(day='20200404');
同时创建多个分区
hive (default)> alter table dept_partition add partition(day='20200405')
partition(day='20200406');
6 )删除分区
删除单个分区
hive (default)> alter table dept_partition drop partition
(day='20200406');
同时删除多个分区
hive (default)> alter table dept_partition drop partition
(day='20200404') , partition(day='20200405');
7 )查看分区表有多少分区
hive> show partitions dept_partition;
8 )查看分区表结构

 1.2 二级分区

思考 : 如何一天的日志数据量也很大,如何再将数据拆分 ?

 1)创建二级分区表

 2)正常的加载数据

Hive 分区表和分桶表_第4张图片

 3)把数据直接上传到分区目录上,让分区表和数据产生关联的三种方式

(1)方式一:上传数据后修复
上传数据

 Hive 分区表和分桶表_第5张图片

 

(2)方式二:上传数据后添加分区
Hive 分区表和分桶表_第6张图片
(3)方式三:创建文件夹后 load 数据到分区
Hive 分区表和分桶表_第7张图片

 

你可能感兴趣的:(Hive,hive,hive,hadoop)