静态分区表需要在插入数据的时候显式指定分区的条件。下面通过具体的步骤来演示如何创建并使用Hive的静态分区表。视频讲解如下:
Hive的静态分区表 |
【赵渝强老师】Hive的静态分区表 |
(1)创建静态分区表。
hive> create table emp_part
(empno int,
ename string,
job string,
mgr int,
hiredate string,
sal int,
comm int)
partitioned by (deptno int)
row format delimited fields terminated by ',';
(2)往静态分区表中插入数据时,需要指定具体的分区条件。下面的语句使用了三条insert语句分别从内部表中查询出了10、20和30号部门的员工数据,并插入到分区表中,如下图所示。
hive> insert into table emp_part partition(deptno=10)
select empno,ename,job,mgr,hiredate,sal,comm from emp where deptno=10;
hive> insert into table emp_part partition(deptno=20)
select empno,ename,job,mgr,hiredate,sal,comm from emp where deptno=20;
hive> insert into table emp_part partition(deptno=30)
select empno,ename,job,mgr,hiredate,sal,comm from emp where deptno=30;
(3)通过explain语句查看SQL的执行计划,如查询10号部门的员工信息。通过执行计划,可以看出扫描的数据量大小是118B。如下图所示。
(4)下图是查询普通的内部表的执行计划,可以看出扫描的数据量大小是6290B。