Redshift COPY 自动压缩
Posted
技术标签:
【中文标题】Redshift COPY 自动压缩【英文标题】:Redshift COPY automatic compression 【发布时间】:2015-12-21 09:51:14 【问题描述】:我不清楚在 Redshift 中使用 COPY 命令时自动压缩是如何工作的。
文档说:
默认情况下,只要您对空目标表运行 COPY 命令并且所有表列都具有 RAW 编码或没有编码,COPY 命令就会应用自动压缩。
这是否意味着对于持续复制原始数据的主表,数据将仅在此表第一次发生 COPY 时被压缩,以后不再压缩?似乎我误解了一些没有意义的原因,它会以这种方式工作。
谢谢
【问题讨论】:
【参考方案1】:创建表时,基本上需要为每一列设置一个编码(压缩)类型。但是,正如您从 AWS 文档中引用的那样,有一个例外,当数据被复制到空表中时,Redshift 会自动分析并设置 所有列的最佳编码以及复制的数据。然后后续的数据会按照设置的编码进行压缩。
因此,您的问题的答案是“否”。通过任一方式设置编码(压缩)后,后续项目将被压缩。
【讨论】:
【参考方案2】:我确认正志的回答。但请注意:
自动压缩分析需要加载数据中有足够的行(每个切片至少 > 100,000 行)才能进行采样。
如果您对小批量运行 COPY,您的表将设置为无编码。所有后续的 COPY 调用都不会改变这一点。您可以稍后通过运行表的深层副本来解决此问题。
【讨论】:
以上是关于Redshift COPY 自动压缩的主要内容,如果未能解决你的问题,请参考以下文章