Почему бы не использовать метку времени с чередованием Sortkey? - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь выяснить различные типы сортировочных клавиш в Amazon Redshift, и я столкнулся со странным предупреждением здесь , которое не объясняется:

Важно: Не используйте чередующийся ключ сортировки для столбцов с монотонно увеличивающимися атрибутами, такими как идентифицирующие столбцы, даты или временные метки.

И все же в их собственном примере Amazon использует чередующийся ключ в столбце даты с хорошей производительностью.

Итак, мой вопрос - каково объяснение этого предупреждения, и я должен относиться к нему серьезно?Точнее - есть ли проблема с использованием чередующегося ключа в столбце метки времени?

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Столбец даты (не отметка времени) в качестве чередующегося ключа сортировки имеет смысл, когда вы знаете, что в среднем X число строк обрабатывается каждый день, и вы собираетесь фильтровать по ним, если вы не собираетесь его использовать, тогда оставьтеэто из.Также примечание о вакууме - когда процесс VACUUM находится в процессе, ему нужно временное пространство, чтобы иметь возможность выполнить задачу, отсортировав, а затем объединив данные в куски.Отмена процесса VACUUM в середине полета приведет к тому, что дополнительные пробелы не будут возвращаться, поэтому, если по какой-либо причине в вашем кластере был отменен какой-либо Вакуум, это можно объяснить увеличением пространства.Смотрите ссылку https://docs.aws.amazon.com/redshift/latest/dg/r_VACUUM_command.html#r_VACUUM_usage_notes и пункт 3, последний пункт представляет особый интерес.В моем случае таблицы в конечном итоге росли очень быстро по сравнению с количеством вставленных строк, и пришлось создавать автоматическое создание таблицы с использованием глубокого копирования

0 голосов
/ 13 февраля 2019

С https://docs.aws.amazon.com/redshift/latest/dg/t_Sorting_data.html

При добавлении строк в отсортированную таблицу, которая уже содержит данные, несортированная область увеличивается, что существенно влияет на производительность.Эффект усиливается, когда таблица использует чередующуюся сортировку, особенно когда столбцы сортировки включают монотонно увеличивающиеся данные, такие как столбцы даты или отметки времени .

Ключевая точка в оригиналецитата заключается не в том, что эти данные являются датой или временной меткой, а в том, что они увеличиваются «монотонно», что в данном контексте, вероятно, означает последовательное увеличение, такое как метка времени события или число Id.

0 голосов
/ 11 февраля 2019

Я думаю, что это могло быть объяснено позже, когда они описывают проблемы с пылесосом / переиндексацией:

Когда таблицы загружаются изначально, Amazon Redshift анализирует распределение значений в столбцах ключа сортировки ииспользует эту информацию для оптимального чередования столбцов ключей сортировки.По мере роста таблицы распределение значений в столбцах ключей сортировки может изменяться или искажаться, , особенно в столбцах даты или отметки времени .Если перекос становится слишком большим, это может повлиять на производительность.

Так что, если это единственная причина, это просто означает, что у вас будет увеличено обслуживание индекса.

...