Что такое звездообразная схема в моделировании хранилища данных?

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

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

  • ???? Основная конструкция: Центральная таблица фактов напрямую связана с денормализованными таблицами измерений, образуя звездообразную структуру, которая определяет схему.
  • 📊 Таблицы фактов: В таблицах фактов хранятся такие показатели, как количество проданных единиц и выручка, а также внешние ключи, которые связывают их со всеми окружающими измерениями.
  • 🇧🇷 Таблицы размеров: Таблицы измерений содержат описательные атрибуты, такие как продукт, дилер, филиал и дата, которые позволяют аналитикам сегментировать и фильтровать данные.
  • Производительность запроса: Денормализованные измерения означают меньшее количество объединений, поэтому звездообразная схема обеспечивает простой SQL-запрос и быструю обработку больших наборов данных.
  • ❄️ Звезда против Снежинки: Звездная схема хранит каждое измерение в одной таблице, тогда как снежинковая схема нормализует измерения, разделяя их на связанные таблицы подразмерений.
  • 🇧🇷 Этапы проектирования: Построение звездообразной схемы следует методу Кимбалла: выберите бизнес-процесс, задайте детализацию, выберите измерения, а затем определите факты.
  • 🧊 OLAP и BI: Звездные схемы используются для обработки данных в OLAP-кубах и широко поддерживаются инструментами бизнес-аналитики, хотя интенсивная денормализация ослабляет целостность данных.

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

Что такое звездообразная схема?

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

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

Что такое многомерная схема?

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

Типы схем хранилищ данных: Существует три основных типа многомерных схем, и каждый из них имеет свои преимущества.

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

Поскольку схема «снежинка» напрямую основана на схеме «звезда», полезно сравнить две модели, прежде чем переходить к детальному примеру схемы «звезда».

Звездная схема против Снежной схемы

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

  • Конструкция: Звездная схема плоская и простая; снежная схема разветвляет измерения на подизмерения.
  • Скорость выполнения запросов: Звездная схема требует меньшего количества соединений, поэтому запросы обычно выполняются быстрее, а SQL-код остается проще.
  • Хранение: Схемы Snowflake устраняют избыточность, поэтому занимают меньше места, но усложняют проектирование.
  • Целостность данных: Нормализованные размерности типа «снежинка» обеспечивают лучшую целостность, тогда как денормализованные размерности типа «звезда» способствуют повышению производительности.
  • Простота использования: Звездная схема проще для понимания аналитиками и быстрее в обслуживании, в то время как снежинка требует более тщательного проектирования.

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

Пример звездообразной схемы

В приведенном ниже примере звездообразной схемы таблица фактов находится в центре и содержит ключи ко всем таблицам измерений, таким как Dealer_ID, Model_ID, Date_ID, Product_ID и Branch_ID, а также измеримые атрибуты, такие как количество проданных единиц и выручка.

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

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

Таблицы фактов

В звездообразной схеме таблица фактов содержит факты и связана с измерениями. Таблица фактов содержит два типа столбцов:

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

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

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

Таблицы размеров

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

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

Как разработать звездообразную схему

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

  1. Определите бизнес-процесс: Выберите вид деятельности, который хотите проанализировать, например, продажи, отгрузка.pingили инвентаризация. Это решение определяет, что будет измерять таблица фактов.
  2. Заявите о сорте зерна: Определите уровень детализации каждой строки данных, например, одна строка на каждую позицию, на каждую транзакцию или на каждый день. Четкая детализация обеспечивает согласованность модели.
  3. Укажите размеры: Укажите необходимый контекст для анализа данных, например, продукт, клиент, дилер, филиал и дата. Каждый из этих параметров становится таблицей измерений с атрибутами.
  4. Определите факты: Определите числовые показатели, которые хочет использовать компания. track, например, количество проданных единиц, выручка или затраты, и поместите их в центральную таблицу фактов.
  5. Постройте звезду: Свяжите таблицу фактов с каждым измерением с помощью внешних ключей,ping Размеры денормализованы таким образом, что диаграмма образует единую центральную таблицу фактов, окруженную ее размерами.

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

Характеристики звездообразной схемы

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

Преимущества звездообразной схемы

Звездчатая схема обладает рядом преимуществ, что делает ее популярной отправной точкой для проектирования хранилищ данных:

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

Недостатки звездообразной схемы

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

Когда использовать звездообразную схему

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

Типичные ситуации, когда звездообразная схема хорошо подходит, включают в себя:

  • Витрины данных: ведомственный витрины данных Благодаря понятной структуре, книга выигрывает от простых и хорошо известных взаимосвязей.
  • Панели мониторинга бизнес-аналитики: Бизнес-аналитика Инструменты четко соответствуют звездообразным схемам, поэтому отчеты и визуализации создаются быстро.
  • OLAP-кубы: Звездные схемы являются естественным источником для OLAP-кубов, агрегирования и анализа данных методом среза и разделения.

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

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

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

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

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

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

Суррогатный ключ — это сгенерированный системой идентификатор, обычно целое число, используемый в качестве первичного ключа таблицы измерений вместо бизнес-ключа. Он обеспечивает быстрое выполнение соединений, остается стабильным при изменении исходных ключей и поддерживает tracКороль исторических изменений в измерениях.

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

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

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

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