Есть несколько интересных методов в связанных Вопросах!
Невозможно добавить ключ распространения в существующую таблицу. Вам необходимо создать новую таблицу, а затем скопировать данныев поперечнике.Это можно сделать с помощью INSERT INTO new-table SELECT * FROM old-table
.
Когда данные загружаются в таблицу Amazon Redshift, они ВСЕГДА учитывают ключ распределения, поскольку DISTKEY
определяет, в каком срезе хранятся данные.Используете ли вы COPY
(что является предпочтительным) или INSERT
, данные всегда будут распределяться в соответствии с DISTKEY
.
. SORTKEY
также будет использоваться при загрузке данных через COPY
, но существующие данные не будут пересортированы.Например, если у вас есть столбец данных, уже загруженный в алфавитном порядке, то вновь загруженные строки будут добавлены к end существующих данных.Эти новые данные будут отсортированы, но столбец как целом не будет отсортирован.Используйте команду VACUUM
для повторной сортировки всей таблицы.
По возможности следует использовать команду COPY
для загрузки данных в таблицу Redshift.Это позволяет Redshift загружать данные параллельно, используя все узлы.Постарайтесь минимизировать объем данных, загружаемых с помощью INSERT
- желательно загружать несколько строк с помощью этого метода.Старайтесь избегать INSERT
отдельных строк, что очень неэффективно в Redshift по сравнению с массовой загрузкой.