PARTITIONED BY如何运作?

时间:2017-07-28 13:38:31

标签: hive

我在下面创建了表,想要了解分区是如何工作的,分区列LogDate不是表DDL的一部分,那么分区如何工作以及数据如何分配&检索发生。

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' ;

1 个答案:

答案 0 :(得分:0)

分区列``肯定是表DDL的一部分,因为PARTITIONED BY也是DDL。 分区是一个文件夹,因此不必将分区密钥数据存储在数据文件中。 分区信息(分区键,位置)存储在Metastore数据库中。对于动态分区加载,分区列应该在insert overwrite语句的最后一列。 查询表时,hive从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