03. MicroService(Outer)

데이터베이스의 CDC(Change Data Capture)를 위한 오픈 소스

카이저일공 2024. 1. 18. 20:38
Debezium을 활용한 데이터베이스 변경 데이터 캡처

Debezium을 활용한 데이터베이스 변경 데이터 캡처

가. Debezium 사용 시나리오

  • 실시간 데이터 동기화: 다양한 데이터베이스 시스템 간의 데이터를 실시간으로 동기화하여, 정보의 일관성과 신뢰성을 유지합니다.
  • 마이크로서비스 아키텍처: 마이크로서비스 간의 데이터 일관성을 보장하고, 서비스 간의 독립성을 강화합니다.
  • 데이터 레이크: 데이터베이스의 변경 사항을 데이터 레이크로 스트리밍하여 실시간 분석 및 보고서 작성에 활용합니다.
  • CQRS: 명령과 쿼리 책임을 분리하고, 쿼리 모델을 최신 상태로 유지하여 데이터 접근성과 효율성을 높입니다.
  • 감사 및 로깅: 데이터베이스의 모든 변경 사항을 추적하여 감사와 로깅 목적으로 활용합니다.
  • CEP: 복잡한 이벤트 처리를 위해 실시간 데이터 스트림을 분석하고, 즉각적인 의사결정을 지원합니다.
  • Zero-Downtime Migration: 기존 데이터베이스 시스템을 새로운 시스템으로 마이그레이션하는 동안 서비스 중단 없이 데이터를 동기화합니다.

나. Debezium 사용 예

  • 데이터베이스 변경 사항을 Kafka 토픽으로 스트리밍하여, 다양한 컨슈머가 이를 구독하고 활용할 수 있게 합니다.
  • 데이터베이스 변경 사항을 Elasticsearch 인덱스로 스트리밍하여, 실시간 검색 및 분석 기능을 강화합니다.
  • 데이터베이스 변경 사항을 Azure Databricks로 스트리밍하여, 빅 데이터 처리 및 분석에 활용합니다.

다. Debezium 지원 데이터베이스

  • MySQL, PostgreSQL, Oracle, Microsoft SQL Server: 관계형 데이터베이스 시스템에서의 광범위한 지원을 제공합니다.
  • CockroachDB, MongoDB, MariaDB, TimescaleDB: 다양한 NoSQL 및 시계열 데이터베이스 시스템에서도 효과적인 데이터 캡처를 지원합니다.

라. Debezium의 장단점

1. 장점

  • 실시간 데이터 변경 추적: 데이터베이스의 모든 변경 사항을 실시간으로 추적하고, 이를 다양한 시스템과 통합할 수 있는 강력한 기능을 제공합니다.
  • 다양한 데이터베이스 지원: 널리 사용되는 여러 데이터베이스 시스템에 대한 지원을 통해 광범위한 적용 범위를 가집니다.

2. 단점

  • 데이터베이스 변경 사항 로그 필요: Debezium은 데이터베이스의 변경 로그를 사용하여 작동하므로, 로그 설정 및 관리가 필수적입니다.
  • 높은 CPU 및 메모리 사용 가능성: 많은 양의 데이터 변경 사항을 추적하고 처리하는 과정에서 CPU 및 메모리 사용량이 증가할 수 있습니다.

Debezium은 다양한 데이터베이스의 변경 데이터를 실시간으로 캡처하고 다른 시스템과 통합하는 강력한 도구로, 다양한 데이터 통합 및 스트리밍 요구 사항에 유연하게 사용될 수 있습니다.