【发布时间】:2021-08-26 21:48:11
【问题描述】:
MSCK REPAIR TABLE 命令仅在重新创建表后才添加分区。
MSCK 修复表不会将分区添加到表中,但会列出不在 Metastore 中的分区。但是,当我重新创建表并运行 MSCK 修复表命令时,它可以工作。但是第二天我运行 MSCK 修复表命令将新分区添加到 Metastore,它没有添加分区。但是,如果我再次重新创建表并运行 MSCK 修复表命令,则会添加分区。
这个问题突然开始了,我不知道该怎么办。非常感谢任何对可能发生的事情有任何想法的人。
以下是我在修复表失败时收到的消息。
Partitions not in metastore:
prod_partner_visits:year=2021/month=06/day=09/hour=00
Partitions missing from filesystem:
prod_partner_visits:year=2021/month=06/day=09/hour=00
但是我在 s3 存储桶中有那个分区,它会在我重新创建 athena 表时添加该分区。
下面是表格的 DDL
CREATE EXTERNAL TABLE `prod_partner_visits`(
`visitortoken` string COMMENT 'from deserializer',
`timestamp` string COMMENT 'from deserializer',
`timeuuid` string COMMENT 'from deserializer',
`event` string COMMENT 'from deserializer',
`message` string COMMENT 'from deserializer'
)
PARTITIONED BY (
`year` int,
`month` int,
`day` int,
`hour` int
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
LOCATION 's3://partner-traffic-channel-prod/topics/prod-cp-channel-visit'
TBLPROPERTIES (
'has_encrypted_data'='false',
'transient_lastDdlTime'='1623329273'
)
【问题讨论】:
-
你能告诉我们当你试图修复桌子但它失败时它说什么吗?
-
以下是我在修复表失败时收到的消息。不在 Metastore 中的分区:prod_partner_visits:year=2021/month=06/day=09/hour=00 文件系统中缺少分区:prod_partner_visits:year=2021/month=06/day=09/hour=00
-
它想要添加相同的目录,然后从存储中报告为“丢失”,这似乎很奇怪。你有任何文件存储在那个目录中吗?
-
是的,我在目录中有文件。
-
你能发布表定义吗(例如通过
generate create table ddl)?
标签: amazon-web-services amazon-athena