Redshift中DISTSTYLE与压缩编码的关系

Posted

技术标签:

【中文标题】Redshift中DISTSTYLE与压缩编码的关系【英文标题】:Relation between DISTSTYLE and Compression encoding in Redshift 【发布时间】:2020-03-15 15:58:45 【问题描述】:

DISTSTYLE 和 Redshift 中的压缩编码之间有什么关系吗?每当我们使用压缩编码时,计算节点上的操作系统都会做额外的数据编码和解码工作;将 DISTSTYLE 设置为 ALL 你不认为每个节点都必须进行解码和编码工作吗?

非常感谢这里的任何概念性帮助。

【问题讨论】:

这不是您需要担心的问题,但是...在大多数情况下,压缩实际上使访问速度更快,因为 SSD(或 HDD,取决于实例类型)速度可能是瓶颈。压缩技术确保编码/解码速度很快,并且可能有芯片上的硬件来完成其中的一些工作。 【参考方案1】:

分布样式决定了哪个节点/切片将存储数据。这与压缩类型没有关系或影响。它只是说在哪里存储数据。

然而,压缩与 排序键 密切相关,它决定了数据存储的顺序。一些压缩方法使用与先前值的“偏移量”,甚至存储重复值的数量,这可以显着压缩数据(例如“重复此值 1000 次”而不是存储 1000 个值)。 p>

Amazon Redshift 中的压缩有两个好处:

存储空间更少(因此成本更低) 每次磁盘访问都可以检索更多数据

any 数据库最慢的操作是磁盘访问。因此,磁盘访问的任何减少都会加快操作速度。与额外的磁盘读取操作所需的时间相比,解压缩数据所需的时间很短。

第二个最“昂贵”的操作是在节点之间发送数据。虽然网络流量比磁盘访问快,但最好避免。

当使用DISTSTYLE ALL时,它只是意味着数据在每个节点上都是可用的,这样就避免了跨网络传输数据的需要。

【讨论】:

以上是关于Redshift中DISTSTYLE与压缩编码的关系的主要内容,如果未能解决你的问题,请参考以下文章

如何通过插入和更新为 Redshift 表规划 diststyle

在 Amazon Redshift 中使用 Diststyle ALL 的表应该有多小?

Redshift 副本从分析创建不同的压缩编码

Redshift COPY 自动压缩

将排序键和压缩用于带有 Redshift 的临时表

我们可以在 Amazon redshift 中使用 CTAS 创建表时使用压缩吗