Files
digital-garden/dev/architecture/Change Data Capture.md
2025-01-17 15:29:17 +03:00

57 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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) -->