57 lines
4.8 KiB
Markdown
57 lines
4.8 KiB
Markdown
---
|
||
aliases:
|
||
- CDC
|
||
tags:
|
||
- maturity/🌱
|
||
date: 2025-01-13
|
||
---
|
||
**Change Data Capture (CDC)** — это технология для отслеживания изменений в данных [[../../meta/zero/00 Реляционная база данных|базы данных]] (вставка, обновление, удаление) и публикации этих изменений в виде событий для других систем. CDC играет ключевую роль в построении [[Событийно-ориентированная архитектура|событийных архитектур]] и интеграции данных между системами.
|
||
|
||
**Применение CDC**
|
||
- **Миграция данных**. Перенос данных между системами с минимальными простоями.
|
||
- **Событийные системы**. Построение архитектур, где изменения в данных становятся триггерами для выполнения действий.
|
||
- **Аналитика в реальном времени**. Передача данных в системы аналитики (например, ClickHouse, Elasticsearch).
|
||
- **Интеграция приложений**. Связывание разнородных систем через обмен данными.
|
||
|
||
**Преимущества CDC**
|
||
- **Синхронизация данных в реальном времени**. Автоматическое обновление данных между системами.
|
||
- **Снижение нагрузки на базу данных**. Обрабатываются только изменения, а не полные данные.
|
||
- **Поддержка событийной архитектуры**. Преобразует изменения в события, которые могут обрабатываться асинхронно.
|
||
- **Простота интеграции**. Позволяет связывать разные приложения и системы через единый механизм передачи данных.
|
||
|
||
**Основные подходы к реализации CDC**
|
||
- **Журнал транзакций (Transaction Logs)**. Изменения отслеживаются с помощью анализа журнала транзакций базы данных (логов WAL, redo, binlog).
|
||
- **Плюсы**: Высокая производительность, минимальная нагрузка на базу данных.
|
||
- **Минусы**: Требует доступа к журналу транзакций, ограниченная поддержка некоторых баз.
|
||
- **Триггеры в базе данных**. Изменения фиксируются с помощью триггеров, которые вызываются при выполнении операций (вставка, обновление, удаление).
|
||
- **Плюсы**: Простота настройки.
|
||
- **Минусы**: Снижение производительности базы данных, сложность поддержки.
|
||
- **Опрос данных (Polling)**. Система периодически проверяет таблицы базы данных на наличие изменений.
|
||
- **Плюсы**: Простая реализация.
|
||
- **Минусы**: Высокая нагрузка на базу данных, задержки между изменениями и их обработкой.
|
||
|
||
**Инструменты для CDC**
|
||
- **Debezium**
|
||
- Open-source решение для CDC.
|
||
- Поддерживает PostgreSQL, MySQL, MongoDB, Oracle и другие.
|
||
- Интегрируется с Kafka для публикации событий.
|
||
- **Oracle GoldenGate**
|
||
- Коммерческий продукт для CDC.
|
||
- Высокая производительность, поддержка множества СУБД.
|
||
- **Striim**
|
||
- Платформа для потоковой обработки данных с поддержкой CDC.
|
||
- Включает инструменты визуализации и настройки ETL.
|
||
***
|
||
## Мета информация
|
||
**Область**:: [[Архитектурный паттерн]]
|
||
**Родитель**:: [[Интеграция информационных систем|Интеграция информационных систем]]
|
||
**Источник**::
|
||
**Создана**:: [[2025-01-13]]
|
||
**Автор**::
|
||
### Дополнительные материалы
|
||
-
|
||
|
||
### Дочерние заметки
|
||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||
|