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



我创建了一个包含许多分区的表:

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

之后,我运行:

MSCK REPAIR TABLE mytable;

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

select * from mytable

也没有结果。

一种解决方案是使用 alter table 添加带有值的分区,但我应该为每个请求创建 alter 表吗?!

原因是您的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中的字段来修复它。

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

最新更新