Data Engineering / Инженерия данных / Data Engineer / DWH
1.92K subscribers
49 photos
7 videos
52 files
349 links
Data Engineering: ETL / DWH / Data Pipelines based on Open-Source software. Инженерия данных.

DWH / SQL
Python / ETL / ELT / dbt / Spark
Apache Airflow

Рекламу не размещаю
Вопросы: @iv_shamaev | datatalks.ru
Download Telegram
Building a Scalable Data Warehouse with Data Vault 2.0 (English) PDF

Data Vault был изобретен Дэном Линстедтом в Министерстве обороны США, и этот стандарт успешно применялся к проектам по хранению данных в организациях разных размеров, от малых до крупных корпораций. Благодаря своей упрощенной конструкции, стандарт Data Vault 2.0 помогает предотвратить типичные сбои в хранении данных.

Книга «Building a Scalable Data Warehouse with Data Vault 2.0» охватывает все, что нужно знать для создания масштабируемого хранилища данных от начала до конца, включая презентацию метода моделирования Data Vault, который обеспечивает основу для создания технического уровня хранилища данных. В книге обсуждается, как построить хранилище данных постепенно, используя гибкую методологию Data Vault 2.0. Кроме того, читатели узнают, как создать входной уровень (stage layer) и уровень представления (presentation layer - data mart) архитектуры Data Vault 2.0, включая лучшие практики внедрения.

Опираясь на многолетний практический опыт и используя многочисленные примеры и простую для понимания структуру, Дэн Линстедт и Майкл Олшимке обсуждают:
📌 Как загружать каждый слой с помощью SQL Server Integration Services (SSIS), включая автоматизацию процессов загрузки Data Vault
📌 Важные технологии и практики хранилища данных
📌 Data Quality Services (DQS) и Master Data Services (MDS) в контексте архитектуры Data Vault
📌 Книга предоставляет полное введение в хранилище данных, приложения и бизнес-контекст, чтобы читатели могли быстро приступить к работе
📌 Объясняет теоретические концепции и предоставляет практические инструкции по созданию и внедрению хранилища данных
📌 Поясняет моделирование хранилища данных с помощью начальных, средних и продвинутых методов
📌 Обсуждает преимущества подхода хранилища данных по сравнению с другими методами, включая также последние обновления Data Vault 2.0 и многочисленные улучшения Data Vault 1.0
👍3
Streaming_Data_Mesh.pdf
6.3 MB
Озера и хранилища данных становятся все более хрупкими, дорогостоящими и сложными в обслуживании по мере увеличения объема данных и ускорения их движения. Сетки данных могут помочь вашей организации децентрализовать данные, вернув право собственности на них инженерам, которые их создали. В этой книге представлен краткий, но исчерпывающий обзор моделей ячеек данных для служб потоковых данных и данных реального времени.
👍8
Алгоритмы. С примерами на Python 2023.pdf
33.1 MB
Алгосы с примерами на Python из 2023 🤪

Качай, читай, на собесах применяй😉
👍5🔥1
CDC и Debezium

Debezium — это платформа с открытым исходным кодом, которая отслеживает изменения в базах данных в режиме реального времени (CDC, Change Data Capture).

Она позволяет захватывать изменения (вставки, обновления, удаления) из транзакционных журналов баз данных, таких как MySQL, PostgreSQL, SQL Server и других, и передавать их в системы обработки данных, например Apache Kafka.

Debezium используется для синхронизации данных между различными системами, построения real-time аналитики и миграции данных.

~ Статьи по теме ~

Знакомство с Debezium — CDC для Apache Kafka / Habr

CDC на примитивах

Change Data Capture (CDC) в Yandex Data Transfer: гид по технологии с примерами

Особенности проекта Debezium для решения задачи миграции баз данных

Change Data Capture, with Debezium

Change Data Capture (CDC) with PostgreSQL and ClickHouse - Part 1

Change Data Capture (CDC) with PostgreSQL and ClickHouse - Part 2

~~~

#cdc #debezium
🔥7
Debezium Engine (3).pdf
24 MB
Презентация со SmartData 2024

DebeziumEngine: практическое руководство по использованию

Анастасия Сашина | Java/Kotlin разработчик Т-Банка
🔥5
Автоматизация обеспечения качества кода на языке Python

В первой части статьи обсуждаются концепции качества кода и его важность, во второй — предложено пошаговое руководство по настройке линтинга, форматирования и проверки типов с помощью инструментов, таких как flake8 и Black, что помогает ускорить процессы разработки и избежать ошибок на ранних этапах.

https://habr.com/ru/companies/otus/articles/750214/
1
SmartData2024_Data_Vault_2.0.pdf
1.9 MB
Презентация со SmartData 2024: Data Vault 2.0

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

Денис Лукьянов
Руководитель направления архитектуры данных
👍81
SmartData_2024_dbt_data_mesh_airflow.pdf
8.4 MB
Презентация со SmartData 2024: Data Mesh / dbt / Airflow

От хайпа до продакшена: DataMesh на Airflow + dbt.
👍3
Физический JOIN в SQL: Как это работает?

В процессе выполнения запросов SQL важным моментом является физическое соединение (Physical Join) таблиц. Это фундаментальная операция, когда данные из двух источников объединяются на уровне строк.
В этом посте обсудим три основных алгоритма физического JOIN таблиц в SQL.

В статье по первой ссылке очень хорошие gif, отлично поясняющие работу каждого JOIN.

Nested Loop Join:
Используется, когда одна таблица небольшая, а вторая более крупная. SQL Server пробегает по каждой строке одной таблицы и ищет соответствующие строки во второй. Эффективно при небольших наборах данных и наличии индексов.

Сложность O(NlogM)
✓ Обычно используется, когда одна таблица значительно мала.
✓ Большая таблица имеет индекс, который позволяет искать ее с помощью ключа соединения.

Merge Join:
Этот метод требует предварительной сортировки обеих таблиц по полю соединения. Если данные уже отсортированы, такой join работает очень быстро, так как просто последовательно проходит по строкам обеих таблиц. Отлично подходит для больших таблиц с отсортированными данными.

Сложность O(N+M)
✓ Обе таблицы данных отсортированы по ключу соединения.
✓ Используется оператор равенства.
✓ Отлично подходит для очень больших таблиц.

Hash Join:
Подходит для ситуаций, когда таблицы не отсортированы и содержат большой объем данных. SQL Server создает хэш-таблицу для одной из таблиц, затем сравнивает строки другой таблицы с хэш-таблицей. Это один из самых мощных методов для работы с большими объемами данных.

Сложность O(N+M), если игнорировать затраты на потребление ресурсов. Требует подготовительных действий надо построить хэш-таблицу.
✓ При соединении хешированием строки одного набора помещаются в хеш-таблицу, содержащуюся в памяти, а строки из второго набора перебираются, и для каждой из них проверяется наличие соответствующих строк в хеш-таблице.
✓ Ключом хеш-таблицы является тот столбец, по которому выполняется соединение наборов строк.
✓ Как правило, число строк в том наборе, на основе которого строится хеш-таблица, меньше, чем во втором наборе.
✓ Более высокая стоимость в плане потребления памяти и использования дискового ввода-вывода.

Подборка статей и видео по теме физического JOIN:

📌 Статья: Типы физического соединения таблиц в Microsoft SQL Server. Описание Nested Loops, Merge и Hash Match
📌 YouTube: 30.1. Планы выполнения запросов. Физические соединения: nested loop, merge join, hash join. Индексы
📌 YouTube: 30.2. Планы выполнения запросов. Физические соединения: nested loop, merge join, hash join. Индексы
📌 YouTube: #mergejoin #hashjoin #nestedloopjoin Алгоритмы объединения таблиц
📌 YouTube: Физические операторы соединений SQL Server. Разработчик MS SQL ч.5
📌 Статья ENG: Python & Data Engineering: Under the Hood of Join Operators

💡Правильный выбор физического оператора соединения — ключ к оптимизации производительности запросов!

#SQLServer #DataEngineering #PhysicalJoin #NestedLoop #MergeJoin #HashJoin
🔥81👍1
Trino - The Definitive Guide 2023.pdf
4.8 MB
Trino - The Definitive Guide 2023 Second Edition.pdf
SQL at Any Scale, on Any Storage, in Any Environment

Trino — это распределённый SQL-движок для выполнения аналитических запросов на больших объёмах данных. Он позволяет выполнять запросы к данным, хранящимся в различных источниках, таких как базы данных, хранилища данных и файловые системы, без необходимости перемещать данные. Trino поддерживает стандарты ANSI SQL и широко используется для высокопроизводительной аналитики, позволяя объединять данные из различных систем в одном запросе.

#trino
🔥81
🚀 Изучаем SQL индексы!

Индексы в базах данных — это структуры, которые помогают ускорить поиск и извлечение данных.

Вот основные типы индексов:
B-Tree индексы: Наиболее распространённый тип индексов. Используется для диапазонного поиска и поддерживает сортировку данных. Работает по принципу сбалансированного дерева.
Hash индексы: Используются для быстрого поиска по точному совпадению. Не поддерживают диапазонные запросы, но могут быть очень быстрыми для конкретных значений.
GiST (Generalized Search Tree): Позволяет создавать индексы для сложных типов данных, таких как географические данные. Поддерживает множество операций поиска.
GIN (Generalized Inverted Index): Эффективен для индексации массивов и полнотекстового поиска. Использует инвертированный индекс, что делает его подходящим для текстовых данных.
Кластеризованные индексы: Определяют физический порядок хранения данных в таблице. То есть физически сортирует строки таблицы в соответствии с индексом. Обычно создаются на первичном ключе и позволяют значительно ускорить чтение данных.
Некластеризованный индекс (Nonclustered): Создаются отдельно от основной таблицы и содержат указатели на строки данных. Позволяют создавать несколько индексов для одной таблицы.
Составные индексы: Индексы, которые включают несколько колонок таблицы. Полезны для запросов, которые фильтруют данные по нескольким полям.


В этом посте собраны полезные статьи и видео на YouTube о SQL индексах, которые помогут вам разобраться в этой важной теме:

📌 Статья: Влияние индексов БД на производительность выборки данных
📌 Статья: Обслуживание индексов MS SQL Server: как, когда и, главное, зачем?
📌 YouTube: Что такое SQL ИНДЕКСЫ за 10 минут: Объяснение с примерами
📌 YouTube: ИНДЕКСЫ В БАЗАХ ДАННЫХ. СОБЕС В OZON.
📌 YouTube: Как устроен B-TREE индекс в базах данных
📌 YouTube: EXPLAIN в базах данных за 10 минут
📌 YouTube: Андрей Сальников — Индексы в PostgreSQL. Как понять, что создавать
📌 YouTube: Оптимизация запросов с помощью индексов
📌 Статья: 14 вопросов об индексах в SQL Server, которые вы стеснялись задать

#Индексы #btree #hashindex #index
🔥3👍1