如何删除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
전문가
질문됨 6달 전22회 조회
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
전문가
답변함 6달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인