【发布时间】:2016-03-17 02:15:05
【问题描述】:
有没有办法在原始表上添加/更改表列编码而不创建新表并将旧表中的所有内容选择到新表中?
【问题讨论】:
标签: amazon-web-services amazon-redshift
有没有办法在原始表上添加/更改表列编码而不创建新表并将旧表中的所有内容选择到新表中?
【问题讨论】:
标签: amazon-web-services amazon-redshift
不,不支持。
来自documentation,您拥有的选项:
来自相同的文档,
创建表后,您无法更改列的压缩编码。
【讨论】:
ALTER TABLE tablename ALTER COLUMN columnname ENCODE newencode。公告:aws.amazon.com/ru/about-aws/whats-new/2020/10/…
科坦是正确的。 AWS 确实提供了一个实用程序 https://github.com/awslabs/amazon-redshift-utils/tree/master/src/ColumnEncodingUtility,它可以为您处理它。
【讨论】:
您实际上不必使用新编码创建一个并行表。您可以通过添加具有所需压缩率的新列来更改现有表,使用旧列中的值更新新列,最后删除旧列。
【讨论】:
是的 - 自 2020 年 10 月 20 日起,这是一个受支持的选项,请参阅 AWS 文档:
ALTER TABLE table_name
{
| ALTER COLUMN column_name ENCODE new_encode_type
https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE.html
【讨论】: