我可以将多个位置指向同一个蜂巢外部表吗?

Nar*_*esh 13 hadoop hive amazon-s3

我需要同时处理多个月的数据.那么,是否有一个选项可以将多个文件夹指向外部表?例如 Create external table logdata(col1 string, col2 string........) location s3://logdata/april, s3://logdata/march

Cha*_*guy 21

简单的答案:不,创建过程location中的Hive external表必须是唯一的,Metastore需要这样才能了解表所在的位置.

话虽这么说,你可以放弃使用分区:你可以location为你的每个分区指定一个似乎最终你想要的分区,因为你按月拆分.

所以像这样创建你的表:

create external table logdata(col1 string, col2 string) partitioned by (month string) location 's3://logdata'
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样添加分区:

alter table logdata add partition(month='april') location 's3://logdata/april'
Run Code Online (Sandbox Code Playgroud)

你每个月都这样做,现在你可以查询你的表,指定你想要的任何分区,而Hive只会查看你真正想要数据的目录(例如,如果你只处理4月和6月,Hive就不会负载可能)