AWS Athena表空结果

3

我有一个AWS Athena表格,其中的记录是通过标准的“Select * from...”查询返回的。我执行了“show create table on this”,并创建了一个新表test2。

在test2上执行相同的选择查询总是返回空行。为什么会这样呢?

1个回答

3

Athena中的表将数据保存在AWS中的外部源S3中。当您查看创建表的DDL时,会看到一个LOCATION,它指向S3存储桶。如果LOCATION不同,那么当您对此表执行选择操作时,可能会导致未显示任何行。

CREATE EXTERNAL TABLE `test_table`(
...
)
ROW FORMAT ...
STORED AS INPUTFORMAT ...
OUTPUTFORMAT ...
LOCATION s3://bucketname/folder/

如果位置正确,可能需要运行MSCK REPAIR TABLE命令来更新目录中的元数据,以便在添加与Hive兼容的分区后使用。从文档中了解更多信息。

使用MSCK REPAIR TABLE命令,在创建表之后向文件系统(如Amazon S3)扫描添加的与Hive兼容的分区,以更新目录中的元数据。

确保还检查故障排除部分。有一次我错过的是IAM角色上的glue:BatchCreatePartition策略。


非常感谢@Felipe。我看到MSCK修复了它。我读到如果你稍后创建一个表,它是必需的,但是从概念上讲,我仍然不清楚为什么它可以解决这个问题。 - curiousengineer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接