发布于: Oct 20, 2020

Amazon Redshift 现在允许用户通过单个语句来修改现有列的压缩编码。借助此新功能,用户可以更轻松地在 Amazon Redshift 中保持最优压缩编码,从而实现高性能并降低对存储的消耗。  

压缩编码指定了在向表中添加行时,将向列中的数据值应用的压缩类型。选对编码可以减少列的存储消耗,同时提高访问该列的查询的性能。您可以在创建表时使用 CREATE TABLE 或 ALTER TABLE 语句来指定列的压缩编码。如果未指定压缩编码,则 Amazon Redshift 会根据表数据自动分配默认的压缩编码。 

此功能发布后,用户可以更轻松地享受 Amazon Redshift 压缩技术的优势,例如 AZ64 这种新的压缩编码消耗的存储比 ZSTD 低 5-10%,可将查询的运行速度提高 70%。以前,如果客户希望利用 AZ64 等新的编码算法,则需要重新创建整个表。由于 Redshift 建议定义为排序键的列不应压缩,以前,如果客户已将排序键应用到现有的表,则需要重新创建整个表。新增修改列压缩编码的功能后,此过程变得更加快速、更加简单,不会影响用户对表的访问。 

使用新的 ALTER TABLE <tbl> ALTER COLUMN <col> ENCODE <enc> 命令,用户可以动态更改 Redshift 的表压缩编码。Redshift 将负责在后台调整数据压缩,同时表仍然可以供用户查询。用户可以根据需要多次修改给定表的列编码,并且能同时更改多个表的编码。 

有关 ALTER TABLE ENCODING 的更多信息,请参阅文档

Redshift 1.0.19506 及更高版本提供此功能。请参阅 AWS 区域表,了解 Amazon Redshift 的可用情况。