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?
要将 AthenaMSCK REPAIR与 S3 一起使用,您需要使用键值对作为路径前缀:
点击次数/年=2017/月=08/天=26/小时=10/
而不是:clicks/2017/08/26/10/
或者,直接在 Glue 中更新分区(手动或使用爬虫)。
在这里找到:https : //forums.aws.amazon.com/message.jspa?messageID=789078
为了供将来参考,除了本文提到的两个提示之外:https ://aws.amazon.com/premiumsupport/knowledge-center/athena-aws-glue-msck-repair-table/
您还需要将该TableType 属性设置为非空值。就我而言,是EXTERNAL_TABLE。