【问题标题】:Amazon Redshift COMPOUND SORTKEY - does insertion order matter?Amazon Redshift COMPOUND SORTKEY - 广告订单重要吗?
【发布时间】:2020-04-26 04:54:54
【问题描述】:

假设我在 Redshift 中创建了一个空表,如下所示:

CREATE TABLE my_table (
   val_1 INT , 
   val_2 INT , 
   val_3 FLOAT
)
COMPOUND SORTKEY(val_1, val_2)
;

当我第一次填充表时(假设是一些查询的结果),是否应该以SORTKEY 的顺序插入记录,在下面的代码中使用ORDER BY

INSERT INTO my_table
SELECT val_1, val_2, val_3 FROM other_table
ORDER BY val_1, val_2

或者没有必要这样做;即SORTKEY 插入记录的排序是由 Redshift 本身物理处理的吗?谢谢。

【问题讨论】:

    标签: amazon-redshift


    【解决方案1】:

    假设INSERT INTO 的行为与通过COPY 命令加载的行为相同,则无需先对记录进行排序。根据AWS docs,为了将记录添加到表的排序区域,必须满足以下所有约束 - 在您的示例中,您有一个 2 列的 COMPOUND SORTKEY

    • 该表使用只有一个排序列的复合排序键。
    • 排序列不为空。
    • 表格 100% 已排序或为空。
    • 所有新行的排序顺序都高于现有行,包括标记为删除的行。在这种情况下,Amazon Redshift 使用排序键的前 8 个字节来确定排序顺序。

    【讨论】:

      猜你喜欢
      • 2010-10-27
      • 2014-07-23
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      相关资源
      最近更新 更多