как данные будут распределяться при использовании dist ключа для столбца в красном смещении - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в красном смещении. Я не понимаю, какой столбец подойдет для установки ключа распределения, чтобы повысить производительность запросов. Как найти лучшую колонку? и как данные будут распределены по узлам, используя dist key?

1 Ответ

0 голосов
/ 04 июля 2018

Очень широкий вопрос, трудно дать краткий ответ. В любом случае, позвольте мне попытаться подвести итог здесь, в Redshift есть два типа ключей, distkey и sortkey. distkey - distkey таблицы - это столбец, по которому она распределяется по каждому узлу. Строки с одинаковым значением в этом столбце гарантированно находятся на одном узле.

sortkey - sortkey таблицы - это столбец, по которому она сортируется в каждом узле. Это должно применяться к столбцам, которые вы обычно делаете order by.

Позволяет сосредоточиться на distkey здесь.

Ключ распространения может быть двух типов: «Четный» или «Все». Ключи распределения используются для достижения следующего.

  • Распределение данных равномерно для параллельной обработки
  • Минимизация перемещения данных

Следует использовать стиль распространения «Все» - иметь медленно изменяющиеся данные, разумный размер (т. Е. Несколько миллионов, но не сотни миллионов строк), отсутствующий общий ключ распределения для частых объединений. «Четный» стиль распространения должен использоваться для таблиц, которые не часто объединяются или агрегируются, а также для больших таблиц без приемлемых ключей-кандидатов.

Вот несколько хороших материалов для чтения. https://www.slideshare.net/AmazonWebServices/deep-dive-on-amazon-redshift-64919704 https://www.youtube.com/watch?v=iuQgZDs-W7A https://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-best-dist-key.html https://docs.aws.amazon.com/redshift/latest/dg/c_Distribution_examples.html

Надеюсь, это даст вам возможность продвинуться вперед.

...