【赵渝强老师】Hive的分区表-一、实战使用Hive的静态分区表

时间:2024-11-04 13:58:45

静态分区表需要在插入数据的时候显式指定分区的条件。下面通过具体的步骤来演示如何创建并使用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;

【赵渝强老师】Hive的分区表_sql_02

(3)通过explain语句查看SQL的执行计划,如查询10号部门的员工信息。通过执行计划,可以看出扫描的数据量大小是118B。如下图所示。

【赵渝强老师】Hive的分区表_数据仓库_03

(4)下图是查询普通的内部表的执行计划,可以看出扫描的数据量大小是6290B。

【赵渝强老师】Hive的分区表_hive_04