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
Аналитика ключевых метрик компании: dbt Metrics / Cube.js / LookML

Привет! 25 апреля Вт в 20:00 проведу вебинар на YouTube.

Рассмотрим на практике грани интересной темы:
🔸 Что такое семантический слой, и в чем разница между Метрикой и Витриной данных
🔸 Пути формирования метрик: SQL (ad-hoc), dbt Metrics package, Cube.js, LookML (Looker)
🔸 Примеры декларативной конфигурации dbt metrics в yaml
🔸 Как использовать продвинутые возможности dbt Metrics (derived metrics, secondary calculations)

Важные выводы и идеи при выборе решения:
🔸
Open source solutions vs. Vendor lock-in
🔸 Flexibility vs. Speed tradeoff (online queries vs. pre-materialized)
🔸 Access vs. Expressiveness (in-depth features vs. ease of use)

Если тема интересна, приходите на транcляцию - буду отвечать на вопросы, можно будет подискутировать.

Ссылка будет в этом канале за 10-15 минут до начала трансляции.

#dbt #metrics #bi

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍7
Семантический слой для Аналитики ключевых метрик – dbt Metrics vs. Cube

🔸 Что такое семантический слой, и в чем разница между Метрикой и Витриной данных.
🔸 Пути формирования метрик: SQL (ad-hoc), UI, dbt Metrics, Cube.
🔸 Примеры декларативной конфигурации в YAML и использования метрик.
🔸 На что обращать внимание при выборе решения: Стек технологий, Доступность vs. Выразительнось, Гибкость vs. Скорость.

В продолжение последней темы - для тех, кто любит читать.

Читать на Habr →

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Having extensive experience with Looker and dbt I've got several thoughts on

⚡️ Replacing Looker with Cube + Superset ⚡️

🔸 Future of BI and Analytics revolves around declarative metrics store and polyglot serving
— You set your metrics simple way, in a single store and version control them
— You then consume these metrics from wherever needed (BI, SQL, Apps, REST API)

🔸 Cube is a powerful rival to Looker
— Both support: Declarative Metrics, Dynamic SQL generation, Caching, RBAC
— Cube is Open Source while Looker is a vendor lock-in (which is tying your options and opportunities)
— Cube offers freemium plan while Looker is top-tier in terms of pricing

🔸 Cube still has got many things to improve
— Looker has fancy browser IDE with code-completion, syntax checks and built-in docs
— Cube is of a higher entry level in terms of: deployment, git, development, updates, etc.
— Looker supports flexible templating with Liquid: variables, dynamic joins, filters etc. enabling otherwise impossible opportunities
— Looker has impressive list of supported data sources and dialects

Apart from this Cube is not a visualization tool, so you will definitely need one on top of Cube (e.g. Superset, Metabase).
Looker has everything to be named top grade BI tool: rich dashboards, scheduling, alerting, API.

🔸 I would go on with Looker
— In case you have invested much into your LookML project and using it for a long period of time
— I would strongly consider using Cube with OSS BI tool if you are searching for a new stack or want to switch

#bi #looker #cube #metrics

⬇️ Share your thought if you've ever used Looker or Cube.

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚙️ Clickhouse is advancing at data integration

Apart from having fully-functional DB links to PostgreSQL and MySQL,

Clickhouse is also able to fetch data from any URL:

— No need for 3rd party tools (ELT)
— Extensive configurations for data formats and compression
— Do it SQL declarative way
— Works best with dbt modeling

Now I give you a brief example of how to sync data from external API (e.g. gSheets) to Clickhouse:

1. You create a table with URL engine pointing to external API either manually or using dbt macro
2. You register this table as a dbt source
3. You then reference this source anywhere in your dbt project

See the code →

#elt #integration #clickhouse #dbt

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
Выступил с докладом на конференции

Open Source Software, Люди, и Сообщества как стратегия выживания

🔸 Ключевая идея #1: Поздно делать своё ПО. Рынок ПО РФ проиграл и отстал.

🔸 Ключевая идея #2: Выжить можно, если использовать Open Source Software

🔸 Ключевая идея #3: Лучшая инвестиция сегодня - в умы и руки (которые утекают из РФ)

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤡4
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