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
👀 Записали интервью-обсуждение с Алексеем из myBI Connect.

— Путь становления одного из самых популярных сервисов SaaS аналитики в РФ

— Что представляет из себя сервис изнутри? Самые популярные коннекторы

— Белые пятна и пробелы на рынке. Запросы клиентов, тренды

— Жизнь после санкций. Переезд в Y.Cloud. Будущее PowerBI. Трудности и бенефиты

— Планы экспансии. Ликбез и культура данных. Продвинутые аналитические паттерны в легкой доступности

🔥 Дайте реакций! Скоро релиз!

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥137👎1
PowerBI и Azure в РФ всё!

Дорогие клиенты, вам даем времени 5 дней на offboarding, дальше сами.

Не удивлен, не расстроен, но воодушевлен.

Никогда не любил PowerBI в силу ряда причин:

— Нет клиента для Mac / Linux
— Нет версионирования (вроде что-то завезли, но это не полноценный git)
— Всё необходимо щелкать мышью 🟦
— Какие-то сложносочиненные навороты с DAX / MDX, погружаться в которые нет желания
— Gateways и прочие сложности с публикацией и регулярным обновлением 🟦
— И конечно же тесная связь с Microsoft и их софтом

💠 Проведу 1-2 короткие консультации БЕСПЛАТНО насчет миграции из PowerBI / Azure в новый мир:

— RU Clouds: Y.Cloud / Cloud.ru
— EL: Kafka + Debezium, Airbyte (Connectors)
— Database: Clickhouse / Greenplum / Starrocks
— Transformations: dbt (SQL code)
— Semantic layer: Cube
— BI: Superset / Metabase / Datalens
— Orchestration: Airflow / Dagster / Prefect
— Monitoring: Prometheus, Grafana

Напишите мне в ЛС @kzzzr:

— Для чего вы использовали PowerBI
— Какие у вас источники данных
— Какие объемы данных
— Примерный перечень и сложность расчета метрик (показателей)
— Комментарий по срокам и необходимости видеть актуальные отчеты

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3🤡3🤯1🌚1
❄️ Финализирую Redshift to Snowflake transition

Да! Процесс длился с Июля 2023 с разной степенью интенсивности, но я сделал это.

Чеклист коротко:

🔵 Data Integration (EL)

— Create WH and user for EL (Hevo)
— Create empty schema landing
— Create EL pipelines from scratch (Hevo)
— Configure EXTERNAL STAGES and TABLES
— UNLOAD from Redshift (S3 Parquet) and COPY into Snowflake full history of largest tables

🔵 Data modeling with dbt (T)

— Create distinct WH for workloads: EL, T, DEV, BI, CI
— Set up Resource monitors for credit usage
— Adapt dbt project to Snowflake syntax
— Configure essential dbt packages
— Adapt JSON parsing code to LATERAL FLATTEN
— Enable Carto extension (H3 indexing + geo-joins)
— Snapshots for most dimensions
dbt build --full-refresh
— Optimize warehouse size dynamically for heavy models

🔵 Orchestration

— Set up dbtCloud jobs
— Configure Slim CI job

🔵 Data serving

— RBAC: Roles, Users, Groups, Privileges
— Connect Snowflake to Looker and Metabase
— Test Dashboards
— Connect reverse ETL, Jupyter, Airflow to Snowflake

🔵 Paperwork

— Launch procurement process with Vendr
— Notion Page on Snowflake transition
— JIRA tasks, approvals, 30+ emails

🟣 Наблюдения:

— Всё работает красиво и довольно шустро
— Радует то, что я разделил все нагрузки на разные Warehouses
— Для сложных моделей dbt и full-refreshes я динамически назначаю более мощные WH
— Snowflake очень удобная СУБД, всё сделано для людей, включая UI
— Много простых и крайне полезных мета-команда (SHOW, DESCRIBE, USE, LIST, ...)

Конечно, есть и обратная сторона медали. Буду работать над подробным обзором и заметками о переезде. Всё интересное еще впереди.

А пока можете поздравить меня.

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍121
🟢 Snowflake Cost Management

Активная фаза transition завершена, самые острые проблемы и вопросы решены, сломанные дашборды и интеграции исправлены.

И первое, на что хочется обратить внимание – это траты.
Пока рано делать полноценные выводы, но давайте посмотрим на факты:

— Кластер Amazon Redshift из 2 x ra3.4xlarge nodes обходился примерно в $3700 / мес. (~ $925 / нед. ~ $125 / день)

