雅典娜採用蜂巢DDL,所以你只需要運行一個正常的蜂巢創建聲明:
CREATE EXTERNAL TABLE table_name(
col_1 string,
...
col_n string)
PARTITIONED BY (
year_month string,
iso_2 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION 's3://bucket_name/directory/';
然後通過運行MSCK REPAIR TABLE table_name
註冊這些目錄作爲新的分區所需的表。如果由於某種原因失敗(它有時的確雅典娜),你需要運行所有加載分區報表您現有的目錄:
ALTER TABLE table_name ADD PARTITION
(year_month=201601,iso=US) LOCATION 's3://bucket_name/directory/201601/US/';
ALTER TABLE table_name ADD PARTITION
(year_month=201602,iso=US) LOCATION 's3://bucket_name/directory/201602/US/';
ALTER TABLE table_name ADD PARTITION
(year_month=201601,iso=GB) LOCATION 's3://bucket_name/directory/201601/GB/';
etc.
有沒有辦法到'ALTER'的自動完成?就像雅典娜拿起他們一樣,而不必一遍又一遍地指定它們?從[這裏](http://blog.zhengdong.me/2012/02/22/hive-external-table-with-partitions/)看起來我們不能。 –