如何解决 Athena 中的“View is stale; it must be re-created(视图已过时;必须重新创建)”错误?

1 分钟阅读
0

当我在 Amazon Athena 中运行视图查询时,我收到了与以下类似的“stale view(视图过时)”错误消息:“SYNTAX_ERROR: line 1:15: View 'awsdatacatalog.mydatabase.myview' is stale; it must be re-created.(SYNTAX_ERROR:行 1:15:视图‘awsdatacatalog.mydatabase.myview’已过时;必须重新创建。)”

解决方法

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

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

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

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


相关信息

使用视图

相关视频

AWS 官方
AWS 官方已更新 1 年前