Redshift Sort Keys For Joins - PullRequest
       6

Redshift Sort Keys For Joins

0 голосов
/ 30 октября 2018

Я читал различные посты и до сих пор неясно. Со звездообразной схемой я бы подумал, что если я отправлю запрос из таблицы измерений, скажем, d_article, я получу набор SK (sk_article), которые используются для запроса / исследования основной таблицы фактов. Таким образом, имеет смысл установить ключи сортировки для полей, обычно используемых в предложении Where для этой таблицы.

Далее ... и вот что я не могу найти пример или ответ ... я должен включить sk_article в ключ сортировки в таблице фактов? Точнее, я должен создать чередующийся ключ сортировки со всеми различными SK, поскольку мы не всегда используем одни и те же ключи для присоединения к таблице фактов?

Я не видел ссылок на включение ключей сортировки для использования только в объединениях.

https://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-sort-key.html

Amazon Redshift Foreign Keys - сортировка или чередование ключей

1 Ответ

0 голосов
/ 30 октября 2018

Ключ сортировки Redshift

Ключи сортировки предназначены только для сортировки, а не для объединения. Может быть несколько столбцов, определенных как ключи сортировки. Данные, хранящиеся в таблице, можно отсортировать по этим столбцам. Оптимизатор запросов использует эту упорядоченную таблицу сортировки при определении оптимальных планов запросов.

Также, как прокомментировал Тони,

Ключи сортировки в первую очередь предназначены для оптимизации эффективности карт зон (что-то вроде индекса BRIN) и обеспечения сканирования с ограниченным диапазоном. Они не так уж полезны в большинстве таблиц измерений, потому что таблицы размеров обычно маленькие. Единственный раз, когда ключ сортировки может помочь с производительностью объединения, - это если вы все настроите для объединения слиянием - это обычно имеет смысл только для больших объединений таблиц фактов. Чередующиеся ключи - это особые ключи сортировки и не помогают при любых объединениях.

Каждый тип этих ключей имеет определенное назначение. Это может быть хорошим прочитанным для вас.

Для объединения таблиц фактов и измерений следует использовать ключ распределения.

Ключи распределения Redshift (DIST Keys)

Определяет, где данные хранятся в Redshift. Кластеры хранят данные в основном по вычислительным узлам. Производительность запросов снижается, когда на одном узле хранится большой объем данных. Здесь хорошо для вас.

Надеюсь, это ответит на ваш вопрос.

Я хорошо видео сеанс здесь, который может быть очень полезным для понимания SORT VS DIST Key.

...