Learning Platform
Глоссарий Troubleshooting
Урок 04.05 · 25 мин
Начальный
ServingBIReverse ETLFeature Store

Serving: куда уходят данные

Финальная стадия пайплайна — serving: данные доходят до потребителей. Это критическая точка: если на serving сломалось, вся работа DE не приносит ценности.

В этом уроке: пять каналов serving, главные инструменты и как DE с ними работает.


Пять главных каналов

Каналы serving
BI-инструменты
Ad-hoc SQL
ML Feature Store
Embedded Analytics
Reverse ETL

Канал 1: BI-инструменты

Главный канал для большинства компаний. Дашборды, отчёты, KPI.

BI-инструменты в 2026
Tableau
Looker
Power BI
Metabase
Apache Superset
Sigma / Mode

Что делает DE для BI

  • Готовит mart-таблицы — финальные модели в Gold-слое DWH.
  • Документирует — описывает, что значит каждая колонка.
  • Гарантирует SLA — дашборды должны обновляться до 9 утра, иначе бизнес недоволен.
  • Performance — дашборд не должен открываться 30 секунд.

Анти-паттерн: аналитик строит дашборд прямо на raw таблицах с сложным SQL. Когда DE меняет схему raw — дашборд ломается. Правильно — строить на stable mart таблицах, которые DE контролирует.


Канал 2: Ad-hoc SQL

Аналитики и DS пишут разовые SQL-запросы прямо в DWH. Через:

  • DBeaver / DataGrip — десктопные клиенты.
  • Snowflake UI / BigQuery Console — встроенные web-UI.
  • Hex / Mode / Deepnote — SQL + Python notebooks.
  • Jupyter — через snowflake-connector-python.

Что DE для этого делает:

  • Документирует таблицы (название, описание, owner).
  • Даёт права (GRANT SELECT ON ... TO analyst_role).
  • Следит, чтобы один тяжёлый ad-hoc запрос не положил DWH (cost controls, resource monitors).

Канал 3: ML Feature Store

Когда у компании серьёзный ML, простого «SELECT из DWH» не хватает:

  • ML-моделям нужны фичи в реальном времени (для inference).
  • Фичи должны быть переиспользуемы между моделями.
  • Должна быть point-in-time correctness (training-serving skew).

Эту проблему решает feature store:

Feature Store
DWH + Kafka
Feature Store (Feast, Tecton)
Offline (training)
Online (inference)
ML models

В маленьких командах feature store не нужен — хватает таблиц в DWH. В крупных (где десятки моделей) — must.


Канал 4: Embedded Analytics

«Дашборд внутри твоего продукта». Например:

  • Stripe Dashboard для мерчантов («твоя выручка за день»).
  • Shopify Analytics для магазинов.
  • B2B SaaS, который показывает клиентам их usage-данные.

Инструменты:

  • GoodData, Sisense, Domo — embedded BI коммерческие.
  • Cube.dev — open-source semantic layer для embedded.
  • Кастомные API — backend строит API поверх DWH.

DE-задача: построить быстрые витрины, на которых backend строит API. Обычно это денормализованные таблицы, оптимизированные под конкретные query patterns.

ClickHouse для embedded analytics: субсекундные запросы под конкурентную нагрузку

Канал 5: Reverse ETL

Идея: «возвращаем посчитанные данные обратно в SaaS-системы».

Reverse ETL
DWH (Snowflake)
Reverse ETL (Census / Hightouch)
Salesforce
Mailchimp / Customer.io
Intercom / Zendesk

Зачем это нужно:

В DWH собирается полная картина клиента: продукты, активность, поддержка. Но продакт-менеджеры и маркетологи работают в Salesforce / Mailchimp / Intercom. Без reverse ETL у них в SaaS — устаревшие данные.

С reverse ETL: рассчитал в DWH «топ-100 клиентов с риском churn» -> загрузил в Mailchimp -> запустил retention-кампанию.

Инструменты:

  • Census — лидер reverse ETL.
  • Hightouch — главный конкурент.
  • Polytomic, Grouparoo — другие.

В МDS-стеке reverse ETL становится таким же стандартом, как ingestion.


SLA и доверие

Главная некодная задача DE для serving — построить доверие:

Доверие к данным
Freshness (свежесть)
Accuracy (точность)
Documentation
Reliability
TIP

Без доверия твоя работа бессмысленна. Если бизнес не верит дашбордам, они скачивают данные в Excel и считают сами. Доверие зарабатывается месяцами (последовательная свежесть, корректные цифры, ответы на вопросы), теряется за день (один сломанный дашборд в важный момент).


Реальный пример

E-commerce, как все цепочки serving работают вместе:

DWH (Snowflake)
├── mart.daily_revenue              -> Looker dashboard (продакт)
├── mart.customer_360                -> Census -> Salesforce
├── mart.churn_features              -> Feast -> Online model
├── api.public_metrics_for_partners  -> Backend API -> embedded dashboard
└── (всем доступ через Snowflake UI для ad-hoc SQL)

Один и тот же DWH обслуживает 4 разных канала. DE отвечает за качество данных и SLA на каждом канале.


Распространённые ошибки

WARNING

Главные ошибки в serving:

  1. Дашборды на raw-таблицах. Аналитик пишет JOIN на 7 таблицах в Tableau — медленно, ломается при изменении схемы. Правильно: строить на mart-таблицах, которые DE контролирует.

  2. Нет SLA. «Дашборд обновляется когда-то». Бизнес не знает, когда верить цифрам. Заведи explicit SLA: «обновляется до 9:00 каждое утро».

  3. Reverse ETL без идемпотентности. Запушили в Salesforce, retry, дубликаты записей. Reverse ETL тоже нужны idempotency-ключи.

  4. Embedded analytics без cache. Каждый запрос клиента дёргает Snowflake -> Snowflake bill уходит в космос. Нужен слой кеширования.

  5. Документация «потом». Запустили дашборд, не задокументировали колонки. Через 3 месяца никто не помнит, что значит cohort_score. Документация сразу.


Попробуй сам

  1. Открой любой public BI-дашборд (например, на public.tableau.com). Подумай: какие mart-таблицы должны быть в DWH, чтобы этот дашборд работал? Какие колонки, какие агрегации?
  2. Прочти страницу Census или Hightouch (5 минут на сайте). Подумай: какие 3 use cases reverse ETL были бы полезны твоей компании или воображаемой? Запиши.
Проверка знанийKnowledge check
Почему правильно строить BI-дашборды на «mart»-слое DWH, а не напрямую на «raw» (или staging) таблицах?
ОтветAnswer
Mart-слой — это контракт между DE и потребителями данных. Он стабилен по форме (схема не меняется при изменении источника), оптимизирован под query patterns BI-инструмента (правильные индексы/кластеризация, денормализация), документирован и протестирован. Raw-таблицы содержат сырое отражение источника: схема может меняться при апдейтах source-системы (бизнес добавил поле в Salesforce — пайплайн пробросил, и дашборд сломался), названия колонок неудобные (cust_id вместо customer_id), нужны сложные JOIN'ы для получения готовой бизнес-метрики. Дашборды на raw создают сильную связанность между BI и источниками — изменения в любом источнике ломают дашборды. Mart-слой даёт абстракцию: за ним можно безопасно менять источники и логику, потребители видят стабильный интерфейс. Кроме того, mart обычно денормализован и предагрегирован — дашборд открывается за секунды, а не за минуты.

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 5. Какие пять главных каналов serving данных существуют в Modern Data Stack?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 5