Семантический слой: где хранить общие правила показателей

Одинаковое название показателя не гарантирует одинакового расчёта. Объясняем общий слой определений, его отличие от таблицы и ограничения для отчётности.

Оранжевый куб на открытой книге рядом со светлыми карточками и прозрачными плитками.

Два отчёта могут по-разному понимать один термин

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

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

Определение становится общей частью обработки

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

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

Общий смысл шире одной сохранённой суммы

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

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

Слой определений не исправляет исходные сведения

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

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

Изменение определения требует понятного решения

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

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

С чего начать обсуждение архитектуры

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

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

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

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

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

Источники

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

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

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

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

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

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

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

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

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

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

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