如何解决 Athena 中的“视图已过时;必须重新创建”错误?

上次更新日期:2021 年 3 月 30 日

当我在 Amazon Athena 中运行视图查询时,我收到了与以下类似的“视图过时”错误消息:“SYNTAX_ERROR:行 1:15:视图‘awsdatacatalog.mydatabase.myview’已过时;必须重新创建。”

解决方法

Athena 会在以下一种或多种情况下报告过时的视图:

  • 在视图查询中指定的表或数据库不存在。
  • 创建视图后,您尝试修改了表定义。
  • 在重新创建或更新引用表时,您尝试更新了引用表中的架构或元数据。

例如,如果您创建一个视图,然后在同一表中运行了 ALTER TABLE ADD COLUMNS 语句,则视图查询将失败并显示“视图已过时”错误。如果您运行 AWS Glue 爬网程序来更新表定义,也会出现视图过时错误。有关更多信息,请参阅视图注意事项

要防止“视图过时”错误,每次修改底层表或数据库时都需要重新创建视图。也可以通过添加 OR REPLACE clause in the CREATE VIEW 语句来替换视图。此子句允许您通过替换现有视图来更新该视图。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?