Data Engineering / reposts & drafts
35 subscribers
227 photos
22 videos
40 files
557 links
Download Telegram
Пример создания DWH по Kimball с применением dbt

Build a Data Warehouse with dbt using Kimball’s dimensional modeling | by Haq Nawaz | Dev Genius
https://blog.devgenius.io/build-a-data-warehouse-with-dbt-using-kimballs-dimensional-modeling-59ea9bfae59f

GitHub: dbt build a datawarehouse using dimensional modeling
https://github.com/hnawaz007/dbt-dw
Перевод 3 Главы - Методология Data Vault 2.0

Подробное описание методологии Data Vault 2.0, больше с точки зрения управления проектами.

https://datatalks.ru/chapter-3-data-vault-2-0-methodology/

#DataVault
Перевод 4 Главы - Моделирование Data Vault 2.0

В этой главе рассматриваются сущности, используемые в моделировании Data Vault, включая хабы (Hubs), линки/связи (Links) и сателлиты (Satellites). Показано, как идентифицировать бизнес-ключи в исходных данных и связывать их с другими бизнес-ключами в Data Vault с помощью линк-сущностей. Также рассмотрено, как выделять дополнительные атрибуты из исходных данных и моделировать их в виде сателлитных сущностей.

https://datatalks.ru/chapter-4-data-vault-2-0-modeling/

#DataVault
Введение в Apache Iceberg. Основы, архитектура, как работает?

Накидал базовую статейку по айсбергу. Часть материала - конспект из книги "Apache Iceberg Полное руководство" - всем, кто планирует работать с этой технологией, советую прочитать.

https://ivan-shamaev.ru/apache-iceberg-tutorial-architecture-how-to-work/

#iceberg #trino #parquet #lakehouse
💯2
⚡️🔗 Большая подборка GitHub проектов с Data Vault примерами и тулзами

1️⃣ Datavault-UK/automate-dv: A free to use dbt package for creating and loading Data Vault 2.0 compliant Data Warehouses.
👉🏻 https://github.com/Datavault-UK/automate-dv - Инструмент
👉🏻 https://github.com/Datavault-UK/automate-dv-demo - An example dbt project using AutomateDV to create a Data Vault 2.0 Data Warehouse based on the Snowflake TPC-H dataset.
👉🏻 https://automate-dv.readthedocs.io/en/latest/ - описание dbt package.

2️⃣ CarlTimms/Data-Vault-Example-Northwind: An example Data Vault 2.0 data warehouse modelling Microsoft's Northwind sample database.
👉🏻 https://github.com/CarlTimms/Data-Vault-Example-Northwind

3️⃣ ScalefreeCOM/datavault4dbt: Scalefree's dbt package for a Data Vault 2.0 implementation congruent to the original Data Vault 2.0 definition by Dan Linstedt including the Staging Area, DV2.0 main entities, PITs and Snapshot Tables.
👉🏻 https://github.com/ScalefreeCOM/datavault4dbt

4️⃣ Brezencat/dwh-data-vault: Построение DWH по методологии Data Vault (с модификациями).
👉🏻 https://github.com/Brezencat/dwh-data-vault

5️⃣ nshcode/data-vault-modeling: The repository contains the SQL scripts for creating a Data Vault model for a PostgreSQL demo database
👉🏻 https://github.com/nshcode/data-vault-modeling

6️⃣ gtoonstra/etl-with-airflow: Здесь есть пример автоматизации Data Vault 2.0 на Airflow + dbt
👉🏻 https://github.com/gtoonstra/etl-with-airflow

7️⃣ 👉🏻 https://t.iss.one/data_engineer_path/322 - ссылка на пост с DataVault репозиторием и другими материалами.

8️⃣ fang360/data-vault: This project is designed to store data from 2 different studies with python and PostgreSQL.
👉🏻 https://github.com/fang360/data-vault

9️⃣ MarinaZenkova/DataVault: Docker-compose to build a Data Vault from Adventureworks
👉🏻 https://github.com/MarinaZenkova/DataVault

1️⃣0️⃣ infinitelambda/dq-vault: Data Quality Observation of Data Vault layer
👉🏻 https://github.com/infinitelambda/dq-vault

1️⃣1️⃣ AdventureWorks/DataVault/DanLinstedt: ddl, sql, ER diagram
👉🏻 https://github.com/cjheath/AdventureWorks/tree/master/DataVault/DanLinstedt

1️⃣2️⃣ cimt-ag/data_vault_pipelinedescription: A concept and syntax to provide a universal data format, for storing all essential informations, that are needed to implement or generate a data loading process for a data vault model.
👉🏻 https://github.com/cimt-ag/data_vault_pipelinedescription

🏁 Ну и напоследок, полезная библиотечка datnguye/dbterd, которая позволяет генерировать ERD as a code из dbt проектов

🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸
#DataVault
Channel: @data_engineer_path
👍1🔥1😍1
How we built fast UPDATEs for the ClickHouse column store

▫️Part 1: Purpose-built engines

▫️Part 2: SQL-style UPDATEs

В первой части автор Том Шрайбер поясняет, как ClickHouse обходится без традиционного обновления строк, превращая UPDATE/DELETE в вставки с помощью специальных движков вроде ReplacingMergeTree, CollapsingMergeTree и др., которые позднее сливаются фоновым процессом, обеспечивая высокую скорость и масштабируемость на аналитических нагрузках. Это решение позволило объединить эффективность вставок и возможность правки данных без ущерба для быстрого чтения.

Вторая статья рассказывает о новой архитектуре патч‑партиций (patch parts), благодаря которым ClickHouse наконец поддерживает классический синтаксис UPDATE … WHERE, но без затрат на перестройку колонок: патч‑партиции содержат только изменённые значения и сливаются в фоновом режиме, обеспечивая мгновенную видимость изменений и высокую производительность. Автор подробно описывает эволюцию от тяжёлых мутаций до экономных, декларативных обновлений на основе SQL, вдохновлённых механизмами MergeTree.

#ClickHouse
2👏1
Оптимизация запросов в Trino

Наковырял из документации основные термины и понятия по Trino (плюс настройки из последней версии 478, которые могут пригодиться для оптимизации). Получился в некотором виде конспект.

https://ivan-shamaev.ru/trino-query-optimizer/

Также на днях вышел перевод книги Trino. Анализ больших данных.

Первая глава и оглавление доступны для просмотра

#trino #iceberg
👏2💯211👍1😍1
Как устроена работа Iceberg на примере Trino и Rest Catalog?

Iceberg - это табличный формат хранения данных в datalake, который управляется через библиотеку на Java (есть также реализации на Go, Rust, C++ и Python). Но базово работает через Java.
В статье кратко рассматривается как устроено Trino и как устроен Iceberg Java API (без погружения в разработку).

Ну и ссылочки на deepwiki по Iceberg/Trino/Rest Catalog.

https://ivan-shamaev.ru/how-iceberg-works-using-trino-and-rest-catalog/

#Trino #Iceberg #RestCatalog #Java
🔥2💯211👍1
Forwarded from rzv Data Engineering
Как я коммитил в Open-source или опыт затаскивания сырой библиотеки на проект 1/2

🔸 Для учебного проекта на менторстве строю свою небольшую платформу данных. Там пересекаются задачи Dev Ops, Data Engineering, Project Management, и нужно много инструментов связать между собой.

Двумя недавними задачами было интегрировать dbt core с Airflow и развернуть multi-project UI для документации (аналог dbt docs serve). Прошерстил github, stackoverflow и reddit, нашёл упоминание нового пакета memiiso/opendbt -- как раз вроде всё есть, что мне нужно, и интеграции выглядят всего лишь в пару строчек. Ещё и обновлённый дата каталог есть по кнопке из Airflow UI -- красота https://memiiso.github.io/opendbt/opendbtdocs/ .

Интуиция и опыт подсказывали, что ~150 звёзд это лотерея и стоит ограничить время на эксперименты, но душа желала приключений. И вот как они прошли.

🔸 Вначале оказалось, что документация не обновлена и следование Tutorial ведёт к багу. Исправил у себя и решил сделать свой небольшой вклад в перспективный проект. Pull Request приняли быстро и с благодарностью, что подогрело моё желание по возможности поддержать проект временем.

Затем оказалось, что красивый UI каталог нужно вручную подкладывать в папку взамен index.html по результатам dbt docs generate. И то, чем автор пакета хвалится, нельзя использовать “из коробки”. Покрутил вместе с claude code agent, докинул недостающую команду opendbt docs generate, описал в доке и сделал PR. Его тоже быстро приняли.

🔸 А потом выяснилось то, почему решил написать этот пост. Следующие фичи, заявленные в Readme, не работают вместе:
⁃ user-friendly data catalog
⁃ running multiple projects

То есть вы можете использовать несколько проектов, но в UI мы их вам не покажем. И тут я совершил большую ошибку — подумал “нужно всего лишь добавить выпадающий список для выбора проектов”. Что могло пойти не так?)
😍211👍1🔥1👏1