如何更改redshift列编码?

时间:2015-12-11 08:18:08

标签: amazon-web-services amazon-redshift

有没有办法在原始表上添加/更改表列编码而不创建新表并从旧表中选择所有内容到新表中?

4 个答案:

答案 0 :(得分:8)

不,这不受支持。

documentation,您拥有的选项:

  • 在创建表格时手动将压缩类型或编码应用于表格中的列
  • 使用COPY命令自动分析和应用压缩(在空表上)
  • 使用ALTER TABLE命令
  • 将列添加到表中时指定列的编码

来自相同的文档,

  

创建表后,无法更改列的压缩编码。

答案 1 :(得分:7)

Ketan是对的。 AWS确实提供了一个实用程序https://github.com/awslabs/amazon-redshift-utils/tree/master/src/ColumnEncodingUtility,它可以为您处理它。

答案 2 :(得分:1)

你不喜欢'真的要用新编码创建一个并行表。您可以通过添加具有所需压缩的新列来更改现有表,使用旧列中的值更新新列,最后删除旧列。

答案 3 :(得分:1)

是的 - 从 2020 年 10 月 20 日起,这是一个受支持的选项,请参阅 AWS 文档:

ALTER TABLE table_name 
{
| ALTER COLUMN column_name ENCODE new_encode_type 

https://aws.amazon.com/about-aws/whats-new/2020/10/amazon-redshift-supports-modifying-column-comprression-encodings-to-optimize-storage-utilization-query-performance/

https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE.html