AWS Redshift柱状存储与分发风格



我一直在查看AWS文档,似乎无法理解分发风格是如何工作的,以及数据是如何存储在Redshift上的。我知道什么是柱状存储数据库,但当我在Redshift上阅读有关分发风格的文档时,我对数据如何存储在节点上感到困惑。分布样式表示为按行将新加载的数据分布到计算节点的切片。

例如,EVEN分发样式定义为:

均匀分布

引线节点将行分布在循环方式,不考虑任何特定值柱当表没有参与联接或在KEY之间没有明确选择时分布和ALL分布。EVEN分布是默认的分布样式。

那么,如果数据是按行分布的,那么数据究竟是如何存储到列式存储器中的呢。数据分发到计算节点后,列式存储是否会产生影响?

以下是AWS文档的链接,讨论了列式存储和分发样式:

  • 列式存储
  • 分布样式

每个Amazon Redshift集群都有多个节点。每个节点都被划分为切片,并分配了CPU和磁盘存储。

表中的每一列都是单独存储的,因此具有3列的表每个切片至少需要3个。这就是Redshift列式的原因——每一列都是单独存储的。

每个块的大小1 MB,并且是独立压缩的。

请参阅:为什么我的AmazonRedshift集群中的表消耗的磁盘存储空间比预期的要多?

分发密钥确定哪些行存储在哪些切片上。请记住,对于表中的每一列,每个切片都有自己的存储空间,但行分布在切片之间。(除了ALL的分布,它将每一行放入每个节点。)

在切片上特定列的存储器中,数据根据排序键进行排序。

最新更新