Data Apps Design
1.54K subscribers
143 photos
2 videos
41 files
231 links
В этом блоге я публикую свои выводы и мнения на работу в Data:

— Data Integration
— Database engines
— Data Modeling
— Business Intelligence
— Semantic Layer
— DataOps and DevOps
— Orchestrating jobs & DAGs
— Business Impact and Value
Download Telegram
Major improvements to my Analytics Engineering Lab on Github

🚀 Airbyte Data Pipelines Lab

– Configuring Data Pipelines with Airbyte
– Deploying Infrastructure as Code with Terraform and Yandex.Cloud
– Instant development with Github Codespaces
– Assignment checks with Github Actions

⚙️ What you will do:

– Configure Developer Environment: GitHub Codespaces or devcontainer
– Deploy Infrastructure with Terraform: VM with Airbyte installed, S3 Bucket, Clickhouse
– Configure Data Pipelines: Postgres Source, Clickhouse Destination, S3 Destination
– Test your Pipeline with dbt: locally and triggering automated testing with Github Actions

Open Lab on Github →

#airbyte #terraform #yc #lab #elt #data_integration

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
Что будет, если в dbt в FROM ссылаться на названия таблиц в СУБД (хардкод)?

Очень вероятно, что возникнет ошибка, при которой объект, на который ссылаются, еще не создан.

То есть, будет нарушен порядок создания моделей, он же граф зависимостей, он же DAG.

Вывод: всегда используйте ссылки на другие модели в виде {{ ref('my_model_name') }}, а также на источники в виде {{ source('db', 'table') }}.
👍9
Screenshot 2023-07-10 at 17.39.17.png
74 KB
Моделирование отчета для BI в виде сводной таблицы со сравнением периодов

Известно, что бизнес-пользователи: management, operations, marketing привыкли оперировать красивыми дашбордами и графиками в удобных BI-инструментах.

Предлагаю разобрать реальный практический кейс:
Вы получаете ТЗ в виде прототипа в gSheet с желаемым отчетом.

Ваши действия?

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚1
⚙️ Pivot Table for Period over Period analysis

1. Декомпозиция отчета

Практически, я вижу pivot-таблицу с несколькими уровнями вложенности по строкам и столбцам.
Это относительно легко сделать в Excel (gSheet), но относительно сложно в BI-инструментах.

Уточняю требования и непонятные моменты.

Q: Мне непонятна логика месяцев в столбцах. Они должны последовательно идти по возрастанию? В таблице 3 месяца, один из них за 2022. Какие периоды, на какую глубину и с чем хочется сранивать?

A: Текущий период сравнивается с: аналогичный период прошлого года, предыдущий месяц текущего года

2. Структура данных в СУБД (в моем случае это Clickhouse)

Для понимания, в СУБД (из запросов к которой строятся все отчеты Datalens) всё хранится в виде плоских двумерных таблиц.

Всё моделирование я делаю с помощью ряда шагов преобразований и промежуточных схем/таблиц с помощью dbt.
В результате - у меня одна денормализованная (широкая) витрина, запросами к которой можно посчитать любые интересующие метрики.

3. Возможности BI-инструмента (в моем случае это Datalens)

Цель: Хочу нарисовать сводную таблицу и делать Period over Period аналитику: месяц к месяцу, год к году, месяц к тому же месяцу год назад.

И здесь начинаются нюансы работы с конкретными BI.

Пока удалось нарисовать сводную таблицу как на картинке. Есть 3 вопроса:

1. Как в фильтре можно просто задать текущий и прошлый месяц без хардкода?

2. Как задать в фильтре текущий месяц и тот же месяц год назад?

3. Можно ли раскрашивать ячейки (числа) в зависимости от динамики изменения с прошлым периодом (больше - зеленый, меньше - красный)?

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
⚡️Online dbt meetup ⚡️

Салют! Всех, кто интересуется dbt и анализом данных приглашаю на митап.

Вас ждут 8 интересных докладов за 2 дня!
Я буду модератором-ведущим в первый день и расскажу об Оркестрации dbt jobs для Dev, Test, Prod без головной боли

→ Подробности о докладах и регистрация на митап

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍3❤‍🔥1
🚀 Ключевые метрики компании на дашборде - путь от hardcoded cube к live calculated measures

Сейчас финализирую работу по рефакторингу дашборда в Looker

🔸 WBR (Weekly Business Review) - самый главный дашборд компании

— WBR существует уже 3+ года и всё это время активно дорабатывался
— На дашборде 45+ метрик со сравнением динамики и целевых показателей
— 20K+ просмотров, 10+ аналитиков-разработчиков-контрибуторов, 50+ людей использующих дашборд

🔸 Зачем? dbt-модель WBR превратилась в неподдерживаемое полотно кода без намека на гибкость

— Огромный порог входа для того чтобы внести малейшие изменения или добавить график с новой метрикой
— Т.к. код монолит, то любая маленькая ошибка приводит к тому, что не подсчитаны все метрики
— Затратный процесс расчета модели (время + ресурсы)
— Хардкод в плане доступных измерений и фильтров (кроме них ничего нет)

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👍1
Before:
🔸 Что в результате? Красивый и гибкий подход Dashboard as Code

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

— Полностью избавился от слоя предварительной материализации (dbt model) = сверхбыстрый T2M
— Теперь подсчитываем метрики на лету из таблиц детального слоя = корректность отчетов
— Дашборд реализован на 100% в виде LookML кода и версионируется в git = надежность
— Изменения и редактирование элементов выполняется теперь за минуты = поддерживаемость

Моя работа заняла несколько месяцев, и еще кое-что остается.

🔥 Дайте реакций, если хотите подробную статью с деталями реализации, выводами и рекомендациями.

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38❤‍🔥4👍4
After:
3
👍1
Слайды моего доклада с [dbt meetup]:

🔸 Оркестрация dbt jobs для Dev, Test, Prod без головной боли

— Сформулируем требования
— Что нужно для запуска dbt jobs?
— Какие бывают Environments
— Критерии выбора решения для запусков
— Обзор решений: devcontainer, dbtCloud, Github Actions, Gitlab CI, Airflow / Prefect / Dagster, Argo Workflows
— Матрица оценок по критериям
— Выводы: что, в каких случаях и почему лучше использовать

Доступны гиперссылки и .gif-анимация.

Задавайте вопросы, если появятся.

#meetup

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤‍🔥2
😎 Уже более полугода использую Census App для задач reverse ETL

Сегодня получил письмо касательно интеграции синков данных с dbtCloud jobs и уже выполнил все рекомендации.

As part of working with dbt Labs to improve dbt Cloud triggers, we have been migrating to webhook-based integration which requires different dbt Cloud permissions.

Legacy dbt Cloud Triggers will be disabled in two weeks on August 14th, 2023.

To upgrade, the Service Token provided to Census requires at least the developer permission (for Enterprise) or Member permission (for Team) in order to configure new webhooks. You can then provide the new Service Token in your Organization Settings. For more information, see our documentation.

Хочется еще раз резюмировать опыт использования инструмента:

— 15+ sources = источников данных (все популярные движки DWH)
— 130+ destinations = приемников данных = операционных систем
— Моделирование наборов данных: SQL query, dbt models, Looker Looks
— Audience hub = Создание сегментов
— Автоматических маппинг атрибутов - очень удобно при использовании 10+ полей
— Data Sync: расписание, dbtCloud integration (после завершения dbt build), API calls, Sequence (DAGs)
— Если вы передаете до 50 атрибутов, то использование сервиса не будет стоить ничего!

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

#reverse_etl

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41