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

— Data Integration
— Database engines
— Data Modeling
— Business Intelligence
— Semantic Layer
— DataOps and DevOps
— Orchestrating jobs & DAGs
— Business Impact and Value
Download Telegram
🔸 Привет! Cursor IDE, dev Containers, Env management, Advancing Github Actions, dbt reusable repo

Updates + Ideas Sharing за последние несколько недель:


🟡 Cursor IDE

— Установил попробовать IDE with advanced AI support
— Довольно просто перейти с VS Code (кто не в курсе, Cursor forked from VS Code)
— Порадовали очень быстрые ответы Advanced AI Models
— За 2 дня разработки потратил квоту в 150 запросов 😆
— Ранее я пользовался VS Code + Github Copilot
— В целом, я не сказал бы, что это прямо disruptor & game changer (только если вы ранее не пользовались чем-то подобным), но по ощущениям - приятно, интересно, шустренько

Продолжу trial на slow requests


🔵 Development Containers

Регулярно пишу об этом, и понимаю, что уже стал dev containers advocate, но не перестаю восхищаться тем, как это оптимизирует деятельность.

Представьте, по клику для вас локально или в облаке создается рабочее окружение:

— Вы работаете над dbt-проектом: Python + dbt (clickhouse/snowflake/bigquery/...) + linter + AWS/GCP/Azure CLI + Anything
— Вы работаете над Observable Data App: Javascript + npm + Python + linters
— Вы работаете над Kafka SMT: Java/Scala + Maven/Gradle

Плюс IDE Extensions: Kafka, Docker, Github, Gitlens, ...

Плюс Any feature: zsh, Terraform, Kubernetes, Docker in Docker, AWS CLI


🟢 Environments management

А далее я продолжил размышлять над тем, чтобы тот же контейнер использовался в качестве окружения для запуска кода в средах TEST и PROD.

— Код гарантированно и с одинаковым результатом работает локально и на сервере / в облаке
TEST (CI): вы открыли PR - собралась новая версия Image, запустились тесты. Если ОК - вы получили зеленую галочку, PR можно вливать
PROD (CD): после merge собралась новая версия Image и она публикуется как основная версия приложения (либо для регулярных запусков dbt, например)

Максимальная автоматизация (почти все работает само), унификация (у всех одинково, у тебя, меня, в облаке и на сервере), простота (обновляем версии, устанавливаем новые тулы, управляем зависимостями).

Звучит как рай? Или утопия?


🔴 Github Actions: self-hosted runners, act CLI, actionlint CLI

Пока это самый удобный и feature-rich способ организовать полный цикл разработки и поставки кода приложений / сервисов (на мой взгляд).

— Я создал несколько self-hosted runners (linux based) - квота hosted runners ограничена
— При необходимости auto scaling можно использовать Kubernetes operator for Actions Runner Controller (ARC)
— Я собираюсь унифицировать и создать Actions / reusable Workflows для всех своих нужд
— И далее в каждом проекте / репо ссылаться и переиспользовать код, заданный в одном месте

Конечно, не всё просто и легко. Есть нюансы: lifecycle management, clean up, pruning old/untagged images, optimize image build time, only build if specific files change (devcontainer.json, Dockerfile, requirements.txt).

Я устал открывать PRs и дергать Actions вручную. Feedback loop показался слишком длительным, поэтому:

— Стал использовать actionlint = Static checker for GitHub Actions workflow files
— И научился имитировать запуски локально с act CLI = Run your GitHub Actions locally 🚀

Но, в целом, это total disruption, на мой взгляд. Меня зажигает эта идея. Вся infra часть закрыта, всё работает как часы, максимум фокуса и усилий на решении бизнес-задач и создании ценности.


🟤 dbt repo (module) for importing as a package

Есть идея вынести повторяющиеся части кода / макросы / тесты / функции в отдельный модуль:

— Работа с envs: dev, test, prod; Limit data for dev, test envs
— Macros: data masking, schema management, RBAC (Access grants), External tables, cleaning up
— Custom test suites
— Reusable dbt models (for specific data sources)
— Code linting (SQL Fluff, for example)
— Guidelines: CONTRIBUTING.md, Code style and conventions, PR checklist
— Docs: generate and publish dbt Docs automatically

Ранее я уже делал нечто подобное для dbt-проектов на основе myBI Connect (data integration SaaS):

mybi-dbt-core - dbt module for myBI connect
mybi-dbt-showcase - myBI Connect + dbt showcase project
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍32
Artemiy Kozyr
🔸 Привет! Cursor IDE, dev Containers, Env management, Advancing Github Actions, dbt reusable repo Updates + Ideas Sharing за последние несколько недель: 🟡 Cursor IDE — Установил попробовать IDE with advanced AI support — Довольно просто перейти с VS Code…
В общем, если вы еще не пользуетесь Development Containers, Github Actions, dbt, Cursor то я настоятельно вам советую попробовать.

😘 А если будет интерес, то могу и провести YouTube stream / tutorial со слайдами и демо (как мы любим).

Всем успехов. Делитесь своими updates 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍6
Data Apps Design pinned «🔸 Привет! Cursor IDE, dev Containers, Env management, Advancing Github Actions, dbt reusable repo Updates + Ideas Sharing за последние несколько недель: 🟡 Cursor IDE — Установил попробовать IDE with advanced AI support — Довольно просто перейти с VS Code…»
Artemiy Kozyr
📼 Semantic Layer demystified - всё что вы хотели знать о Семантическом слое
😘 Семантический Слой и Метрики - всё что вы хотели знать / Semantic Layer / Gen AI / Synmetrix / Cube

🟢 В новом выпуске подкаста обсудили концепцию Semantic Layer – Семантический слой

— Эволюция работы с метриками. Почему вообще возникает проблема которую решает семантический слой
— Аналитические потребности компаний
— Семантическая модель и BI
— Разница между семантическим слоем и дата-каталогом
— Семантичская модель и GenAI / LLM / Human language
— Где место таким инструментам как Streamlit / Observable / Evidently и смогут ли они заменить BI?
— Deployment best practics (fault-tolerance, k8s)
— Migration from LookML?
— Можно ли создать полноценное решение на основе Open Source / Core опций продукта?

🔵 В подкасте:

— Вопросы - ответы - мнения - дискуссия
— Live demo, демонстрация интересных фичей и возможностей
— Кейсы и опыт различных компаний

🟡 Участники:

— Даня Чепенко – synmetrix.org; автор Tg semanticlayer (https://t.iss.one/semanticlayer)
— Иван Фокеев – founding team Statsbot / Cube.dev; ex-Narrative BI; автор synmetrix.org
— Михаил Шеянов - Head of Data Architecture Practice/Senior PO @ SIBUR
— Артемий Козырь - Data Platform Leader @ Wheely

🟤 Timecodes

00:00:00 Что такое семантический слой? Для чего, когда и почему?
00:04:39 Семантический слой как подход к проектированию аналитических систем
00:06:52 Унификация метрик / Single source of truth
00:11:32 Synmetrix Semantic Layer Demo
00:20:30 SQL API
00:23:55 Semantic Layer sync to BI systems
00:27:19 Advanced modeling / measures / window functions
00:29:40 Headless BI / Consuming data / Observable / Embedded analytics
00:33:49 Case SIBUR + Synmetrix
00:52:19 Разница Cube core, Cube cloud, Synmetrix. Как сделать выбор?
00:58:40 Влияние GenAI / LLM, генерация SQL, мнения и прогнозы
01:08:37 Миграция с других реализаций семантического слоя / LookML (Looker)
01:11:05 Отличия Synmetrix & Cube
01:12:40 Synmetrix Roadmap - ближайшие планы развития продукта
01:13:35 Несколько слов о Data Catalog / Data Governance
01:18:05 Wrap up / Заключение


😘 https://www.youtube.com/watch?v=Bg9ZcndcYh0


Традиционно, Like / Repost – приветствуются.
💬 Есть чем поделиться/спросить – оставляйте комменты, и возможно это послужит пищей для следующего выпуска подкаста.

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5
Yandex.Cloud: Unavailability of ru-central1-b.

Первый раз с таким сталкиваюсь 😱

Надеюсь, скоро починят.
У меня джобы data integration, data modeling встали 🙂

At the moment, the ru-central1-b zone is completely inaccessible due to power issues. The team is currently investigating the causes and working to resolve them. We recommend that clients shift their workload to other zones. We will provide updates around 13:30.


https://status.yandex.cloud/en/incidents/1129
😱94
Чем быстрее и проще создается ценность для конечного пользователя, тем более востребованы будут ваши решения.

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

Применительно к этому принципу, ранее я демонстрировал проект myBI Showcase, в котором объединял блоки

— myBI Connect (Extract - Load tool)
— Clickhouse (Database)
— dbt (Transformations) + mybi-dbt-core module
— Metabase (Business Intelligence)
— Github Actions (Continuous Integration + Deployment)

⚡️ myBI Market showcase guides you through building Modern Data Stack analytics:

— Configure environment
— Install and configure mybi_dbt_core package
— Configure data sources
— Build staging layer models
— Model Data Marts
— Visualize on a dashboard
— Publish dbt project docs
— Introduce Continuous Integration


Иногда пирамиду сравнивают с айсбергом, 2/3 которого скрыты под водой (скрыты, незаметны для пользователя).

— Зачем мне изобретать свою БД, если я могу взять (например) Clickhouse?
— Зачем мне создавать и поддерживать свои Data Integrations / Pipelines ко множеству сервисов-источников, если это можно получить как готовое решение со стабильным результатом?

Я могу сфокусироваться на моделировании такой витрины, которая будет отвечать на 99% вопросов бизнеса и нести ценность компании.

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

Посмотрите здесь: https://github.com/kzzzr/mybi-dbt-showcase

Недавно мои друзья из myBI Connect выпустили серию замечательных прикладных материалов по работе с платформой и её возможностями.

📊 Получить доступ: study.mybi.ru
Бонусом 1.500 рублей на баланс аккаунта + диплом.

А я скоро подготовлю новый кейс и серию видео / публикаций:

Bitrix как источник данных (myBI Connect)
Clickhouse
dbt (моделирование витрин)
Cube (semantic layer)
Observable (data app)
Github Actions (CI / CD)

Всё с учетом моего свежего опыта и знаний.

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍311
Universal dbt deployment (CD) and testing (CI) workflows, Data Integration via dlt, devcontainers advancements

Привет! Updates + ideas sharing за последние несколько недель:

🟡 Мгновенные универсальные и идентичные среды разработки на базе devcontainers 🟡

Я фанат devcontainers, ранее неоднократно писал о них, напоминаю:

— Декларативно задал окружение для разработки (например, dbt-проекта)
— Установил все зависимости и библиотеки (python, dbt-snowflake, dbt-clickhouse)
— Указал необходимые features (e.g. docker-outside-of-docker, aws-cli, terraform)
— Задал Extensions (e.g. vscode-dbt-power-user, gitlens, vscode-pull-request-github)
— Дополнительные сервисы (например, Cube, Metabase в соседних контейнерах)

Ниже новые результаты:

— Давай делать регулярный image prebuild где-то на сервере, а на клиентах делать только pull, что сократит время сборки на порядок и позволит избежать ошибок
— Давай создадим репо, где в одном месте соберем набор универсальных devcontainers под мои нужды
— В качестве postCreateCommand давай проверим наличие всех утилит: dbt -v, docker version, yc -v
— Автоматически запустим набор инициализирующих команд как postStartCommand: dbt deps, dbt run-operation initialize_dwh, obsutil config -i=$OBS_ACCESS_KEY_ID -k=$OBS_SECRET_ACCESS_KEY -e=$OBS_ENDPOINT


🔵 Data Integration Pipelines via dlt orchestrated by Github Actions 🔵

Работал над интеграцией данных одного из популярных сервисов через API.

— Изучил API, доступные методы и структуру данных
— Подготовил скрипт на Python, который осуществляет регулярные выгрузки данных
— В структурированный файловый формат .parquet с типизацией
— Доступны режимы: 'incremental' and 'historical' (any specified time period)
— Запускаю по расписанию как workflow в Github Actions
— Сам код и зависимости выполняются в контейнере (конечно, devcontainers)
— Уведомления об ошибках отправляет Tg-bot в указанную группу

Появилась идея писать универсальные интеграции с использованием некоего фреймворка. Рассматриваю dlt - data load tool.

Кто работал с dlt? Насколько интересный и качественный тул?


🟢 dbt deployment (CD) with Github Actions - единый универсальный workflow 🟢

Проблема:

— В наличии множество Github Actions Workflows, которыми трудно управлять по-отдельности
— Workflows едва связаны между собой, привязка ко времени расчета (0 минут, 15 минут, 30 минут каждого часа)
— Сборка docker image осуществляется принудительно, не запускается автоматически при изменении в содержимое
— Сборка docker image игнорирует cache (docker layers)
— Примеры: собрать и опубликовать docker image, собрать DWH: dbt build, опубликовать документацию: dbt docs, проверить актуальность данных: dbt source freshness

Решение:

— Собрать связанные задачи и действия в единый workflow
— Всегда актуализировать среду выполнения (docker image) опираяюсь на изменения в коде
— Оптимизировать подготовительные шаги (docker build) с помощью использования cache

Ключевые результаты:

— Единый workflow-файл для всех задач dbt PROD deployment
— Актуализация среды исполнения кода как предварительный шаг для каждого запуска
— Возможность reusing workflow files (т.е. использовать один шаблон)


🩷 dbt sources + Database Engine features (Clickhouse, Snowflake) 🩷

Проблема:

— В dbt зарегистрировано множество источников, но порядка и полноценного понимания что есть что нет
— Невозможность указать схему данных вручную приводит к невозможности читать источник данных
— Некоторые схемы-источники доступны только в одном экземпляре (сразу для DEV, TEST, PROD), а необходима возможность каждому иметь свою версию

Решение:

— Использовать STAGES (Snowflake), NAMED COLLECTIONS (Clickhouse) для создаваемых интеграций (S3, PostgreSQL, MySQL, etc.)
— Поддержка схемы данных (список таблиц, колонок, типов данных)
— Возможность для каждого пользователя создавать свои экземпляры таблиц-источников данных для интеграций с помощью dbt macro

Ключевые результаты:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍32
— Все интеграции создаются через STAGES, SNOWPIPES, NAMED COLLECTIONS - забыли про указание токенов, секретов, адресов, логинов, паролей, ключей для БД-источников
— Возможность указывать (подмножество колонок, явное указание типа данных) и не указывать (SELECT *) схему данных для создаваемых таблиц-источников
— Заполнение всех данных по каждому источнику: docs, freshness, tags


🔴 dbt test (CI) - полноценный конвеер Automated Tests с Github Actions 🔴

Ключевая идея в том, чтобы в независимом окружении (TEST) собрать проект и убедиться, что результаты соответствуют ожиданиям:

— Код в принципе работает (compile)
— Модели собираются в объекты в БД (run)
— Пройдены все тесты (test)

При этом сделать это оптимальным образом:

— Единый универсальный workflow для всех задач CI
— Уменьшенный объем данных (быстро)
— При необходимости, только изменяемый подграф - DAG subset (еще быстрее)

Once PR is opened:

— Build related docker image
— Deploy code to TEST
— Run tests

After PR is closed (merged or rejected):

— Remove transient database schema
— Remove linked docker image as well as old/untagged images from container registry


Скоро добавлю мысли и по этим идеям:

— Разрабатываю и тестирую Github Actions локально с Act CLI + actionlint
— Persist docs - Автоматически актуализировать документацию/описания объектов dbt в DWH и далее (downstream)
— Пирамида создания ценности в Data
— Мне очень понравился Apache Superset и впредь я бы рекомендовал его как замену популярным managed / proprietary BI (Looker, Datalens, Tableau, PowerBI, etc.)
— Квест с поиском исчезнувших записей - Debezium, Kafka Connect, Snowflake Sink
— Data Compaction в Object Storage (S3 / OBS / MinIO) - множество мелких файлов в один .parquet
— Clickhouse production-ready deployment checklist + configurations as code
— В целом кристаллизовались идеи по поводу направлений (видов) деятельности в Data
— 2025Q1 PERFORMANCE SELF REVIEW + PLANS

💬 А пока - давайте обсудим!
Давно не общались. У кого какие новости?

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Data Apps Design pinned « Universal dbt deployment (CD) and testing (CI) workflows, Data Integration via dlt, devcontainers advancements Привет! Updates + ideas sharing за последние несколько недель: 🟡 Мгновенные универсальные и идентичные среды разработки на базе devcontainers…»
Artemiy Kozyr
😘 Семантический Слой и Метрики - всё что вы хотели знать / Semantic Layer / Gen AI / Synmetrix / Cube 🟢 В новом выпуске подкаста обсудили концепцию Semantic Layer – Семантический слой — Эволюция работы с метриками. Почему вообще возникает проблема которую…
💬 В тему Semantic Layer и, в частности, Cube.js:

У нас недавно был классный выпуск подкаста со множеством тем, ситуаций и прогнозов по развитию.

Если у вас всё же остаются вопросы и живой интерес к теме, либо вы на пути внедрения Cube в свои проекты, то приглашаю вступить в Tg-группу Cube.js русскоговрящий чат

🔸 Там в общении с другими людьми на разных этапах внедрения вы сможете найти ответы на вопросы:

— Зачем мне в 2025 семантический слой
— Production checklist / Architecture
— BI-интеграции (Superset, Metabase, Tableau и др.)
— Семантические слои в целом – best practices в B2B-аналитике и data-инфре
— Разница между Cube core / Cube cloud / Synmetrix
— И прочие

📊 Ссылка на TG-чат: https://t.iss.one/cubejsru

💡 Если что в чате есть @jfokeev — один из первых сотрудников statsbot, в котором был разработан фреймворк cube.js и автор synmetrix (https://github.com/synmetrix/synmetrix)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
ОФФЛАЙН МИТАП в Сочи: dbt как де-факто стандарт создания Хранилищ Данных

Салют!

Выступлю в Сочи на площадке ИТ-хаба СБЕР

У меня будет ~30 минут чтобы зарядить вас, сделать увлекательно, интересно и познавательно:

— Ликбез для тех, кто пока не в курсе, что такое dbt
— Обзор эволюции развития dbt и продуктов dbt Labs
— Зачем вам dbt? Сравнение До / После
— Лучшие практики без воды после моих 5+ лет в проде

💡Время: 15 мая, сбор с 18:30, старт в 19:00
📍Где: ул. Войкова, 2 — IT-офис Сбера, Сочи

Регистрация: https://public.oprosso.sberbank.ru/p/hw0rd7yo

🔻 У кого есть возможность прийти и пообщаться – буду рад.

Запись тоже постараюсь сделать.

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥7
СЛАЙДЫ dbt как де-факто стандарт создания Хранилищ Данных

Привет,

По следам доклада на ОФФЛАЙН митапе в Сочи:

📊 Смотреть слайды: https://drive.google.com/file/d/17nZnuRBzH6xDL5Cku56daA1Uqs2t5Ssr/view?usp=sharing


Основные идеи:

🏆 dbt - индустриальный стандарт для трансформации данных в DWH
✍️ Позволяет писать, тестировать, документировать трансформации как SQL-код
☁️ Работает поверх современных облачных и on-premise платформ (Snowflake, BigQuery, Redshift, Databricks, Postgres и др.)
🏆 Использует лучшие практики разработки: версионирование, модульность, CI/CD, документация


Было много вопросов и заблуждений по поводу концепта dbt, поэтому дублирую:

— С т.з. манипуляции данными dbt умеет ровно столько, сколько умеет ваша аналитическая БД
— dbt не пропускает данные через себя, а лишь "раздает" команды БД, которая выполняет все операции (heavy lifting)
— dbt это просто python package с удобным CLI
— Рассматривайте dbt как мультитул-автоматизацию для работы с вашей аналитической БД


Наблюдения и выводы:

— Тема вызвала живой интерес и поток вопросов (которые продолжились после выступления)
— Отметил, что даже сложные концепты в подаче с простыми примерами и доступными формулировками легко воспринимаются даже неподготовленным слушателем
— Обрел старых (Станислав, привет 🙂!) и новых друзей и единомышленников
— Стихийно организовалась afterparty в соседнем ресторане с обсуждением смежных тем, обменом опыта и знакомствами
— Зарядился на дальнейшие планы и шаги, о которых буду сообщать


Запись, к сожалению, не велась.

😘 Если будет хотя бы 3-5 комментариев-запросов, то я сделаю видеозапись по этим слайдам и идеям и выложу на YouTube / RuTube.

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥61💯1
🪙 Почему люди ищут новую работу и проекты?

Привет! Рассуждаю вслух и делаю выводы из своего опыта:


🟡 Востребованность результатов

— Делать что-то и видеть, как это помогает другим людям
— Создавать нечто новое, ранее не существовавшее
— Помогать получать конкурентные преимущества и выигрывать борьбу
— Непосредственно участвовать в создании ценности
— Чувствовать себя незаменимым и востребованным

Определенно, это лучше чем:

— Быть винтиком системы, который ни на что не влияет
— И может быть легко заменен
— Не видеть смысла в своей работе
— Или обманывать себя насчет этого смысла
— Забыть про драйв и позитивные эмоции, связанные с работой


🔵 Технологии, с которыми вы работаете

— Использование гибких, передовых решений, отвечающим духу времени
— Создание собственных решений
— Иметь инструменты и влияние на то как осуществляются операции
— Сравнивать и оценивать подходы и инструменты, выбирать лучшее

Против:

— Работа в заданных рамках со стеком, который вы не выбирали
— Копошение в legacy, порожденном чужими ошибками и неправильным выбором
— Отставание, устаревание, следование на несколько шагов позади
— Невозможность найти адекватное решение для возникающих задач


🩷 Команда и окружение

— Работа бок о бок с сильными специалистами
— Которые вдохновляют и мотивируют
— У которых есть чему учиться
— И нет страха показаться глупым или задать вопрос

Против:

— Работа в токсичной среде
— Работа ради выполнения KPI (написания письма, закрытие тикета)
— Где нет рычага и ощущуения, что команда это нечто большее чем каждый человек по-отдельности
— Где все позиции, продвижения, премии выдаются не за достижения, а "по связям"


🟢 Деньги

Это важный аспект, но его ставлю на последнее место.

Определенно, труд должен быть оплачен соразмерно результатам и усилиям, в этом сомнений нет. Сегодня размер заработной платы - это одно из основных мерил привлекательности. Плохо, когда она - единственный критерий.

Я мыслю с другой стороны:

🪙 Деньги придут, если вы занимаетесь востребованными и интересными вещами, и делаете это лучше других.


🔥Сегодня мой друг Николай Валиотти из LEFT JOIN ищет человека с навыками BigQuery, GCP и dbt.
Это отличный способ получить международный опыт в динамичной и конкурентной среде с востребованными технологиями.

📊 Посмотреть предложения и откликнуться: https://valiottianalytics.huntflow.io/


Немного позже я поделюсь своим видением (путеводной звездой) того, что хотел бы предложить рынку:

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


🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4🤔31💯1
🆕 Полностью БЕССЕРВЕРНЫЕ Аналитические Приложения на dlt, DuckDB, dbt, Observable (Streamlit)

Или как собрать аналитическое приложение за $2 в месяц.

Изучая стек dlt + DuckDB + dbt + Observable (Streamlit), я наткнулся на интересную архитектуру. Оказывается, можно создать функциональное, но в то же время легковесное аналитическое приложение, которое работает почти без серверов.


🟡 Конкретная схема:

GitHub Actions (CI) → dlt загружает данные →
dbt трансформирует → DuckDB файл → S3/Object storage →
Observable/Streamlit читает DuckDB-WASM в браузере



🔵 Реальные цифры:

— Object storage / S3: $0.015 за GB хранения
— GitHub Actions: 2000 минут бесплатно
— Observable: бесплатно
— Итого: ~$2/месяц для приложения с 10GB данных


🟢 Что получается:

Дашборд грузится за 200ms (всё в браузере)
Работает офлайн после первой загрузки
Выдерживает любые нагрузки (статика!)
Автообновление через GitHub Actions


🔴 Ограничения (честно):

Размер данных ограничен памятью браузера (~2-4GB), но вряд ли нам вообще понадобится больше (ведь хранить мы будем агрегированные витрины)
Сложные real-time обновления проблематичны
Нет серверной логики для сложной авторизации
Ограниченная интерактивность и self-service (для этого нужны BI типа Superset)



🟤 Где это работает лучше всего:

— B2B SaaS аналитика для клиентов / Сквозная аналитика / Sales, Markeplace metrics, etc.
— Встраиваемая (Embedded) в web / mobile apps аналитика
— Демонстрационные стенды (showcasing)
— Публичная аналитика (типа COVID дашбордов)
— Дашборды для внутреннего контура компании (до 1000 сотрудников)
— Персональные и pet-проекты с историческими данными

Такой подход особенно хорош для стартапов и небольших команд - вместо настройки сервисов, Kubernetes кластеров, организации потоков данных можно получать результат за один коммит в моно-репо в GitHub.



Конкретный пример использования:

— Собираем данные Я.Метрика, Я.Директ, AmoCRM (Bitrix) с помощью dlt в DuckDB
— Варим эти данные, чистим, нормализуем, объединяем, считаем витрины (dbt + DuckDB)
— Создаем интерактивное приложение на основе Observable с DuckDB-WASM под капотом (т.е. бразуер = сервер, который процессит витрину в DuckDB)
— В приложении видим динамику ключевых метрик Marketing, Sales разрезах: даты, каналы, георгафия, воронки, sales-менеджеры
— Приложение = статический вебсайт, который размещается на любом хостинге (Object storage / S3) и не требует сервера


💬 У кого какие мнения на этот счет?
Где еще можно (нужно) применить такой подход?
Кто пробовал похожие решения?

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥239👍3🤩2💯1
🆕 Что насчет StarRocks?

Салют!

19 июня в 19:00 МСК будем слушать 2 шикарных доклада и беседовать с практиками:

— Как мы нашли замену vertica, clickhouse и hadoop – Станислав Лысиков
— Опыт использования Starrocks как Unified SQL Engine – Алексей Дёмин


🟡В этот раз я буду модератором, готовлю интересные вопросы и гипотезы, и вам рекомендую!

📊 Митап состоится онлайн, регистрация по ссылке.

Сообщество пользователей подготовило 2 доклада, охватывающие весь спектр задач - от типичного dwh небольшой компании до использования lakehouse движка поверх S3 и открытых форматов. От часовых витрин до bi безумия из сотен тысяч запросов. Мы постараемся ответить - жив ли еще опенсорс, есть ли альтернатива кликхаузу, гринпламу или трино. А если вдруг что-то забудем, то после докладов приглашаем вас на сессию вопросов и ответов в zoom к докладчикам 👍


🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24
Forwarded from СБЕР IT Сочи
💬 Вам пришло сообщение с приглашением на митап

26 июня приглашаем вас в наш уютный IT-офис. Будем общаться, играть в плойку и слушать доклады.


🔘Как сделать приватное облако на базе Kubernetes по цене смартфона
Михаил Старостин, технический директор, VYZOR

🔘Магия контейнеров для разработки и развертывания любого приложения
Артемий Козырь, независимый Data-консультант

Приглашаем к участию IT-специалистов уровня junior+,
количество участников ограничено, спешите зарегистрироваться.

➡️ 26 июня, сбор с 18:30, старт в 19:00
📍ул. Войкова, 2 — IT-офис Сбера, Сочи

Приходите, обменивайтесь опытом и заряжайтесь новыми идеями. Ждём вас!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥93
😘 Новый доклад: Магия контейнеров для разработки и развертывания (любых!) ваших приложений 🪄

Поделюсь опытом использования Development Containers – технологии, которая радикально упрощает настройку среды разработки для любых проектов.

🎯 О чём расскажу:
— Реальный кейс моделирования данных с dbt
— Как забыть о "у меня не работает" в команде
— Почему devcontainers – это game changer
— Практические примеры конфигурации
— Оптимизация для CI/CD

💡 Особенно полезно будет:
— Тимлидам и техлидам
— Data-инженерам
— Разработчикам на любом стеке
— DevOps-инженерам

⚡️ Ключевые моменты:
— Единая среда разработки для всей команды
— Работа с микросервисами через docker-compose
— Предварительная сборка образов
— Поддержка нескольких архитектур (AMD64/ARM)

📺 Смотреть доклад: https://www.youtube.com/watch?v=qTtRF6xpieI
📊 Смотреть слайды: https://drive.google.com/file/d/1-89LR6YQYpHXwzcsGtX4HBquK8vpYHi5/view?usp=sharing

🔗 Полезные ссылки из доклада:
https://containers.dev
https://github.com/devcontainers/spec

#devcontainers #development #docker #dbt #dataengineering

💬 P.S.: Задавайте вопросы в комментариях – с радостью отвечу и поделюсь дополнительными материалами! 🙌

🌐 @data_apps | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤‍🔥521🤩1
👋 Привет! Давно не виделись.

Продуктивно работал, качественно отдыхал.

Если сделать выжимку по основным интересам:

🔄 Большой фокус сделал на интеграции данных с помощью dlt. Все пайплайны загрузок (в особенности REST API) теперь строю на этом туле

💾 Запись осуществляю как в традиционные DWH (Snowflake, Clickhouse), так и в Object Storage (Iceberg, Delta)

📊 Значительно продвинулся в использовании Kafka Connect и в частности Debezium для синка данных из операционных СУБД: ad-hoc incremental snapshots, rewind CDC (OpLog) position, преобразования на лету и прочее

☸️ Работал над размещение Kafka + related services в Kubernetes как отказоустойчивого сервиса на базе проекта Strimzi

⚡️ Изучал возможности serverless analytics: (WASM) DuckDB, Matomo

🐳 Вышел на новый уровень использования devcontainer: prebuild & pull, регулярные builds & push свежих версий зависимого ПО, обновления от dependabot

🔐 Совершенствовал безопасность и надежность деплоймента DWH (Snowflake security issues and checklists)

🤖 Прокачивал свой AI enhanced workflow & setup на базе IDE Cursor. В планах пробовать Cline, топовые модельки с OpenRouter

━━━━━━━━━━━━━━━━━━

И, наверное, самая актуальная новость:

🎯 На этой неделе я заканчиваю свою работу в Wheely! Путь длиной в 6 лет подошел к концу.

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

━━━━━━━━━━━━━━━━━━

💬 Какие новости у вас?
🔥4411😱42
ПЕРЕЗАГРУЗКА этого блога

Друзья, привет,

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


🟡 Регулярность постов в последнее время была довольно низкой.

И вот почему: нет целевого действия, призыва.

В какой-то момент я осознал, что контента и идей у меня много, но я не веду читателя к какому-то действию.
В целом, идеи появляются, об этом позже.


🔵 Напомню об истории и изначальной идее этого блога:

— Около 6 лет назад как практику внедрил создание .md-заметок обо всех выполненных задачах

— Задач решалось много (сейчас еще больше), технологии были максимально свежие, актуальные, интересные

— Фокус был (и остается) на результатах, создании ценности, рассмотрении задач и тулов через прикладные проблемы

— Первый пост в канале появился в 2021-01 (5 лет назад! Ура!)

— Минимум рекламы. Никогда не размещал за деньги, максимум: репост по сердцу

— Только органический рост аудитории


🟢 Теперь о том, что меня драйвит / зажигает / мотивирует / интресует сейчас:

— Продолжаем: Траблшутинг (решение актуальных бизнес-проблем) с использованием современных Data-технологий

— Овладение технологиями с т.з. решения конкретных бизнес-задач (кейсов)

— Рассмотрение технологий вглубь: сильные, слабые стороны, лучшие практики, применения для определенных ситуаций

— Быстрое создание MVP и тестирование гипотез (Рынку нравится? Есть спрос?)

— Смена парадигмы от монетизации часов (работы) к монетизации сервисов / продуктов


🩷 Что я думаю о блоггинге в Data и IT в целом

🔺 Поизучал ряд каналов. Мой подход и рецепт такой: изучаю последние 10-20 постов и оцениваю:

— Сколько из них запустили мыслительный процесс

— Сколько из них вдохновили сотворить какой-либо результат

— Сколько из них отразили личный опыт, путь, ошибки и достижения


🔹 Качественные материалы однозначно есть, но достаточно много таких:

— Ребята из ABC делают буллшит XYZ и у них очень круто получается. Вам обязательно надо попробовать (нет)

— Зайчата из ABC устраивают конфу и вам туда однозначно надо

— А вот вам интересная картиночка, а вот вам мемасик 🤪

Хочу много деняк! Маловато будет! Буду торговаться, offer hunting, накрутка опыта, прочее 😆


🟤 Не откладывая, прямо сейчас пишу следующий пост на тему:

Я развивал Data Platform в Wheely 6 лет и вот что вышло


В нем расскажу, как начиналась и закончилась моя история в Wheely, поделюсь наблюдениями, выводами, мыслями.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍17❤‍🔥43💯2
📊 Я работал в Wheely 6 лет и вот результаты

Результат - единственная валюта, которую принимают в банке жизни 😌

— Спроектировал и реализовал миграцию аналитической платформы Redshift → Snowflake: -45% расходов в моменте ($3.6k → $2k/мес), без простоя бизнеса.

— Построил self-hosted платформу real-time streaming (Kafka + Debezium) вместо SaaS-инжеста: ~$20,000/год экономии и полный контроль по security/PII.

— Оптимизировал использование и лицензии Looker: ~50% (~$40,000/год) экономии при продлении без ущерба для процессов, и далее переход на Metabase (Open Source)

— Участие в разработке MetricView — высокопроизводительный BI-инструмент для C-level (на базе Observable Framework) с надежным CI/CD.

— Вёл функцию Data Engineering для компании из 150+ сотрудников; обеспечил 100% покрытие мониторингом пайплайнов и <1 минуты задержку данных для критичных операционных потоков.

— Стандартизировал DevEx через DevContainers (онбординг с дней до ~1 часа) и инженерные процессы для data/BI (CI/CD, monitoring, alerting).


🟡 Как всё начиналось

На момент найма:

— Практики и стандарты Data Engineering не соответствовали реалиям и вызовам
— Требовался человек plug-n-play, который придет и быстро наведет порядок
— Возьмет под контроль дальнейшее развитие

И я им стал.

— Сначала у меня было 3 месяца на offboarding ELT SaaS Alooma (куплен Google) без affecting business
— Затем оптимизации и устойчивость к ошибкам в dbt (Redshift) - все устали от ежедневных падений и отсутствия данных
— Затем миграция с Amplitude на Snowplow
— И далее, далее, не останавливаемся

Было динамично и интересно. Каждый день новое сражение, перспективные технологии, высокая ответственность и свобода выбора решений (покуда ты создаешь ценность и результаты).


Плюсы


🔵 Гибкость и живость

Нужен результат – делаем, чего ждать. Минимум бюрократических процедур, задержек и прочего bullshit.
После работы в корпорациях было удивительно, что так быстро можно создавать результаты и влиять на процессы. Буквально в течение дня можно было вывести в прод несколько фичей. Конечно, это нравилось.


🟢 Современные технологии

Я работал с dbt, Looker, AWS, Redshift, впоследствии Snowflake.
Крутейшие технологии, с которыми приятно работать.
Одним из первых я написал на Хабр про dbt. Я буквально видел их путь развития от нишевого тула до техногиганта.


🩷 Ответственность и Impact

Сколько свободы, столько и ответственности. Если не я, то никто не починит и не сделает.
Если не исправлю, в Пн все увидят кривые графики. Отчасти я сравниваю это с ролью SRE, но в Data.
Здорово чувствовать, что ты влияешь на работу других людей, что твой труд уважаем и необходим.


🟤 Также:

— Лимит на обучение. Я его тратил на подписку издательство O’Reilly - считаю, что это лучшее вложение
— В месяц у меня было около 10К руб. на пользование сервисом (2-4 поездки). Но их меня впоследствии лишили 😂
— ДМС - стандарт. По больницам я не ходок, но и ДМС меня позже лишили 🤪


Продолжение далее ⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3314👍83🌚2
.. (продолжение) Минусы

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

Культура менеджмента и управления по сути сводится к: “Делаем всё как говорит Главный” 🔸

И неважно, прав он или нет. Разбирается в этом вопросе или нет. Просто он так хочет (сказал).

Just make him happy. Это в принципе девиз любого менеджера, который хочет успеха в компании. Иначе он долго не задерживается 😆
Sad but true.


Бюрократия и палки в колеса вместо свободы действий и изменений ◻️

Львиная доля моих результатов и изменений - это моя личная инициатива, которую я сам тащил как мог снизу вверх.

Менеджеру это не надо. В его глазах такая инциатива – еще один риск: “Сейчас ОК. А вдруг хуже станет. Ну нах, лучше придержу”.

Поэтому: “Оцени; Напиши письмо; Сделай созвон; Задай вопрос; Сделай расчет в Google Sheet; Создай страницу на 20 листов в Notion” и прочий булшит.

Ну, в принципе, у меня после такого отношения мотивация утрачивается.

🔵 На примере Snowflake:

— Я договорился с вендором, общался с сейлзами, постоянные созвоны где тебя пушат: "КУПИИИИ"
— Трижды запрашивал trial credits чтобы 120% всё протестить и не обосраться
— Писал писульки и странички в Notion
— Брал кредит доверия, всех успокаивал, объяснял и пр.
— Работал значительно больше всё это время, т.к. никто не отменял основную нагрузку

🟢 В следующую инициативу (Kafka + Debezium) моя мотивация вовсе сломалась.

Миграция не прошла 100% гладко (и это ОК). В сухом остатке: избавились от жадного вендора (считай ELT бесплатно), всё стало рилтайм, данные всегда внутри контура компании.

🧐 Но! Я получил отрицательную оценку на perf. review и пришел к странному выводу:

Оптимальная стратегия в такой ситуации - минимум инициативности, делаем то, что говорят (хотят), и не больше.
(Так нельзя! Беги, если не хочешь покрыться мхом! 🔹)


Низкая динамика в культуре разработки и technology adoption

Если коротко, то равняться (быть мотивированным, учиться, следовать, обмениваться, синергироваться, как угодно) на кого-то было проблематично.

Извне можно разобраться на этом показателе:

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

Я, в целом, не берусь судить обо всех направления, но вот маленький факт:

— В блоге Wheely на Хабр (давно почил) всего 3 публикации. Две из них мои. На чистом энтузиазме созданные, никто за это мне не доплачивал.
— Вместо спасибо через год только прибежал менеджер: “Главному не понравилось, что ты опубликовал суррогатник ObjectID, срочно исправляй, иначе чих-пых!” 🟦

Позже были попытки мотивировать людей писать за деньги.
Преподносилось с помпой: Вот сейчас-то у нас целых блог технологический разовьется (company brand, bla-bla) 🟦
Но что-то даже за деньги никто ничего не написал 😁


Странные решения в найме


Я 6 лет наблюдал постоянный и бурный найм (текучку) Data Scientists.

— Нам не нужны Data Engineers: всё и так норм работает. Зачем развивать и усиливать команду.
— Нам нужны только Data Scientists. Потому что это модно, так сказал Главный.
— Люди приходили, видили, что никакого сайнса нет, надо SQL писать, чуток задерживались и уходили.

Я видел найм человечка на грейд IC5 (у меня был IC3) с улицы. “Ну ему же кушать нечего будет в Лондоне” 😭😆

За все 6 лет из Data Science я не увидел прорывных результатов. Все поделки - курам на смех. Айрфлоу с хардкод-SQL в кавычках, который ломался буквально “завтра”, когда другой рукой менялся набор колонок ⚪️


Сам я за все 6 лет получил только одно повышение грейда 🟢

Буквально на “слове пацана” поймал 😂 Типа сделаешь Snowflake, тогда и будет. И то, с опозданием в пару меяцев.

А также 2-3 индексации ЗП за эти годы. Все исключительно только тогда, когда я приходил с оффером (удивительно, да? 😀).


Система оценки Performance Review 🟫

Идея - благая. Исполнение - незачет.

По факту расклад такой:
Please open Telegram to view this post
VIEW IN TELEGRAM
😢2118🤝74🤯2