分区表

分区表:
分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过 WHERE 字句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。
谓词下推(基本思想):尽可能的处理表达式(expression)默认产生的执行计划在看到数据的地方添加过滤器filter。
1.引入分区表(需要根据日期对日志进行管理)
/user/hive/warehouse/log_partition/20190902/20190902.log
/user/hive/warehouse/log_partition/20190902/20190903.log
/user/hive/warehouse/log_partition/20190902/20190904.log
2.创建分区语法
create table dept_partition(
deptno int,dname string,loc string
)
partitioned by (month string)
row format delimited fields terminated by '\t';
3.加载数据
load data local inpath '/xx/xx/xx' into table dept_partition partition(month='2019-06');
load data local inpath '/xx/xx/xx' into table dept_partition partition(month='2019-07');
load data local inpath '/xx/xx/xx' into table dept_partition partition(month='2019-08');
4.查询分区表中的数据
*单分区查询
select * from dept_partition where month='201907';
*多分区联合查询
select * from dept_partition where month='201706'
union
select * from dept_partition where month='201707'
union
select * from dept_partition where
month='201708'
5.增加分区
创建单个分区
alter table dept_partition add partition(month='201911');
同时创建多个分区
alter table dept_partition add partition(month='201904') partition(month='201905');
6.删除分区
删除单个分区
alter table dept_partition drop partition(month='201704');
同时删除多个分区
alter table dept_partition drop partition(month='201905'),partition(month='201904');
注意:添加时两个partition之间不加逗号,但是删除时一定要加逗号。
7.查看分区表有多少个分区
show partitions dept_partition;
8.查看分区表结构
desc formatted dept_partition;

你可能感兴趣的:(分区表)