为了对表进行合理的管理以及提高查询效率,Hive可以将表组织成“分区”。一个分区实际上就是表下的一个目录,一个表可以在多个维度上进行分区,分区之间的关系就是目录树的关系。
1、创建分区表
通过PARTITIONED BY子句指定,分区的顺序决定了谁是父目录,谁是子目录。
创建有一个分区的分区表:
CREATE TABLE IF NOT EXISTS part_test(
c1 string
,c2 string
,c3 string
,c4 string
)PARTITIONED BY (day_id string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE;
创建有两个分区的分区表:
CREATE TABLE IF NOT EXISTS part_test_1(
c1 string
,c2 string
,c3 string
,c4 string
) PARTITIONED BY (month_id string,day_id string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE;
2、外部分区表
外部表也可以建成分区表