— Траты Snowflake за неделю 19 - 26 марта составляют ~ $760 (на картинке)

При этом:

— 20 марта – подготовка к transition, запуски dbtCloud jobs
— 21 марта – день, когда я полноценно переключил все нагрузки на Snowflake и делал history backfill (COPY / INSERT) + full-refreshes (повышенные траты)
— 23-24 марта – выходные
— 25 марта – пользователи начинают находить ошибки, выпускаю фиксы и делаю full-refreshes
— 26 марта – день в разгаре

Ключевые выводы:

✔️Однозначно, разделение запросов и пользователей (workloads) на разные Virtual Warehouses - это преимущество

✔️Конфигурация и настройки прямо влияют на производительность и расходы. SCALING_POLICY / SCALING_POLICY / STATEMENT_TIMEOUT_IN_SECONDS / MAX_CONCURRENCY_LEVEL / etc.

✔️Оптимизация становится дико интересной игрой, когда она четко привязана к метрике (💵)

✔️Стали доступны продвинутые инструменты Мониторинга: dbt Artifacts, Snowflake Cost Management, Resource Monitors

✔️Правильное расписание (scheduling) имеет значение - делай расчеты и запуски только тогда, когда это необходимо

✔️Выбор Warehouse size – решение уравнения с переменными время исполнения и стоимость

✔️Мой dbtCloud setup стал значительно проще (набор jobs и их конфигурация, на картинке)

✔️Явный эффект для крупных таблиц имеют Cluster keys (упорядочивание записей в micro-partitions, что-то типа индекса)

— Первая неделя использования Snowflake внушает оптимизм относительно того, что траты, возможно, будут немного меньше, чем на Redshift, при всех полученных преимуществах

Каждый из перечисленных пунктов достоин отдельной публикации и раскрытия подробностей.
⭐️ О чем хотели бы узнать детально?

Я продолжаю экспериментировать и постепенно внедрять и другие отмеченные мной Snowflake features.

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔21❤‍🔥1💯1
1
▶️ Успешный SaaS на рынке Аналитики – cтановление и планы развития / Алексей Сидоров из mybi connect

Ура! Релиз моего первого интервью на YouTube с Алексеем Сидоровым из mybi connect

Ключевые идеи и мысли в беседе:

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

— Делегировать базовые задачи и создавать ценность на прочной основе выгоднее, чем изобретать свой велосипед (писать и поддерживать коннекторы)

PowerBI – мощный и удобный инструмент, но заметен рост интереса к стеку dbt + Clickhouse + Cube + любой BI

— Модель данных Звезда / Снежинка позволяет отвечать требованиям гибкости и изменчивости данных

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

— Все клиенты делятся на две группы: in-house аналитика и партнеры, делающие внедрения на заказ

— Платформы, обещающие обучить профессии бизнес-аналитика за 2 месяца продают иллюзии. Навыки приобретаются в реальном бою и не всегда красивых и удобных бизнес-кейсах

— Лучшие продажи – "изнутри", когда аналитик компании сообщает о необходимости сервиса для решения задач

🔺 Таймкоды доступны в первом закрепленном комментарии на YouTube.

💻 Задавайте свои вопросы в комментариях к видео - я отвечу всем!

⭐️ Друзья, поддержите мой труд лайком и подпиской - ваша поддержка вдохновит на создание новых роликов.

Приятного просмотра!

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

Задача трансформировалась и для нее давно найдено красивое решение.

Планирую выступить на Апрельском бигдатнике sql-ninja (Москва, 27.04)

🔺 SQL + dbt = God Mode Data Modeling

На кейсе создания витрины корпоративных метрик рассмотрим:

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

А еще новые знания, нетворкинг, общение.

Регистрация: https://sql-ninja.ru/ticket/

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥82👍1
🔸 Развернул Self-hosted runner for Github Actions

🟡 Причина: Закончилась квота минут на использование Managed Runners, были остановлены все расчеты и сборки

Использовал базовую VM в Я.Облаке (это совсем недорого).

🟡 Шаги предельно просты:

— Download the latest runner package
— Extract the installer
— Create the runner and start the configuration experience
— Last step, run it!

🟡 Трудности с которыми столкнулся:

— Все тулы нужно поставить на VM самостоятельно (либо взять boot disk за основу): Docker, git, curl, etc.

