我有一个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?
答案 0 :(得分:0)
除了本文提到的两个技巧外,供以后参考:https://aws.amazon.com/premiumsupport/knowledge-center/athena-aws-glue-msck-repair-table/
您还需要将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