如何删除RedShift AutoMV?

0

【以下的问题经过翻译处理】 我想改变一个表的定义,但它被一张由RedShift自动管理的Materialized View依赖,而不是由我们管理。所以尝试使用下面的命令更改表的列类型会出错:

ALTER TABLE my_table
    ALTER COLUMN my_column TYPE VARCHAR(100);

错误信息为:

[0A000] ERROR: cannot alter type of a column used by a materialized view

因此,我尝试删除这个Materialized View,使用下面的命令:

DROP MATERIALIZED VIEW pg_automv.auto_mv_53022635;

然而会提示一个权限错误:

[42501] ERROR: permission denied for schema pg_automv

这里有什么解决方法呢?

profile picture
专家
已提问 5 个月前13 查看次数
1 回答
0

【以下的回答经过翻译处理】 错误Amazon 500310:无效操作:无法更改由物化视图使用的列的类型。

当前解决方法是禁用auto_mv参数并重新启动集群。这将删除所有现有的自动物化视图,除非您将参数组重置为其默认值,否则不会创建任何新的。

根据文档[1],AutoMV功能是完全由系统管理的。因此,与手动材料化视图不同,AutoMVs对用户不可见,无法直接查询。它们也不会出现在任何系统表中,例如stv_mv_info或svl_mv_refresh_status。最后,如果工作负载已经很长时间没有使用AutoMV,则会自动删除并释放存储空间。

话虽如此,手动查找所有AutoMV及其依赖性并最终删除它们是不可能的。

可以通过将Redshift集群参数组“auto_mv”参数更新为“false”来关闭Redshift AutoMV功能。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则