본문 바로가기
개발/아키텍처

Debezium

by Devsong26 2023. 11. 30.

 

Debezium은 실시간 데이터 변경 데이터 캡처(Change Data Capture, CDC)를 위한 오픈소스 분산 플랫폼입니다. 이는 다양한 데이터베이스의 변경사항을 감지하고 이를 Apache Kafka 토픽으로 전송하는 데 사용됩니다. Debezium은 데이터베이스의 트랜잭션 로그를 모니터링하여 변경사항을 감지하고, 이러한 변경사항(INSERT, UPDATE, DELETE 등)을 실시간으로 Kafka로 스트리밍합니다.

 


Debezium의 주요 특징

  • 실시간 데이터 스트리밍
    • 데이터베이스의 변경사항을 실시간으로 감지하고 Kafka로 전송합니다.
  • 다양한 데이터베이스 지원
    • MySQL, PostgreSQL, MongoDB, Oracle, SQL Server 등 여러 데이터베이스 시스템을 지원합니다.
  • 확장성 및 신뢰성
    • 대규모 분산 시스템에서 확장성과 신뢰성 있는 데이터 스트리밍을 제공합니다.
  • 트랜잭션 로그 기반
    • 데이터베이스의 내부 트랜잭션 로그를 사용하여 변경사항을 감지합니다. 이는 데이터베이스에 부가적인 부하를 최소화합니다.
  • Kafka와의 통합
    • Kafka와 긴밀하게 통합되어 있어, Kafka의 강력한 스트리밍 기능과 결합하여 사용할 수 있습니다.

 


작동 방식

  • Debezium은 데이터베이스의 트랜잭션 로그(예: MySQL의 바이너리 로그, PostgreSQL의 Write-Ahead Log 등)를 모니터링합니다.
  • 데이터베이스에서 삽입, 갱신, 삭제 등의 작업이 발생하면, 이러한 변경사항이 로그에 기록됩니다.
  • Debezium은 이 로그를 읽고 변경사항을 파악하여 Kafka 토픽으로 전송합니다.
  • 이 Kafka 토픽은 다른 시스템이나 애플리케이션에서 소비할 수 있으며, 이를 통해 데이터 동기화, 실시간 분석, 백업 등 다양한 작업을 수행할 수 있습니다.

 

 

사용 사례

  • 데이터 복제 및 동기화
    • 서로 다른 데이터베이스 시스템 간의 데이터를 동기화하거나 복제할 때 사용됩니다.
  • 실시간 분석
    • 데이터베이스의 변경사항을 실시간으로 감지하여 분석 및 모니터링에 활용할 수 있습니다.
  • 이벤트 소싱 및 CQRS
    • 이벤트 소싱과 CQRS(Command Query Responsibility Segregation) 아키텍처를 구현하는 데 활용됩니다.



Debezium은 데이터베이스와 Kafka를 연결하는 강력한 도구로, 대규모 실시간 데이터 처리 및 통합을 위한 효과적인 솔루션을 제공합니다.

'개발 > 아키텍처' 카테고리의 다른 글

Hystrix  (0) 2023.11.30
Kafka Connector  (0) 2023.11.30
CQRS(Command Query Responsibility Segregation)  (0) 2023.11.30
CDC(Change Data Capture)  (0) 2023.11.29
사가 패턴  (0) 2023.11.27