Схема «звезда»: как факты и измерения помогают устроить отчёт

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

Оранжевый центральный лоток соединён с четырьмя светлыми карточками с различными геометрическими деталями.

Сначала решите, что означает одна строка

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

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

Факты описывают события, измерения добавляют контекст

В руководстве Microsoft таблицы фактов хранят наблюдения или события, а измерения описывают связанные сущности. Для нашего магазина факт — продажа позиции. Измерениями могут быть товар, магазин и календарная дата. Они позволяют рассматривать одни и те же продажи в нужных разрезах: например, по категории товара или городу.

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

Почему нельзя смешивать чек и позицию

Разберём условные числа. В первом чеке две позиции стоимостью 1000 и 500 рублей, во втором — одна на 700 рублей. Для модели с одной строкой на позицию получатся три записи, а сумма продаж составит 2200 рублей. В модели с одной строкой на чек записей будет две, но общая сумма останется той же.

Ошибка возникает, если в обе строки первого чека положить его полную сумму — 1500 рублей. Вместе со вторым чеком отчёт насчитает 3700 рублей. Это уже не вопрос оформления. По правилу Kimball Group, гранулярность определяют до выбора фактов и измерений, а разные уровни не смешивают в одной таблице фактов.

Какие вопросы сможет задать читатель отчёта

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

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

Модель не выбирает правильные правила за команду

Для условного магазина предложим описать один чек и пройти его путь до отчёта. Какие записи появятся, где хранится стоимость каждой позиции, как выбирается описание товара? Затем повторим проверку для чека с несколькими позициями. Такой небольшой пример помогает обсуждать требования, но сам по себе не доказывает правильность всей рабочей загрузки.

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

Как связать модель с устройством системы

Логическое разделение фактов и измерений отличается от физического хранения файлов. Последнее объясняет статья о хранении по строкам и столбцам. Вопросы согласования всей системы рассматривает материал о работе архитектора данных. Эти темы дополняют выбор смысла одной строки.

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

Архитектор данных
Курс
Новинка
Архитектор данных

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

С нуля
Теория и практика
Диплом по окончании
12 990
₽/мес
Узнать подробнее

Источники

Читайте также

Обучить команду или нанять специалиста по данным: как выбрать
47

Обучить команду или нанять специалиста по данным: как выбрать

Как руководителю определить, какие навыки развивать внутри команды, когда нужна новая роль и почему обучение и найм часто дополняют друг друга.
Вертикальное и горизонтальное масштабирование данных: в чём разница
46

Вертикальное и горизонтальное масштабирование данных: в чём разница

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

Журнал изменений данных: как выяснить, кто и когда изменил набор

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

Занятия проходят
в Нова Дата СДО

Вебинары, практика и общение с преподавателем — в одном окне браузера.

Посмотреть интерфейс платформы
Календарь обучения в Нова Дата СДО
Курсы студента в Нова Дата СДО
Редактор кода для практики в Нова Дата СДО
Вебинары и расписание Ваши курсы Код в браузере
Нова Дата СДО — в реестре российского ПОРеестровая запись № 34931
Заявка отправлена
Отправим вам подборку курсов в течение 5 минут. С вами также свяжется наш специалист и даст карьерную консультацию.
Персональный промокод
На курс «Инженер по парсингу данных»
Введите код при оплате, чтобы применить скидку к программе.