Среди читателей блога очень много пользователей dbt и тех, кто решает задачи моделирования. На днях столкнулся с проблемой и решил поделиться опытом с вами.
— Я использую devcontainer для каждого отдельного проекта
— В сборку такого контейнера включены необходимые утилиты определенных версий (dbt, adapter for clickhouse/snowflake/redshift, aws cli, obsutils, jq, kcat и т.д.) и их конфигурация (initialization, secrets, etc.)
— Также в контейнер можно включить VS Code Extensions + Common utilities
— Такой контейнер можно запустить локально на своем компьютере и в облаке (это называется Codespaces)
— По сути это похоже на Python virtual envs, только мы не ограничиваемся сугубо Python
Как результат - у всех членов команды одна и та же полноценная среда разработки со всем необходимым инструментарием буквально по одному щелчку мышки. Читайте: никаких проблем с установкой пакетов на разных OS, версиями Python, dependency hell и т.д.
На практике это означает, что, например, Product Analyst или Data Scientist, которого вы наняли вчера, уже сегодня откроет полноценную среду разработки и начнет приносить пользу и создавать ценность.
— У одного из членов команды проблема с работой dbt Power User Extension
—
An error occured while initializing the dbt project: No module named 'agate'— Суть проблемы сводится к тому, что Extension считает, что dbt не установлен (не найден)
— Запуск диагностики: Run diagnostics
— Внимательно изучаю вывод в своем окружении и у человека, который испытывает затруднения
— Суть в том, что у нас отличается Python paths
— Setup Extension: Select Python Interpreter
— Вуаля! Проблема решена. Extension работает корректно
Теперь несколько слов о самом dbt Power User Extension. Самые востребованные лично для меня возможности:
— Ориентация по DAG: parent / children nodes / model tests and docs
— Горячие клавиши почти на все действия dbt. В основном я пользуюсь для просмотра compiled / run кода и отладки
— Автогенерация .yml-файлов (sources, models, columns, tests)
— Просмотр документации проекта + Lineage
О других возможностях узнать подробнее можно в оф. документации: https://docs.myaltimate.com/setup/installation/
Happy modeling ☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤2
Готовлю доклад на Data Science Conference Europe.
Поехать лично, к сожалению, не получилось. Но нашелся слот для онлайн-выступления.
Data is the foundational layer for any AI application. In this talk, we will explore ways of building robust data pipelines and employing advanced data modeling techniques:
— Enabling Data Streaming: Transitioning to near real-time and event-driven applications using Debezium and Snowplow.
— Reducing third-party vendor dependencies by leveraging open-source software, resulting in annual savings of $20K.
— Achieving full control over data flow and transformations using dbt and Kafka SMT.
— Optimizing compute and storage costs with Snowflake, achieving a 30% reduction compared to Amazon Redshift.
— Ensuring complete data ownership with zero processing outside the company perimeter.
— Securing data access through RBAC, data masking policies, and PII handling.
This talk distills key knowledge, revealing multiple challenges and pitfalls, and provides practical insights for building a solid data foundation for AI applications.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24❤14👍7🙏2
Еще недавно я выступал на апрельском бигдатнике:
Много работал за последние месяцы с Kafka, Debezium, real-time streaming, поэтому меня в особенности заинтересовали доклады:
— Введение в потоковую обработку данных с примерами на Apache Flink
— Streamhouse Architecture - единообразный способ работы с пакетными и потоковыми данными
— Опыт эксплуатации Apache Iceberg на петабайтных таблицах. Проблемы и решения
— Debezium — инструмент получения данных с источников, используя паттерн CDC
В этот раз подключусь зрителем онлайн.
Но рекомендую посетить меропритие offline и завести новые знакомства и контакты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Data Apps Design
▶️ SQL + dbt = God Mode Data Modeling / Подходы к созданию витрины корпоративных метрик
— Бизнес-задача: Дашборд для Weekly Business Review (WBR)
— Решение «Hardcore Cube» 🗿
— Решение «Direct Runtime» 🦅
— Aggregate awareness (Looker) как оптимизация п…
— Бизнес-задача: Дашборд для Weekly Business Review (WBR)
— Решение «Hardcore Cube» 🗿
— Решение «Direct Runtime» 🦅
— Aggregate awareness (Looker) как оптимизация п…
🔥10❤3👍1
Data Apps Design
Слайды доклада: https://drive.google.com/file/d/1U3vm2jZlz9GHlM0dsRhmUwZQzM9rgS8k/view?usp=sharing
Запись на YouTube скоро будет
Основные секции доклада:
Следующими сообщениями опубликую ключевые идеи доклада
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥2
Artemiy Kozyr
When it comes to AI, the most important things are:
— 📈 Opportunities you can identify (competitive advantages)
— 🛠 The way you can do it (technical capabilities)
— ⏱️ How fast you can ship it (time to market)
Start with business deliverables and outcomes:
— 📊 Summarizing data on dashboards to report key metrics and their dynamics.
— 🤖 Leveraging AI to query DWH data through BI tools using natural language.
— 🔍 Identifying potential PII and notifying for action to ensure compliance.
— 📧 Tailoring communications via CRM platforms based on customer attributes.
— 🎯 Next best offer or recommendation systems for customers.
— 🕒 Creating smart queues and fair order distribution to improve utilization.
— 🚨 Detecting fraudulent orders and transactions at an early stage (near real-time).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Data Apps Design pinned «✅ Data Engineering in the AI Era: Building a Robust Foundation for AI Applications Слайды доклада: https://drive.google.com/file/d/1U3vm2jZlz9GHlM0dsRhmUwZQzM9rgS8k/view?usp=sharing Запись на YouTube скоро будет 🔸 Основные секции доклада: 🟡 BUSINESS DELIVERABLES…»
Artemiy Kozyr
There are several types of data sources:
— 🗄 Databases
— 📈 Events (Clickstream)
— 🌐 3rd party APIs
— 📄 Files
CDC SYNC FOR DATABASES WITH DEBEZIUM
💡 Debezium is an open-source distributed platform for change data capture (CDC)
— ⏱️ Real-time data streaming
— 🗃 Support for various databases
— ⚙️ Fault-tolerant and scalable architecture
— 📜 Schema evolution handling
— 🔗 Integration with Apache Kafka
Setup hints for Debezium source connectors
— ⚙️ Leverage distributed and parallel sync mode
— 🎯 Only sync relevant data
— 🛠 Configure topics auto-create feature
— 🚫 Do not trigger initial snapshots on production databases
— 🔔 Enable signaling (very powerful feature)
— 🔄 Configure retries in case of (transient) errors
— 📝 Tolerate errors but capture/log them
Setup hints for sink connector (Snowflake)
— 🏷 Ensure a consistent naming convention for topics
— ⚙️ Adjust settings for optimal performance
— 🆕 New record state extraction for Debezium messages
— 📝 Include relevant metadata fields
— 📐 Apply schematization
— 🗃 Ensure arrays are handled correctly to avoid data issues
— 🎛 Use Single Message Transforms (SMT) selectively
— 📨 Configure a dead letter queue to capture and debug errors effectively
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3
Artemiy Kozyr
DATA INGESTION: EVENT TRACKING
📊 I have chosen Snowplow for event tracking
— Real-time event tracking: Capture and process events in real-time.
— Customizable event schema: Define custom event schemas to fit your specific needs.
— Cross-platform tracking: Track events across web, mobile, and server-side applications.
— Scalability: Handle large volumes of data efficiently.
— Open-source: The core technology is open-source, allowing for customization and flexibility.
— Data ownership: Full control and ownership of your data.
— Integration: Integrates with various data warehouses and analytics tools.
— Data enrichment: Enrich raw event data with additional context.
— Alternatively: Jitsu, Rudderstack
Setup hints for Snowplow event tracking
🎯 Only track relevant information
📚 Use schema registry (Iglu or Static)
⚖️ Handle both GOOD and BAD event streams
🏷 Assign App & Tracker information
🐞 Use Snowplow Micro for debugging purposes
🚨 Set up Monitoring and Alerting
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Artemiy Kozyr
How to choose a Data Platform? 🤔
— 📈 Focus on the business needs
— 🛠 Name issues you currently face with
— 📋 Define a list of criteria to compare
— 🧪 Run series of PoC with the short-list
— ✅ Make a decision
— 🔄 Perform a transition
— 📊 Measure success
What to consider? List of criteria
— 🚀 Performance and Scalability
— 🛠 Feature support
— 🔒 Security
— 🛠 Maintenance and Administration
— 🔗 Integrations and Ecosystem
— 💰 Pricing model
I use dbt for Data Modeling and it rocks! 🎸
— 🔄 Modularity: reusable SQL queries
— 🗂 Version Control: integrates with Git
— ✅ Testing: built-in data quality tests
— 📄 Documentation: auto-generates model docs
— 📊 Data Lineage: tracks data flow
— ⏰ Scheduling: runs at specific intervals
— 🔗 Integration: works with Snowflake, BigQuery, Redshift, etc.
— 📝 SQL-based Transformations: accessible to SQL users
— 🌐 Environment Management: supports dev, staging, prod
— 🔌 Extensibility: extend with macros and plugins
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2
Artemiy Kozyr
🛠 Configure reproducible devcontainers
— 🛡 Isolation: Each project has its own environment, avoiding conflicts.
— 🔄 Consistency: Ensures the same setup across different machines.
— 🛠 Pre-configured Tools: Comes with necessary tools and dependencies.
— 📜 Version Control: Environment configuration can be versioned with the project.
— 🌍 Portability: Easily shareable and portable across different systems.
— 🎨 Customization: Fully customizable to fit specific project needs.
— 🔗 Integration: Works seamlessly with VS Code for a smooth development experience.
📡 Signals provide a way to control and interact with Debezium connectors
— ⏸️ Pause/Resume: Temporarily halt and restart connectors.
— 📸 Snapshot Control: Start, stop, or restart snapshots.
— 🔄 Offset Management: Reset or adjust offsets for connectors.
— ⚙️ Configuration Changes: Dynamically update connector configurations.
— 📊 Monitoring: Track and manage connector status and health.
— 🛠 Custom Actions: Define and trigger custom actions for connectors.
🗂 Deduplicating log entries with dbt macro
🔄 Configure CI / CD pipelines
📢 Configure Slack / Telegram alerts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Artemiy Kozyr
Основные секции доклада:
🟡 BUSINESS DELIVERABLES AND OUTCOMES
🔵 DATA INGESTION
🟢 DATA TRANSFORMATION
🟤 DATA OPERATIONS
RESULTS: Solid foundation for AI applications
DATA INGESTION
— ⏱️ Near real-time and event-driven applications using Debezium and Snowplow.
— 🌐 Events supported and tracked amongst web and mobile applications
— 🔗 Third-party vendor dependencies reduced
DATA TRANSFORMATION
— 🛠 Achieving full control over data flow and transformations
— ⏳ Real-time to <1h data availability for most important data marts
— 📄 Self-documenting code, full scope of metadata available
— 🔒 Ensuring complete data ownership
DATA OPERATIONS
— 🛠 Easy and maintainable Data Operations on demand
— 🔄 Scripting repeating actions
— 🖥 Using pre-built devcontainers
🌐 @data_apps | Навигация по каналу
DATA INGESTION
— ⏱️ Near real-time and event-driven applications using Debezium and Snowplow.
— 🌐 Events supported and tracked amongst web and mobile applications
— 🔗 Third-party vendor dependencies reduced
DATA TRANSFORMATION
— 🛠 Achieving full control over data flow and transformations
— ⏳ Real-time to <1h data availability for most important data marts
— 📄 Self-documenting code, full scope of metadata available
— 🔒 Ensuring complete data ownership
DATA OPERATIONS
— 🛠 Easy and maintainable Data Operations on demand
— 🔄 Scripting repeating actions
— 🖥 Using pre-built devcontainers
Please open Telegram to view this post
VIEW IN TELEGRAM
Друзья, мы решили порадовать вас и подготовили небольшой сюрприз! ❄️
В честь Нового года мы вместе с админами дружественных каналов и групп разыгрываем подарки:
• Умная колонка SberBoom Mini
• Подарочный сертификат на 3000 рублей на покупки в издательском доме Питер (включая бестселлеры O'Reilly, печатные и электронные издания)
• USB-лампа для монитора
Для участия в розыгрыше нужно:
1️⃣ Подписаться на каналы:
СБЕР IT Сочи — канал про жизнь самого большого IT-офиса на берегу Чёрного моря
IT Сообщество Сочи — комьюнити людей из всех направлений IT индустрии, которые живут или хотят переехать в Сочи
Data Apps Design — канал, с концентрированной информацией о Data. Препарированный контент, опыт, практика и выводы
2️⃣ Нажать кнопку «Участвую!» под этим постом
🎲 Итоги розыгрыша:
Бот-рандомайзер выберет 3 победителей 10 января в 18:00. Результаты будут в апдейте этого поста, с победителями свяжемся лично ✌🏼
Всем удачи! 🔥
Участников: 321
Призовых мест: 3
Дата розыгрыша: 18:00, 10.01.2025 MSK (завершён)
Победители розыгрыша:
1. -DeMaN- - 280gi5
2. Ярослав Рубе - 22levc
3. Summer Madness - 280ghv
В честь Нового года мы вместе с админами дружественных каналов и групп разыгрываем подарки:
• Умная колонка SberBoom Mini
• Подарочный сертификат на 3000 рублей на покупки в издательском доме Питер (включая бестселлеры O'Reilly, печатные и электронные издания)
• USB-лампа для монитора
Для участия в розыгрыше нужно:
1️⃣ Подписаться на каналы:
СБЕР IT Сочи — канал про жизнь самого большого IT-офиса на берегу Чёрного моря
IT Сообщество Сочи — комьюнити людей из всех направлений IT индустрии, которые живут или хотят переехать в Сочи
Data Apps Design — канал, с концентрированной информацией о Data. Препарированный контент, опыт, практика и выводы
2️⃣ Нажать кнопку «Участвую!» под этим постом
🎲 Итоги розыгрыша:
Бот-рандомайзер выберет 3 победителей 10 января в 18:00. Результаты будут в апдейте этого поста, с победителями свяжемся лично ✌🏼
Всем удачи! 🔥
Участников: 321
Призовых мест: 3
Дата розыгрыша: 18:00, 10.01.2025 MSK (завершён)
Победители розыгрыша:
1. -DeMaN- - 280gi5
2. Ярослав Рубе - 22levc
3. Summer Madness - 280ghv
🔥4👍1🥴1
GiveShareBot - бот для розыгрышей
Друзья, мы решили порадовать вас и подготовили небольшой сюрприз! ❄️ В честь Нового года мы вместе с админами дружественных каналов и групп разыгрываем подарки: • Умная колонка SberBoom Mini • Подарочный сертификат на 3000 рублей на покупки в издательском…
Познакомился с толковыми ребятами из хаба СБЕР IT Сочи, а затем сделали такую коллаборацию.
От меня в рамках розыгрыша будет такой приз:
—
Сегодня я бы выбрал эти книги:
— Разработка приложений на базе GPT-4 и ChatGPT. 2-е изд.
— Продакт-менеджмент на практике
— (у меня есть, но это must have!) Высоконагруженные приложения. Программирование, масштабирование, поддержка изд. 2025
— Apache Kafka. Потоковая обработка и анализ данных, 2-е издание
— Искусственный интеллект и компьютерное зрение. Реальные проекты на Python, Keras и TensorFlow
Участвуйте и выигрывайте!
А сам выступлю в феврале на оффлайн митапе с темой:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12 7
Удалось договориться с лидерами/инфлюенсерами в отрасли и в январе планирую выпустить подкаст с участием:
— Даня Чепенко – synmetrix.org; автор Tg semanticlayer
— Иван Фокеев – founding team Statsbot / Cube.dev; ex-Narrative BI; автор synmetrix.org
— Истоки Cube.dev, история становления
— Аналитические потребности компаний
— Эволюция работы с метриками. Почему вообще возникает проблема которую решает семантический слой
— Тренды в аналитике и BI
— Семантическая модель и BI
— Разница между семантическим слоем и дата-каталогом. Что, нужно в какой последовательности
— Семантичская модель и GenAI / LLM
— Live demo, демонстрация интересных фичей и возможностей
— Кейсы и опыт различных компаний
— Интерактив: вопрос - мнения - дискуссия
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4🎉2
2024 in a Nutshell:
— Осуществил миграцию Redshift to Snowflake
— Стал широко использовать Kafka + Debezium для Data Streaming
— Разработал подход к формированию витрины корпоративных метрик
— Сделал уверенные шаги в сторону использования Cube.dev для Semantic Layer
— Выпустил несколько первых видео на Youtube channel
— Несколько раз выступал на конференциях и делал различные доклады
В 2025 планирую:
— Повысить активность и структурированность постов, идей и мнений
— Сделать 2-4 запуска курсов: Desgining Modern Data Apps; Data Integration with Kafka
— Оформить, описать и предложить своё видение платформы данных на основе лучших в отрасли решений
— Начать формировать команду лидеров, способных трансформировать рынок и реалии
— Прикоснуться к новому и ранее мной неизведанному: Kubernetes, Advanced ML, LLM
Моё пожелание для вас: занимайтесь интересным, мотивирущим и увлекательным делом и любите его.
Создавайте, созидайте, рассказывайте, делитесь, ищите и находите единомышленников. Вместе мы создаем что-то новое, красивое и захватывающее.
—
Ушел на салатики, Артемий 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20🥰8🙏5❤2 1
Привет! Получилось опубликовать запись доклада на YouTube: https://youtu.be/Z5aKQz78Go4
Текстовую выжимку основных идей публиковал ранее:
Этот доклад в принципе отражает часть моей деятельности (не всё) и результаты, которые я получил в ходе нескольких последних лет:
— Как данные создают ценность и позволяют зарабатывать / оптимизировать деятельность / получать конкурентные преимущества
— Откуда брать данные, как их накапливать и делать это эффективно
— Как превращать наборы разрозненных строк в осмысленные датасеты и витрины
— Как удобно и гибко управлять всеми процессами и контролировать точки отказа
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Data Engineering in the AI Era: Building a Robust Foundation for AI Applications | Artemiy Kozyr
Data is the foundational layer for any AI application. In this talk, we will explore ways of building robust data pipelines and employing advanced data modeling techniques:
— Enabling Data Streaming: Transitioning to near real-time and event-driven applications…
— Enabling Data Streaming: Transitioning to near real-time and event-driven applications…
❤6🔥5🏆3👍1
— Clickhouse очень требователен к ресурсам памяти
— Код написан аналитиком, фокус которого - на результате, не на оптимизации и выборе лучшего решения
— В 95% случаев возникает ошибка Out of memory, запрос прерывается, кластер недоступен на 20-30 секунд
Специфика расчета:
— Участвует множество CTE, к некоторым выражениям идет 2+ обращений
— В JOIN участвуют 2 большие таблицы фактов
— Для связи нет единого идентификатора 1:1
— JOIN похож на CROSS JOIN, т.е. на каждое событие клеятся все транзакции (по совпадению клиента)
Логи ошибки
clickhouse-server.err.log:<Fatal> Application: Child process was terminated by signal 9 (KILL). If it is not done by 'forcestop' command or manually, the possible cause is OOM Killer (see 'dmesg' and look at the '/var/log/kern.log' for the details).
— Разбиваем одну dbt-модель на несколько: выполняем расчет поэтапно
— Появляется промежуточная материализация (таблица, на которую ссылаемся несколько раз)
— Пробуем применять фильтры как можно раньше, чтобы было меньше строк
— Конфигурируем физическое хранение данных: PARTITION_BY, ORDER_BY
— Для витрин с нетривиальной логикой в обязательном порядке нужно добавлять документацию, а именно: желаемый результат, описание шагов преобразований, их назначение и порядок. Потому что без нее для любого человека (включая автора) становится трудно понимать, что это за код, зачем он так написан и что должно получиться
— Для любой витрины сначала проработать идею на концептуальном уровне (= написать документацию), и только потом приступать к написанию кода
— Для текущего кода есть более простое и оптимальное решение без множества CTE & JOINs, а именно: поместить данные в одну таблицу (UNION ALL) и пройтись оконными функциями
— Значения констант (для фильтрации) я бы советовал присваивать в заголовке кода модели через Jinja variable set для прозрачности и простоты внесения изменений
— Невозможно (сложно) уследить за каждой моделью dbt / запросом
— На этапе PR review неизвестно, как поведет себя запрос в PROD env (и когда возникнет проблема)
— Впоследствие нет желания оптимизировать / рефакторить каждый запрос по-отдельности
— При этом хочется дать каждому члену команды доступный, универсальный и надежный инструмент вне зависимости от уровня подготовки и понимания специфики расчетов / требований к ресурсам на низком уровне
— В идеале это transient cluster: поднял - посчитал - погасил (оплата только за время расчетов)
— Широкий набор доступных функций и возможностей трансформации
— Желательна максимальная поддержка dbt: наличие адаптера, artifacts, modules
— Интеграция с Kafka Connect (sink)
Кажется, идеально подходят движки Trino / Spark + S3 (Delta / Hudi / Iceberg)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6⚡4 2❤🔥1💯1
Updates + Ideas Sharing за последние несколько недель:
— Установил попробовать 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
Регулярно пишу об этом, и понимаю, что уже стал 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
А далее я продолжил размышлять над тем, чтобы тот же контейнер использовался в качестве окружения для запуска кода в средах TEST и PROD.
— Код гарантированно и с одинаковым результатом работает локально и на сервере / в облаке
— TEST (CI): вы открыли PR - собралась новая версия Image, запустились тесты. Если ОК - вы получили зеленую галочку, PR можно вливать
— PROD (CD): после merge собралась новая версия Image и она публикуется как основная версия приложения (либо для регулярных запусков dbt, например)
Звучит как рай? Или утопия?
Пока это самый удобный и 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 часть закрыта, всё работает как часы, максимум фокуса и усилий на решении бизнес-задач и создании ценности.
Есть идея вынести повторяющиеся части кода / макросы / тесты / функции в отдельный модуль:
— Работа с 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👍3❤2
Artemiy Kozyr
В общем, если вы еще не пользуетесь Development Containers, Github Actions, dbt, Cursor то я настоятельно вам советую попробовать.
😘 А если будет интерес, то могу и провести YouTube stream / tutorial со слайдами и демо (как мы любим).
Всем успехов. Делитесь своими updates💬
Всем успехов. Делитесь своими 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…»