uk
Feedback
Data Engineering / Инженерия данных / Data Engineer / DWH

Data Engineering / Инженерия данных / Data Engineer / DWH

Відкрити в Telegram

Data Engineering: ETL / DWH / Data Pipelines based on Open-Source software. Инженерия данных. ✔ DWH / SQL ✔ Airflow / Python / ETL / dbt / Spark ✔ AI Agents Рекламу не размещаю Вопросы: @iv_shamaev | datatalks.ru

Показати більше
2 689
Підписники
Немає даних24 години
+27 днів
+2130 день
Архів дописів
Data Pipelines with Apache Airflow Orchestration for Data and AI Second Edition 2026 Второе издание (скачено с сайта astronomer бесплатно)

Настроение четверга
Настроение четверга

Обзор Trino vs Starrocks Кажется, что Trino выигрывает по популярности, как единый SQL инструмент под разные источники данных и возможность их объединить (Federated queries). Еще в Трино имеется фича по динамическому расширению воркеров и Velox на C++. На одном из meetup команда Авито говорила, что в Starrocks плохо обстоят дела с ограничениями по ресурсам на query. То есть может случиться, что несколько запросов заберут все ресурсы и кластер может "упасть" (возможно ошибаюсь в пересказе). Может быть уже это пофиксили в новых версиях. В трино похожая ситуация может быть, если включить FTE Task mode, то может закончиться память. Еще в Starrocks при рестарте загружаются заново детальные Iceberg statistics. Пока по обзорам Starrocks выглядит лучше, но вероятно есть детали. Нужно иметь ввиду, что у Trino ОЧЕНЬ много различных настроек и конфигураций. Взять тот же FTE или spills. Поэтому только по одним графикам сложно утверждать однозначно, что Starrocks лучше. Не воспринимайте этот пост как рекомендацию 😇

Как устроена работа 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

Оптимизация запросов в Trino Наковырял из документации основные термины и понятия по Trino (плюс настройки из последней версии 478, которые могут пригодиться для оптимизации). Получился в некотором виде конспект. https://ivan-shamaev.ru/trino-query-optimizer/ Также на днях вышел перевод книги Trino. Анализ больших данных. Первая глава и оглавление доступно для просмотра #trino #iceberg

Если хотели поиграться с trino iceberg и minio, тот вот репозиторий с docker compose настройками. Можно провалиться в кишки таблицы iceberg на s3, ну и посмотреть на логику работы trino в ui. Для развертывания трино необходим новый тип CPU, не везде может запуститься. Но в крайнем случае можно VPS арендовать на время 😉 https://github.com/ivanshamaev/trino-iceberg-minio

Глава 5. Кодирование и Эволюция (Encoding and Evolution) Продолжение перевода книги «Designing Data-Intensive Applications, 2nd Edition»
Статья рассматривает, как различные форматы кодирования данных (JSON, XML, Protocol Buffers, Avro и др.) обеспечивают поддержку эволюции — то есть возможности изменять структуры данных (схемы), сохраняя совместимость между старым и новым кодом. Обсуждаются два вида совместимости: обратная (новый код читает старые данные) и прямая (старый код читает данные, сделанные новым кодом), а также то, как форматы и схемы помогают избежать потери данных при таких изменениях. Также статья показывает, как схемы и кодирование применяются при передачи данных между компонентами (базы данных, RPC, веб-сервисы, события), и какие практики и форматы (например, Avro, вызовы сервисов) подходят для поддержания эволюции в распределённых системах.
https://datatalks.ru/chapter-5-encoding-and-evolution/ #DesigningDataIntensiveApplications

Небольшая статья "Введение в gRPC: Python, proto Protocol Buffers, client и server" с коротким упрощенным примером "gRPC Unary Client <---> Server" на github grpc-protobuf-example Краткий алгоритм "Как начать работать с gRPC": 1. Установить зависимости (grpcio, grpcio-tools) 2. Определить контракт (.proto файл) 3. Сгенерировать код из .proto через grpc_tools.protoc 4. Реализовать сервер 5. Реализовать клиент (вызов RPC) Если вам необходимо интегрироваться с каким-либо сервисом, который поддерживает gRPC, то алгоритм действий следующий: 1. Получить/скачать из репозитория .proto файл 2. Сгенерировать Python-клиентский код из .proto с помощью grpc_tools.protoc 3. Импортировать сгенерированный код в ваш проект 4. Подключиться к gRPC-endpoint через channel 5. Вызывать методы через stub #gRPC #ProtoBuf

Глава 4. Хранение и извлечение Продолжение перевода книги «Designing Data-Intensive Applications, 2nd Edition»
Глава объясняет ключевые отличия между движками хранения, оптимизированными под OLTP (такими как лог‑структурированные, LSM‑деревья и B‑деревья), и OLAP/аналитическими хранилищами, где используются колоночные форматы сжатия, векторной обработкой и материализованными представлениями, чтобы эффективно работать с большими объёмами и аналитическими запросами
https://datatalks.ru/chapter-4-storage-and-retrieval/ #DesigningDataIntensiveApplications

SmartData 2024: Александр Токарев - Пишем свой cluster manager для Apache Spark https://youtu.be/oDuL8-ptFyk?si=VO_QTc7E7S8y-16v

Денис Лукьянов - Data Vault 2.0. Когда внедрять, проблемы применения при построении DWH на GreenPlum https://youtu.be/oGwQbeP5iss?si=HT-W93nX2d6Ig_ZP #DataVault

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

Перевод 7 Главы - Dimensional Modeling (Data Vault 2.0) https://datatalks.ru/chapter-7-data-vault-2-0-dimensional-modeling/ #DataVault #DimensionalModeling

⚡️🔗 Большая подборка 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.me/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

Перевод 6 Главы - Продвинутое моделирование Data Vault 2.0 - Advanced Data Vault Modeling Рассмотрено использование PIT- и Bridge-таблиц https://datatalks.ru/chapter-6-data-vault-advanced-data-vault-modeling/ #DataVault

База по Базам Данных - Storage (Индексы, Paging, LSM, B+-Tree, R-Tree) | Влад Тен Систем Дизайн 0:00 Начало 2:21 DBMS 5:50 Архитектуры DBMS 9:50 Storage 11:55 Paging 15:53 Overflow Page 19:44 Page Header 22:40 VACUUM 24:50 Row/Column oriented DB 29:08 System Catalog 30:10 Buffer Pool 33:10 LRU Cache 35:33 Sequential flood 36:56 Индексы 42:00 Hash индекс 45:10 B Trees 52:47 Bitmap индекс 54:50 Инвертированный индекс 56:29 Embedding 57:53 R Tree 1:04:19 LSM Storage 1:15:25 Bloom Filter 1:22:37 WAL, Manifest Log 1:23:12 Memtable 1:23:50 Skip List 1:28:15 Обобщение 1:30:03 Query Plan 1:31:52 Эквивалентные выражения https://www.youtube.com/watch?v=i-FFVM4cIXQ

Перевод 5 главы из книги "Building a Scalable Data Warehouse with Data Vault 2.0" https://datatalks.ru/data-vault-chapter-5-intermediate-data-vault-modeling/ #Data_Vault_2_0 #DataVault

SmartData 2024: Данил Сабиров (Яндекс GO) - Рецепт платформы потоковой обработки данных на Apache Flink Презентация pdf https://youtu.be/8QyD9dS6sZM?si=vrTtifypQX7u9kxb