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 — это платформа с открытым исходным кодом, которая отслеживает изменения в базах данных в режиме реального времени (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 — CDC для Apache Kafka
В своей работе я часто сталкиваюсь с новыми техническими решениями/программными продуктами, информации о которых в русскоязычном интернете довольно мало. Этой статьей постараюсь восполнить один такой...
Debezium Engine (3).pdf
24 MB
Презентация со SmartData 2024
DebeziumEngine: практическое руководство по использованию
Анастасия Сашина | Java/Kotlin разработчик Т-Банка
DebeziumEngine: практическое руководство по использованию
Анастасия Сашина | Java/Kotlin разработчик Т-Банка
Обзор работы Debezium с PG в режиме логической репликации
https://youtu.be/NlBUSGSFtMQ?si=WySzda3IKAxAYK8I
https://youtu.be/NlBUSGSFtMQ?si=WySzda3IKAxAYK8I
YouTube
Обзор работы Debezium с PG в режиме логической репликации
В данном мы разберем как настраивается коннекторы debezium для PG для работы в режиме логической репликации.
Ссылка на git репозитарий https://github.com/biwed/dp--review
00:00 Вступление
02:35 Обзор Docker compose файла
04:27 Настройка потоковой репликации…
Ссылка на git репозитарий https://github.com/biwed/dp--review
00:00 Вступление
02:35 Обзор Docker compose файла
04:27 Настройка потоковой репликации…
Linux: настройка мониторинга за 15 минут с помощью Grafana и Prometheus
https://www.youtube.com/watch?v=X_g-eJqiiLo
https://www.youtube.com/watch?v=X_g-eJqiiLo
YouTube
Linux: настройка мониторинга за 15 минут с помощью Grafana и Prometheus
В этом видео показывается, как организовать мониторинг сервера/компьютера на операционной системе Linux с помощью Grafana, Prometheus и Node Exporter
Репозиторий: https://git.digitalstudium.com/digitalstudium/grafana-docker-stack
Этот же мониторинг + настройка…
Репозиторий: https://git.digitalstudium.com/digitalstudium/grafana-docker-stack
Этот же мониторинг + настройка…
Автоматизация обеспечения качества кода на языке Python
В первой части статьи обсуждаются концепции качества кода и его важность, во второй — предложено пошаговое руководство по настройке линтинга, форматирования и проверки типов с помощью инструментов, таких как flake8 и Black, что помогает ускорить процессы разработки и избежать ошибок на ранних этапах.
https://habr.com/ru/companies/otus/articles/750214/
В первой части статьи обсуждаются концепции качества кода и его важность, во второй — предложено пошаговое руководство по настройке линтинга, форматирования и проверки типов с помощью инструментов, таких как flake8 и Black, что помогает ускорить процессы разработки и избежать ошибок на ранних этапах.
https://habr.com/ru/companies/otus/articles/750214/
Хабр
Автоматизация обеспечения качества кода на языке Python
Далее в статье я поясню, что я понимаю под термином «качество кода» и какую пользу оно приносит разработчикам. В первой половине статьи я раскрою общие концепции и рабочие процессы, применимые к...
Наткнулся на аккаунт https://github.com/kzzzr. Советую глянуть все репозитории. Выделю некоторые:
DWH powered by Clickhouse and dbt
Курс Analytics Engineer
Data Vault powered by dbtVault and Greenplum
Data Vault 2.0: Code generation, Vertica, Airflow
Статья на Habr "Строим Data Vault на данных TPC-H – Greenplum + dbtVault"
DWH powered by Clickhouse and dbt
Курс Analytics Engineer
Data Vault powered by dbtVault and Greenplum
Data Vault 2.0: Code generation, Vertica, Airflow
Статья на Habr "Строим Data Vault на данных TPC-H – Greenplum + dbtVault"
GitHub
kzzzr - Overview
Building reliable, cost effective and elegant Data Solutions - kzzzr
SmartData2024_Data_Vault_2.0.pdf
1.9 MB
Презентация со SmartData 2024: Data Vault 2.0
В каких случаях внедрять, разбор основных проблем применения методологии при построении DWH на Greenplum.
Денис Лукьянов
Руководитель направления архитектуры данных
В каких случаях внедрять, разбор основных проблем применения методологии при построении DWH на Greenplum.
Денис Лукьянов
Руководитель направления архитектуры данных
SmartData_2024_dbt_data_mesh_airflow.pdf
8.4 MB
Презентация со SmartData 2024: Data Mesh / dbt / Airflow
От хайпа до продакшена: DataMesh на Airflow + dbt.
От хайпа до продакшена: DataMesh на Airflow + dbt.
SmartData 2023: dbt — ядро современной платформы данных
https://youtu.be/u8LkCBVKKus?si=AOebDOfm28T2n3AF
https://youtu.be/u8LkCBVKKus?si=AOebDOfm28T2n3AF
YouTube
Евгений Ермаков — dbt — ядро современной платформы данных
Подробнее о конференции SmartData: https://jrg.su/aTWU2K
— —
dbt — один из самых быстро набирающих популярность инструментов в сфере построения платформ и хранилищ данных. Сочетание простоты и функциональности этого инструмента подкупила и команду Toloka.ai…
— —
dbt — один из самых быстро набирающих популярность инструментов в сфере построения платформ и хранилищ данных. Сочетание простоты и функциональности этого инструмента подкупила и команду Toloka.ai…
smartdata_2023_dbt.pdf
20.3 MB
Презентация к видео 👆
dbt Mesh: Powering Data Mesh — The Ultimate Guide | by Alice Bui | Joon Solutions Global | Medium
https://medium.com/refined-and-refactored/dbt-mesh-powering-the-data-mesh-the-ultimate-guide-a721ab78d008
https://medium.com/refined-and-refactored/dbt-mesh-powering-the-data-mesh-the-ultimate-guide-a721ab78d008
Medium
dbt Mesh: Powering Data Mesh — The Ultimate Guide
While dbt is a powerful tool for data transformation, dbt Mesh unlocks its full potential within the Data Mesh architecture. This…
Физический 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
В процессе выполнения запросов SQL важным моментом является физическое соединение (Physical Join) таблиц. Это фундаментальная операция, когда данные из двух источников объединяются на уровне строк.
В этом посте обсудим три основных алгоритма физического JOIN таблиц в SQL.
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
Заметки IT специалиста
Типы физического соединения таблиц в Microsoft SQL Server. Описание Nested Loops, Merge и Hash Match | Info-Comp.ru - IT-блог для…
Из данного материала Вы узнаете, как происходит соединение таблиц в Microsoft SQL Server на физическом уровне, т.е. с помощью каких алгоритмов. Мы рассмотрим такие типы соединения как: Nested Loops, Merge и Hash Match
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 at Any Scale, on Any Storage, in Any Environment
Trino — это распределённый SQL-движок для выполнения аналитических запросов на больших объёмах данных. Он позволяет выполнять запросы к данным, хранящимся в различных источниках, таких как базы данных, хранилища данных и файловые системы, без необходимости перемещать данные. Trino поддерживает стандарты ANSI SQL и широко используется для высокопроизводительной аналитики, позволяя объединять данные из различных систем в одном запросе.
#trino
Yandex Cup - регистрация до 20 октября
https://yandex.ru/cup/
Есть направления по Алгоритмам и Аналитике.
https://yandex.ru/cup/
Есть направления по Алгоритмам и Аналитике.
Yandex Cup — чемпионат по программированию
Попробуйте свои силы в решении нестандартных задач
🚀 Изучаем 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
Индексы в базах данных — это структуры, которые помогают ускорить поиск и извлечение данных.
Вот основные типы индексов:
✓ 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
Work Solutions
Влияние индексов БД на производительность выборки данных
Зачем нужны индексы в таблицах БД — Блог Work Solutions
How Uber Manages Petabytes of Real-Time Data (en)
В статье описывается, как Uber эффективно обрабатывает телеметрию с миллионов устройств, используя Apache Kafka и Flink для потоковой обработки, и как она поддерживает низкие задержки при высоких объемах данных.
Отдельно описан механизм репликации данных.
https://blog.bytebytego.com/p/how-uber-manages-petabytes-of-real
В статье описывается, как Uber эффективно обрабатывает телеметрию с миллионов устройств, используя Apache Kafka и Flink для потоковой обработки, и как она поддерживает низкие задержки при высоких объемах данных.
Отдельно описан механизм репликации данных.
https://blog.bytebytego.com/p/how-uber-manages-petabytes-of-real
Bytebytego
How Uber Manages Petabytes of Real-Time Data
Stop renting auth.
Гайд по логированию за 12 минут
▫️Вы узнаете, что такое логи, зачем они нужны и как правильно их использовать.
▫️Как настроить логи с помощью библиотек, вместо простого вывода на консоль, чтобы не потерять данные.
▫️Уровни логирования (INFO, DEBUG, ERROR).
▫️Как интегрировать логи с ElasticSearch и использовать их в Spring проектах.
https://youtu.be/KHS8hPh8mtU?si=IIBATXhg3KhsOn4u
▫️Вы узнаете, что такое логи, зачем они нужны и как правильно их использовать.
▫️Как настроить логи с помощью библиотек, вместо простого вывода на консоль, чтобы не потерять данные.
▫️Уровни логирования (INFO, DEBUG, ERROR).
▫️Как интегрировать логи с ElasticSearch и использовать их в Spring проектах.
https://youtu.be/KHS8hPh8mtU?si=IIBATXhg3KhsOn4u
YouTube
Лучший Гайд по Логированию За 12 Минут
ШПАРГАЛКА ПО ЛОГИРОВАНИЮ УЖЕ ДОСТУПНА В БИБЛИОТЕКЕ JAVA JUNIOR: https://www.faang.school/java-junior-library?utm_source=youtube_video&utm_medium=organic&utm_campaign=library-java-junior&utm_content=video-65
Вы узнаете, что такое логи, зачем они нужны и как…
Вы узнаете, что такое логи, зачем они нужны и как…