AWS Athena 视图不会丢失

AWS Athena View Will not Drop

我正在尝试从 Athena 中删除一个视图并继续遇到此错误。

com.facebook.presto.v217.spi.PrestoException: Row type must have at least one parameter (Service: null; Status Code: 0; Error Code: null; Request ID: null; Proxy: null)

视图本身运行 returns 正常,但 DROP VIEW 命令产生错误。另外,我尝试用不同的查询覆盖视图,但仍然出现错误。

您可以尝试直接从 Glue 数据目录(这是 Athena 存储它的地方)中删除视图对象。您可以通过导航到 Glue 控制台中的 table 或通过 运行 此命令来执行此操作:

$ aws glue delete-table \
  --region THE_REGION \
  --database-name THE_DATABASE \
  --name THE_NAME_OF_THE_VIEW

重新创建了问题,Theo 上面的回答也解决了它。 我采用了一种可能不会被认为是最佳实践的不同方法,但我只是删除了数据库并重新创建了它的内容而没有出现错误的视图。确保您有视图查询 on-hand 并且能够轻松地重新创建表,因为下面的命令会删除它们。

DROP DATABASE {name} CASCADE 这会删除数据库及其所有内容,因为它是 non-empty。然后,只需重新创建数据库并重新填充视图和表。

CREATE DATABASE {name}

再一次,这会删除所有内容,所以要小心。