Amazon Redshift COMPOUND SORTKEY - имеет ли значение порядок вставки? - PullRequest
1 голос
/ 08 января 2020

Допустим, я создал пустую таблицу в 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? Thx.

1 Ответ

2 голосов
/ 08 января 2020

При условии, что для INSERT INTO действует то же поведение, что и при загрузке с помощью команды COPY, нет необходимости сначала упорядочивать записи. В соответствии с AWS документами все следующие ограничения должны быть выполнены для добавления записей в отсортированную область таблицы - в вашем примере у вас есть COMPOUND SORTKEY из 2 столбцов:

  • В таблице используется составной ключ сортировки только с одним столбцом сортировки.
  • Столбец сортировки НЕ НУЛЕЙ.
  • Таблица отсортирована на 100 процентов или пуста.
  • Все новые строки имеют более высокий порядок сортировки, чем существующие, включая строки, помеченные для удаления. В этом случае Amazon Redshift использует первые восемь байтов ключа сортировки для определения порядка сортировки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...