Hive Athena未在msck修复表之后添加分区

Hive Athena未在msck修复表之后添加分区,hive,amazon-athena,Hive,Amazon Athena,我有一个firehose,它以默认目录结构将数据存储在s3中: “YY/MM/DD/HH”和雅典娜中的一个表,其中这些列定义为分区: 年:字符串,月:字符串,日:字符串,小时:字符串 跑步后 msck repair table clicks 我只收到: Partitions not in metastore: clicks:2017/08/26/10 我可以手动添加这些分区,一切正常。但是,我想知道为什么msck repair不自动添加这些分区并更新metastore?以供将来参考,本

我有一个firehose,它以默认目录结构将数据存储在s3中: “YY/MM/DD/HH”和雅典娜中的一个表,其中这些列定义为分区:

年:字符串,月:字符串,日:字符串,小时:字符串

跑步后

msck repair table clicks
我只收到:

Partitions not in metastore:    clicks:2017/08/26/10

我可以手动添加这些分区,一切正常。但是,我想知道为什么msck repair不自动添加这些分区并更新metastore?

以供将来参考,本文中提到的两个技巧除外:

  • 允许粘附:IAM策略中的BatchCreatePartition
  • 将S3路径更改为扁平箱

您还需要
表格类型设置为非空值。在我的例子中,要使用Athena
MSCK REPAIR
和S3,您需要使用键值对作为路径前缀:

点击次数/年=2017/月=08/天=26/小时=10/

代替:点击/2017/08/26/10/

或者,直接在Glue中更新分区(手动或使用爬虫)


在这里发现:

可能重复的@DuduMarkovitz的可能重复我的问题是在运行msck repair之后,新分区不会自动添加,如上面的帖子所示。。。正如我的答案所示,只支持一个特定的目录命名约定,您没有使用它。我会在我的目录中专门添加年、月、日、小时