— Права. Нужно выдать права на чтение, запись и запуск (rwx), ловил ошибки, пока не выдал необходимые права

buildx failed with: ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied


— После завершения SSH-сессии, runner становится недоступен. Процесс нужно запустить как сервис через systemd. Configuring the self-hosted runner application as a service

🟡 В итоге:

— Имеем всю мощь Github Actions и набор поддерживаемых фичей
— Богатство решений и автоматизаций в Marketplace
— С замечательной документацией
— В качестве отличной замены динозаврам automation server типа Jenkins (и прочим подобным тулам)
— По цене базовой виртуалки

◻️ До сих пор используете Jenkins?

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4🍓2🤩1
🔹 Найдись Data Infrastructure Engineer / Analytics Engineer

Скоро будет открыта сочная вакансия ко мне в команду в Wheely

🟡 Стек инструментов и задачи вкуснейшие 🍑

— Двигаемся в сторону Near real time data sync: Debezium + Kafka
Источники: MongoDB, PostgreSQL, CockroachDB, Snowplow, Braze, etc.

— Tuning Snowflake + dbt - доводим до совершенства трансформации данных и DAG

— Semantic Layer + BI (Looker + Metabase) – метрики и показатели как код, в планах Cube

DataOps + MLOps – управление Data Services, Code Quality, CI/CD, Observability
Поиск аномалий и отклонений в метриках и данных
Помогаем DS выводить модельки и управлять их ЖЦ


🟡 Свобода действий и выбора, но и высокая ответственность

— Работать непосредственно со мной, буду обучать и отвечать на все вопросы

— Напрямую влияем на бизнес и показатели, общаемся с C-level guys

— Возможность предлагать новые подходы, тулы и сервисы

— По salary обид не будет точно ◻️

— Возможность поехать на Кипр (relocation support package!)

⭐️ Кого заинтересовало – готовьте CV.

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍8😱2
Доклады на Апрельском бигдатнике sql-ninja (Москва, 27.04)

Я готовлю practice-oriented доклад 🔺 SQL + dbt = God Mode Data Modeling

☕️ Буду доступен для живого общения и нетворкинга:

— Мнения насчет Snowflake, dbt, Looker, Cube и других
— Консалтинг в сфере Data
Обучающий цикл DMDA

🛡 Сам заинтересован в следующих докладах:

Что правда из того, что говорят про Clickhouse
Как отбалансировать десятки брокеров с миллионом rps с помощью Cruise-Control
Airflow dbt integration
Как мы расширяем возможности open-source решений на примере Arenadata DB

Регистрируйтесь: https://sql-ninja.ru/ticket/

До встречи!

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥83👍2
Data Apps Design
🔹 Найдись Data Infrastructure Engineer / Analytics Engineer Скоро будет открыта сочная вакансия ко мне в команду в Wheely 🟡 Стек инструментов и задачи вкуснейшие 🍑 — Двигаемся в сторону Near real time data sync: Debezium + Kafka Источники: MongoDB, PostgreSQL…
🔹 Найдись Data Infrastructure Engineer / Analytics Engineer

Ссылка на вакансию: Data Infrastructure Engineer

Стек, технические навыки и особенности описал в прошлом посте.

Локация: Кипр / Москва.

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


🔸 Что будем делать:

We are looking for a Data Infrastructure Engineer to strengthen our Data Team at Wheely, proactively seeking and providing Business Users and Data Scientists with best-in-class and seamless experience.
Responsibilities

— Enhance Data team with architectural best practices and low-level optimizations
— Help refactor and improve codebase (dbt for data transformations, LookML for semantic layer)
— Support on evolving Data Integration pipelines (Airbyte, Debezium, Kafka), Database engines (Snowflake), BI tools (Looker, Metabase), reverse ETL syncs (Census)
— Cover up business units with feature requests / bugfixes / data quality issues
— Enforce code quality, automated testing and code style


Тем, кто пришлет CV мне в ЛС @kzzzr – сделаю рекомендацию напрямую (referral).

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥6
🔳 The Ultimate Guide to dbt
Everything you could ever know about dbt, all in one canvas.

Некоторое время назад получил письмо от Sales rep Count на тему демо их продукта. Стал изучать сайт и наткнулся на вполне приличный гайд в формате canvas по dbt и связанному с ним toolset, чем считаю необходимым поделиться.

Рекомендую тем кто изучает dbt, структурирует информацию, любит красивые визуализации а-ля mindmaps.

