Схема «снежинка» в модели хранилища данных

⚡ Умное резюме

Схема «снежинка» в моделировании хранилища данных организует нормализованные таблицы измерений, которые ответвляются от центральной таблицы фактов, напоминая снежинку. Она расширяет звездообразную схему, уменьшает избыточность данных и организует иерархии между несколькими связанными таблицами поиска.

  • 🧩 Основная конструкция: Центральная таблица фактов связана с таблицами измерений, которые нормализуются и преобразуются в дополнительные таблицы подизмерений и справочные таблицы.
  • ❄️ Нормализация: Разделение каждого измерения на связанные таблицы устраняет повторяющиеся атрибуты и приближает иерархии к третьей нормальной форме.
  • ???? Связь со звёздной схемой: Схема «снежинка» расширяет схему «звезда» за счет нормализации ее плоских, денормализованных таблиц измерений.
  • 💾 Преимущества хранения: Уменьшенные по размеру нормализованные таблицы поиска снижают нагрузку на диск и исключают избыточные данные, что упрощает обслуживание.
  • 🔗 Компромисс при запросе: Большее количество таблиц означает больше объединений (JOIN), что может замедлить выполнение запросов и усложнить составление отчетов.
  • 🧭 Когда использовать: Выбирайте его для больших объемов данных с глубокой иерархией, где экономия места и целостность данных имеют первостепенное значение.
  • 🪐 Связанные схемы: Модели галактик и звездных скоплений основаны на концепциях звезд и снежинок и предназначены для создания более сложных моделей.

Схема Snowflake в хранилище данных с нормализованными таблицами измерений, ответвляющимися от центральной таблицы фактов.

Что такое схема снежинки?

A Схема снежинки Хранилище данных представляет собой логическое расположение таблиц в многомерной базе данных, Диаграмма «сущность-связь» (ER-диаграмма) По форме напоминает снежинку. Это габаритная модель в которой центральная таблица фактов связана с таблицами измерений, а эти таблицы измерений, в свою очередь, подразделяются на связанные таблицы подразмерений.

Схема «снежинка» — это расширение схемы «звезда». В то время как схема «звезда» хранит каждое измерение в одной плоской таблице, схема «снежинка» нормализует эти измерения, разделяя повторяющиеся группы данных на дополнительные справочные таблицы. Эта нормализация устраняет избыточность и создает разветвленную иерархическую структуру, которая и дала схеме ее название.

Пример схемы снежинки

В приведенном ниже примере схемы «снежинка» таблица фактов «Продажи» находится в центре, окруженная измерениями, такими как «Продукт», «Дата» и «Магазин». Вместо хранения всех атрибутов в одной таблице измерений, географическая информация нормализована, так что страна перемещена в отдельную таблицу.

Пример схемы «снежинка» с центральной таблицей фактов и нормализованной таблицей измерений «Страна».
Пример схемы снежинки

Здесь измерение «Магазин» ссылается на таблицу «Город», таблица «Город» ссылается на таблицу «Штат», а таблица «Штат» ссылается на таблицу «Страна». Каждое значение хранится только один раз и связано внешним ключом, поэтому название страны никогда не повторяется в миллионах строк. Именно эта многоуровневая нормализация отличает схему «снежинка» от плоской звездообразной схемы.

Характеристики схемы «снежинка»

Схема «снежинка» обладает несколькими определяющими характеристиками:

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

Как разработать схему Snowflake

Разработка схемы «снежинка» начинается так же, как и любой многомерной модели, а затем добавляется этап нормализации. Цель состоит в том, чтобы определить бизнес-процесс, который вы хотите проанализировать, сначала смоделировать его в виде звездообразной схемы, а затем нормализовать измерения, содержащие глубокие иерархии. Выполните следующие шаги:

  1. Определите бизнес-процесс и его структуру. Определите, что представляет собой отдельная строка таблицы фактов, например, одна транзакция продажи, и определите числовые показатели или факты, по которым вам необходимо составить отчет.
  2. Создайте центральную таблицу фактов. Сложите числовые показатели вместе с внешними ключами, указывающими на каждое измерение; вместе эти внешние ключи обычно образуют составной первичный ключ.
  3. Определите таблицы измерений. Создайте отдельную таблицу для каждого описательного измерения, например, «Продукт», «Клиент», «Дата» и «Магазин», и назначьте каждой из них суррогатный первичный ключ.
  4. Нормализуйте иерархии. Разделите все измерения, содержащие повторяющиеся атрибуты, на таблицы подизмерений, например, переместив «Категорию» из измерения «Продукт» или «Город, штат и страна» из измерения «Магазин».
  5. Свяжите таблицы с помощью внешних ключей. Свяжите каждое подизмерение с родительской таблицей таким образом, чтобы ветви образовывали четкие иерархии «один ко многим», напоминающие снежинку.
  6. Проверяйте и тестируйте с помощью запросов. Выполните показательные запросы для формирования отчетов, чтобы убедиться, что объединения возвращают корректные результаты и что общая производительность остается приемлемой.

Поскольку данная схема нормализует данные в соответствии с третьей нормальной формой, необходимо четко задокументировать пути объединения, чтобы аналитики понимали, как перемещаться по каждой ветви. После определения структуры стоит взвесить преимущества схемы и ее недостатки.

Преимущества схемы Snowflake

