SQL + dbt = God Mode Data Modeling / Подходы к созданию витрины корпоративных метрик

Опубликовано: 15 Май 2026
на канале: DATA APPS DESIGN
1,936
like

На кейсе создания витрины корпоративных метрик рассмотрим:
— Элементы functional programming c dbt macros
— Интерактивный UX с dbt Power User + CLI
— Импорт и переиспользование кода с dbt packages
— Универсальный код и окружения с dbt adapters

Бизнес-задача: Дашборд для Weekly Business Review (WBR)

Требования к дашборду:
— Nesting: от верхнеуровневых метрик к детальным
— Набор измерений для Slice and Dice
— Формат графика для метрики
— Линии для Year over Year (abs + rel %)
— Визуализация целевых значений (targets)

— Решение «Hardcore Cube» 🗿
— Решение «Direct Runtime» 🦅
— Aggregate awareness (Looker) как оптимизация производительности
— Как отразилась смена СУБД с Amazon Redshift на Snowflake на решении?

Как всё это использовать у себя?
— Находите повторяющиеся паттерны и переиспользуйте код (DRY)
— Пишите универсальный код с dbt
— Не изобретайте велосипед - используйте packages
— Ищите баланс между материализацией и runtime queries
— Чем меньше кода, тем лучше

Data Apps Design: https://t.me/data_apps
Учиться со мной: https://forms.gle/uwETpSRA6ux7Gr1t7


Таймкоды:

00:40 — Артемий Козырь - обо мне
01:10 — Weekly Business Review
03:03 — Требования к дашборду WBR
08:45 — Решение #1 «Hardcore Cube» 🗿
13:25 — Решение #2 «Direct Runtime» 🦅
16:02 — Дашборд работает дико медленно и раздражает всех!
18:23 — Давайте ускорим это
22:03 — Решение «Godlike modeling» 👑
28:44 — Я поменял СУБД Amazon Redshift на Snowflake
29:37 — Выводы и итоги

33:15 — Вопрос: Чем решение отличается от стека Microsoft SSAS
34:50 — Вопрос: Почему бы не использовать HyperLogLog (HLL) Approximation для ускорения ответов
37:55 — Вопрос: Как подсчитать и сравнить стоимость решений, оптимизация затрат
39:52 — Вопрос: Кубы и dbt модель собираются incremental (инкрементально) или full refresh?
40:50 — Вопрос: Почему используется Looker в качестве BI? В чем плюсы? Есть ли альтернативы?
42:25 — Вопрос: Как построить инкрементальные расчеты и наполнение витрин с dbt?
43:44 — Вопрос: Почему со временем без рефакторинга кода производительность становится хуже?
46:25 — Вопрос: Как осуществляется оркестрация запусков? Использование dbtCloud