Снежинка - кластеризация - PullRequest
0 голосов
/ 23 апреля 2020

Каков наилучший подход для кластеризации таблиц снежинок

  1. Абсолютная кластеризация путем ручной перезагрузки таблиц с определенной частотой на основе порядка поиска
  2. Создание ключа кластера и включение автоматического повторного кластера но приостановить его большинство из них, запустить его только через определенные промежутки времени можно, посмотрев на отсканированные разделы столбца таблицы

Спасибо, Раджиб

Ответы [ 3 ]

0 голосов
/ 23 апреля 2020

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

Авто кластеризация похожа на управление фрагментацией жесткого диска. Потому что они оба представляют собой одну и ту же идею - размещать рядом данные, чтобы сделать чтение лучше. И так же, как и при дефрагментации диска, различные нагрузки / шаблоны использования делают необходимость кластеризации / дефрагментации более важной, а некоторые случаи использования конфликтуют с авто-кластеризацией.

Например, у нас есть несколько таблиц, которые записаны как сжатые. * как мы можем, и мы хотим, чтобы он был сгруппирован по шаблону, который на 90% выровнен по порядку вставки. Таким образом, автоматическая кластеризация не является дорогой для шаблона вставки. Но раз в месяц мы удаляем из этих таблиц причины GDPR / PII, а после обновления / удаления меняем 1/3 разделов. Таким образом, кажется, что полная перезапись таблицы с применением ORDER была бы излишней. Но из-за автоматической вставки скорости вставки (в нынешнем виде) она бьется часами и стоит в 5 раз дороже, чем полная перезапись таблицы.

Также у нас есть другие таблицы (информация об адресе), и таблица «довольно мала», поэтому полные таблицы сканируются очень часто, поэтому упорядочивать их в смысле автокластера не имеет смысла, но -создавать таблицу ежедневно, чтобы размер раздела был как можно меньшим, чтобы полное сканирование таблиц было самым быстрым из возможных. автоматическая кластеризация также позволяет оптимизировать микроразделы, что было бы полезно, но мы этого не делаем нужна таблица заказана, поэтому не работает кластеризация ..

0 голосов
/ 23 апреля 2020

Чтобы сократить погоню за ответами.

  1. Загрузите таблицы с отсортированным полем данных / времени - которое может быть использовано для извлечения данных - Вставка бизнес-даты вместо (ETL) дата / время. Это должно быть достаточно для большинства таблиц с точки зрения производительности извлечения данных.

  2. Вы можете выбрать повторную кластеризацию в зависимости от скорости операций DML в таблице

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

Всегда желательно идентифицировать шаблон доступа раньше, чем позже. Учитывая это, чтобы убедиться в достижении производительности извлечения данных - автоматическая кластеризация перестроит данные.

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

Ссылка здесь поможет вам принять обоснованное решение.

Надеюсь, это поможет!

0 голосов
/ 23 апреля 2020

Ваш лучший способ - создать исходную таблицу, отсортированную по ключу кластера, а затем включить автокластеризацию ... и затем позволить Snowflake обработать все для вас.

...