2017-07-28 240 views
0

我已经创建了下表,想要了解分区是如何工作的,分区列LogDate不是表DDL的一部分,因此分区如何工作以及如何检索数据分布&。PARTITIONED BY如何工作?

create table tbl_1 
(
CollectTimeStamp TIMESTAMP, 
ObjectColumnName VARCHAR(256), 
ObjectDatabaseName   VARCHAR(256), 
TypeofUse     TINYINT 
) 
PARTITIONED BY (LogDate STRING) 
row format delimited fields terminated by '\u0001' 
stored as ORC 
LOCATION '/tables/db1/tbl_1' ; 

回答

0

分区列“绝对是表DDL的一部分,因为PARTITIONED BY也是DDL。 分区是一个文件夹,因此没有必要将分区密钥数据存储在数据文件中。 分区信息(分区键,位置)存储在Metastore数据库中。对于动态分区加载,分区列应该在插入覆盖句子中最后一个。 查询表时,配置单元会从Metastore中读取有关分区(键,位置)的信息。 位置(文件夹)可附接为一个分区:

ALTER TABLE page_view ADD PARTITION (dt='2008-08-08', country='us') location '/path/to/us/part080808' 

见文档这里:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL