Dist和Sort键Redshift

Fir*_*ame 0 amazon-web-services amazon-redshift

我正在尝试为redshift中的某些表添加dist和sort键.

我注意到在添加表的大小之前是0.50,并且在添加之后它增加到0.51或0.52.这可能吗 ?具有dist和sort键的整个目的是减小表的大小并有助于提高读/写性能.

Joh*_*ein 8

这不是拥有DISTKEY和的目的SORTKEY.

要减小表的存储大小,请使用压缩.

所述DISTKEY用于切片之间分发数据.通过在同一切片上共同定位信息,查询可以更快地运行.例如,如果您有这些表:

  • customer 表,DISTKEY = customer_id
  • invoices 表,DISTKEY = customer_id

......然后这些表格将以相同的方式分发.两个表中给定给定的所有记录都customer_id将位于同一切片上,从而避免了在切片之间传输数据的需要.DISTKEY应该是主要用于JOINS的列.

SORTKEY用于在磁盘上的数据进行排序,为受益区地图.磁盘上的每个存储块大小为1MB,并且只包含一个表中一列的数据.对该列的数据进行排序,然后存储在多个块中.与每个块关联的区域映射标识该块中存储的最小值最大值.然后,当使用WHERE语句运行查询时,Amazon Redshift只需要读取包含所需数据范围的块.通过跳过WHERE子句中不包含数据的块,Redshift可以更快地运行查询.

以上都可以一起工作.例如,压缩数据需要更少的块,这也允许Redshift根据区域映射跳过更多数据.要从查询中获得最佳性能,请同时使用DISTKEY,SORTKEY和压缩.

(通常建议不要压缩SORTKEY列,因为它会导致从一个块加载太多行.)

另请参阅:Amazon Redshift的十大性能调优技术