aws - 当分区存在时如何创建请求

aws - How create request when partitions exist

我创建了一个有很多分区的 table :

PARTITIONED BY (`year` string, `day` string, `month` string, `version_` string, `af_` string, `type_` string, `msm` string)

之后,我 运行 :

MSCK REPAIR TABLE mytable;

当我启动 table 的预览时,我有 0 行。我试试:

select * from mytable

也没有结果。

一个解决方案是使用 alter table 添加分区值,但我应该在每个请求之前创建 alter table 吗?!

原因是您的 PARTITIONED BY 语句中的字段 与您的目录层次结构

的顺序不同
PARTITIONED BY (`year` string, `day` string, `month` string, `version_` string, `af_` string, `type_` string, `msm` string)

af_=4/type_=anchor/msm=1026355/year=2017/month=05/day=14/version_=1 

您可以通过以与目录层次结构相同的顺序列出PARTITIONED BY中的字段来修复它。

我做了一个小测试,其中有一个分区在工作,但随后以不同的顺序重新创建了 table,它返回了零行。 (它还在预期的层次结构中创建了新目录——奇怪!)