【问题标题】:Dist and Sort Keys RedshiftDist 和 Sort 键 Redshift
【发布时间】:2016-11-15 03:26:30
【问题描述】:

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

我注意到在添加之前表格的大小是 0.50,添加之后会增加到 0.51 或 0.52。这可能吗 ?使用 dist 和 sort 键的全部目的是减小表的大小并帮助提高读/写性能。

【问题讨论】:

    标签: amazon-web-services amazon-redshift


    【解决方案1】:

    这不是拥有DISTKEYSORTKEY 的目的。

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

    DISTKEY 用于在切片之间分配数据。通过将信息放在同一片上,查询可以更快地运行。例如,如果您有这些表:

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

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

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

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

    (通常建议不要压缩 SORTKEY 列,因为这会导致从单个块中加载太多行。)

    另请参阅:Top 10 Performance Tuning Techniques for Amazon Redshift

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多