Athena 在 msck 修复表后不添加分区

Sam*_*Sam 11 hive amazon-athena

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

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

跑完后

msck repair table clicks
Run Code Online (Sandbox Code Playgroud)

我只收到:

Partitions not in metastore:    clicks:2017/08/26/10
Run Code Online (Sandbox Code Playgroud)

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

Ott*_*tto 7

要将 AthenaMSCK REPAIR与 S3 一起使用,您需要使用键值对作为路径前缀:

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

而不是:clicks/2017/08/26/10/

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

在这里找到:https : //forums.aws.amazon.com/message.jspa?messageID=789078


spg*_*spg 2

为了供将来参考,除了本文提到的两个提示之外:https ://aws.amazon.com/premiumsupport/knowledge-center/athena-aws-glue-msck-repair-table/

  • 允许 IAM 策略中的glue:BatchCreatePartition
  • 将 S3 路径更改为 Flat Case

您还需要将该TableType 属性设置为非空值。就我而言,是EXTERNAL_TABLE