Из интересного, что я отметил:

dbt core ecosystem
dev tools / data observability / documentation

deployment
Environments / CI-CD / orchestration / testing

suggested packages
useful dbt packages

— command syntax
commands, CLI flags, selection syntax

— dimensional modeling guide
design process, data modeling flow, normalization - denormalization

— dbt alternatives

К сожалению, потыкать на ссылки вам придется самим из canvas map / table of contents 🔸

Итого: неплохой ресурс, чтобы достаточно быстро войти в курс дела и при желании углубляться в конкретные темы.

Но считать, что вы знаете о dbt всё, просто посмотрев эти картинки я бы не стал 😄


Кое-что из этих материалов буду рассматривать на ближайшем запуске DMDA 👑

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
96🔥3👍1
▶️ SQL + dbt = God Mode Data Modeling / Подходы к созданию витрины корпоративных метрик

— Бизнес-задача: Дашборд для Weekly Business Review (WBR)
— Решение «Hardcore Cube» 🗿
— Решение «Direct Runtime» 🦅
— Aggregate awareness (Looker) как оптимизация производительности
— Решение «Godlike modeling» 👑
— Как отразилась смена СУБД с Amazon Redshift на Snowflake на решении?

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

Слайды доклада: https://drive.google.com/file/d/1_KGuLGWksWBHz0SKUEOW1MO4Acxea0s3/view?usp=sharing

👑 Учиться со мной: https://forms.gle/uwETpSRA6ux7Gr1t7

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥62
Apache Superset — продолжаю использовать и приятно удивлен

Последнее время начал глубже погружаться в Superset – тул класса Business Intelligence для визуализации и дашбординга.

🔵Развертывание через Docker-compose тривиально

git clone --depth=1  https://github.com/apache/superset.git

export TAG=3.1.1
docker compose -f docker-compose-image-tag.yml up


Есть варианты с Kubernetes, PyPI

🟤 Доступна локализация Superset на русский язык

Выполняется как добавление русского языка в список доступных:

LANGUAGES = {
"ru": {"flag": "ru", "name": "Русский"},
"en": {"flag": "us", "name": "English"}
}


🟡Подключение к источнику данных Clickhouse

Из коробки в Superset нет возможности подключиться к Clickhouse.

В моем случае, я выполнил скрипт установки в одном из контейнеров:

pip install clickhouse-connect


Возможно собирать готовые образы с предустановленными драйверами и пользовательскими конфигурациями.

🔵 Использование семантического слоя Cube в качестве Database Connection

Всё работает замечательно.

Cube показывает Postgres-подобный SQL API, который можно использовать в Superset из коробки.

🔸 Однако, в случае, если вы хотите применять custom formatting для ряда метрик (.2% - доля в процентах до двух знаков после запятой), то вам придется задать METRICS (формула + название) и в Superset, т.е. по сути выполнить задать метрику дважды, что не очень хорошо.

🟫 Также новые метрики доступны к использованию только после явного Dataset metadata refresh. Т.е. даже в случае Continuous Deployment придется пройти и нажать все кнопочки явным образом.

🔴 Графики на Apache ECharts

Почему Apache ECharts? Коротко:

— large library of visualization types
— high performance, ideally supporting canvas rendering
— powerful declarative API for customizing and theming charts
— internationalization support
— an active and growing community

❤️ Уже заценил Mixed chart, где можно совместить несколько метрик различных типов (bar + line) с общей осью (X = Time).

🟢 Кастомизации графиков

Итак, порой у пользователей дашбордов возникают странные и на первый взгляд неосуществимые требования 🟢:

— Применение особенного форматирования - stacked bar chart values alignment (center)
— Добавление строк, колонок в визуализацию (пустые строки-разделители Excel-like) - попробуем Custom CSS
— Новые (недоступные из коробки) визуализации - обратимся к библиотеке Apache ECharts
— Расширенное редактирование имеющихся графиков

Мне еще многое предстоит выяcнить в этих моментах, но учитывая наличие материалов, думаю, что это будет осуществимо.

🩷 В Tg есть русскоязычное community @superset_ru

— Многие вопросы находятся в поиске по ключевым словам
— Ранее не обсуждавшийся вопрос можно сформулировать и задать коллективному разуму

Не всё получается сделать сразу, быстро и просто. Но пока впечатления положительные.

👤 Поделитесь, какие ваши? Сталкивались с тем, что не получалось решить? Раздражало в Superset?

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