文章目录
一.分区表(partitioned by)
1.创建分区表
--创建分区表
create table dept_part
(deptno int,dname string,loc string)
partitioned by (month string)
row format delimited fields terminated by '\t'
location '/mydb_in_hdfs.db/dept_part';
attention:分区字段不能使表中已经存在的数据,可以将分区字段看作表的伪列

由于还未插入数据,所以现在dept_part这个文件夹还是空的。
2.插入数据
插入数据:
load data local inpath '/opt/module/datas/dept.txt'
into table dept_part
partition(month='202008');

month就是代表分区的伪列。
hdfs中,dept_part文件夹下,现在就多了一个month=202008的文件夹:

month=202008这个文件夹里面,放的就是dept.txt这个文件

继续加入不同分区:
load data local inpath '/opt/module/datas/dept.txt'
into table dept_part
partition(month='202010');
再次加入一个分区之后,dept_part文件夹中就又多了一个month=202010的文件夹

likewise,month=202010的文件夹中放置的是dept.txt

3.查询分区表中的数据
select * from dept_part
where month=202008;

4.增加/删除分区
增加分区:
alter table dept_part
add partition(month='202009')

本文详细介绍了Hive中的分区表和分桶表。分区表通过partitioned by创建,数据按分区字段组织在不同目录下,可通过增加/删除分区灵活管理。分桶表使用clustered by创建,数据按特定字段哈希分桶存储,有利于提高查询效率。两者在HDFS目录结构、创建语法和数据加载方式上存在显著区别。
最低0.47元/天 解锁文章
1189

被折叠的 条评论
为什么被折叠?