Схема Snowflake предлагает ряд преимуществ:

  • Главное преимущество заключается в сокращении объема дискового пространства, поскольку объединение меньших по размеру нормализованных таблиц поиска позволяет избежать дублирования данных измерений.
  • Это обеспечивает большую масштабируемость во взаимосвязях между компонентами и уровнями измерений.
  • Это устраняет избыточность, что повышает целостность данных и упрощает поддержку модели.
  • Описательный атрибут обновляется только в одном месте, что снижает риск возникновения несогласованных данных.

Недостатки схемы «Снежинка»

При разработке этой конструкции также необходимо учитывать ряд компромиссов:

  • Нормализованная структура увеличивает объем работ, необходимых для управления множеством связанных таблиц.
  • Сложные запросы, включающие множество соединений, могут быть трудны для написания и понимания.
  • Большее количество таблиц означает больше соединений, что увеличивает время выполнения запроса.
  • Для бизнес-пользователей модель ветвления часто оказывается сложнее в использовании, чем простая звездообразная схема.

Схема «Снежинка» против схемы «Звезда»

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

АспектСхема звездыСхема снежинки
Таблицы размеровДенормализованный режим, одна таблица на каждое измерение.Нормализовано в таблицы субразмерностей
ПамятьЗанимает больше места из-за избыточности.Занимает меньше места, не имеет избыточности
Производительность запросаБыстрее, меньше соединенийМедленнее, больше подключений
Сложность запросаПросто написатьБолее сложный
лучше всего подходит дляБыстрая отчетность и бизнес-аналитикаБольшие, иерархические измерения

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

Когда использовать схему Snowflake?

Схема «снежинка» не всегда является оптимальным выбором, поэтому важно адаптировать дизайн к рабочей нагрузке и потребностям в отчетности. Она, как правило, лучше всего работает в следующих ситуациях:

  • Размеры очень велики и содержат множество повторяющихся атрибутов, которые при денормализации приводят к нерациональному использованию пространства для хранения.
  • Измерения имеют глубокие, четко определенные иерархии, такие как регион, страна, штат и город, которые естественным образом отображаются в отдельных таблицах.
  • Для проекта целостность и согласованность данных важнее, чем скорость выполнения запросов.
  • Затраты на хранение данных вызывают серьезную обеспокоенность, и экономия на дисковом пространстве при работе с огромными таблицами измерений является существенной.
  • Модель передает данные OLAP инструменты, позволяющие эффективно перемещаться по нормализованным иерархиям.

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

Что такое схема галактики?

A Схема галактики Содержит две или более таблиц фактов, которые используют общие таблицы измерений. Также называется схемой «созвездия фактов», а поскольку её можно рассматривать как совокупность звёзд, она получила название «галактическая схема».

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

Как видно из приведенного выше примера, здесь представлены две таблицы фактов:

  1. Выручка
  2. Продукт

В схеме галактики измерения, общие для таблиц фактов, называются согласованными измерениями.

Характеристики схемы галактики

Схема галактики обладает следующими характеристиками:

  • В зависимости от различных уровней иерархии измерения подразделяются на отдельные категории.
  • Например, если география имеет четыре уровня иерархии — регион, страна, штат и город — то схема галактики должна иметь четыре измерения.
  • Такую схему можно построить, разделив одну звездообразную схему на несколько других звездообразных схем.
  • Размеры в этой схеме велики и должны быть построены в соответствии с уровнями иерархии.
  • Данная схема полезна для агрегирования таблиц фактов с целью улучшения анализа и понимания.

Что такое звезда Cluster Схема?

Схема «снежинка» содержит полностью развернутые иерархии, что может усложнить структуру и потребовать дополнительных объединений. Схема «звезда», напротив, содержит полностью свернутые иерархии, что может привести к избыточности. Наилучшим решением часто является баланс между этими двумя типами схем, известный как схема «звезда». Cluster Схема.

Пример схемы звездного скопления, которая уравновешивает звездный и снежиночный дизайны.
Пример звезды Cluster Схема

Перекрытиеping Измерения отображаются в виде разветвлений в иерархиях. Разветвление происходит, когда сущность выступает в качестве родительской в ​​двух разных иерархиях измерений. Эти разветвленные сущности затем идентифицируются как классификации с отношениями «один ко многим», что ограничивает количество дополнительных таблиц, создаваемых в процессе проектирования.

Часто задаваемые вопросы (FAQ)

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

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

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

Вспомогательная таблица, иногда называемая дополнительной таблицей, представляет собой нормализованную таблицу, которая ответвляется от основной таблицы. Например, таблица «Продукт» может быть связана с отдельной таблицей «Категория». Эти дополнительные таблицы создают характерную для «снежинки» многоуровневую иерархию.

Да. Многие склады сочетают оба подхода, стандартизируя только те большие габариты, которые от этого выигрывают, и сохраняя при этом...ping Меньшие размеры, плоская структура. Этот гибрид, иногда называемый схемой звездного кластера, уравновешивает скорость запросов звездной схемы с экономией места, характерной для схемы «снежинка».

Да. Схема «снежинка» обеспечивает подачу данных. OLAP Системы хорошо работают, потому что их нормализованные иерархии четко соответствуют уровням детализации, таким как страна, штат и город. Однако дополнительные соединения могут замедлить обработку куба, поэтому в задачах OLAP с большим количеством запросов иногда предпочтительнее использовать звездообразную схему.

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

Да. ChatGPT и Второй пилот GitHub Можно создавать запросы CREATE TABLE и запросы на объединение таблиц для схемы Snowflake, используя короткую подсказку. Всегда проверяйте сгенерированные ключи, типы данных и связи перед запуском в рабочей среде.

Подведем итог этой публикации следующим образом: