Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
336 - Telegram Web
Telegram Web
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
Debezium Engine (3).pdf
24 MB
Презентация со SmartData 2024

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

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

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

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

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

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

От хайпа до продакшена: DataMesh на Airflow + dbt.
Физический 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
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
🚀 Изучаем 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
How Uber Manages Petabytes of Real-Time Data (en)

В статье описывается, как Uber эффективно обрабатывает телеметрию с миллионов устройств, используя Apache Kafka и Flink для потоковой обработки, и как она поддерживает низкие задержки при высоких объемах данных.
Отдельно описан механизм репликации данных.

https://blog.bytebytego.com/p/how-uber-manages-petabytes-of-real
Гайд по логированию за 12 минут

▫️Вы узнаете, что такое логи, зачем они нужны и как правильно их использовать.
▫️Как настроить логи с помощью библиотек, вместо простого вывода на консоль, чтобы не потерять данные.
▫️Уровни логирования (INFO, DEBUG, ERROR).
▫️Как интегрировать логи с ElasticSearch и использовать их в Spring проектах.

https://youtu.be/KHS8hPh8mtU?si=IIBATXhg3KhsOn4u
2025/06/18 18:54:40
Back to Top
HTML Embed Code: