雅典娜在msck修复表之后没有添加分区

时间:2017-08-26 14:17:12

标签: hive amazon-athena

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

year:string,month:string,day:string,hour:string

运行后

msck repair table clicks

我只收到:

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

我可以手动添加这些分区,然而一切正常,我想知道为什么msck修复不会自动添加这些分区并更新Metastore?

2 个答案:

答案 0 :(得分:0)

除了本文提到的两个技巧外,供以后参考:https://aws.amazon.com/premiumsupport/knowledge-center/athena-aws-glue-msck-repair-table/

  • 在IAM策略中允许粘胶:BatchCreatePartition
  • 将S3路径更改为大写字母

您还需要TableType attribute设置为非空值。就我而言,是EXTERNAL_TABLE

答案 1 :(得分:0)

在S3中使用雅典娜MSCK REPAIR,您需要将键值对用作路径前缀:

clicks / year = 2017 / month = 08 / day = 26 / hour = 10 /

代替:clicks / 2017/08/26/10 /

或者,直接在Glue中更新分区(手动或使用搜寻器)。

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