Debezium - CDC를 위한 Connector 정리

10 June 2020 · 2 minutes read

Debezium은 변경 데이터 캡처(change data capture, 이하 CDC)를 구현하는 분산 플랫폼이다.

과거에는 데이터베이스의 변경 로그를 내부 구현으로만 가지고 있었기 때문에 사용자는 직접 주기적인 쿼리를 하거나, 비용이 값비싼 트리거와 같은 방식을 이용해야 했다. Debezium을 비롯해 여러 솔루션들은 이러한 방식에서 직접 데이터베이스의 복제 로그를 추적해서 스트림으로 제공하는 방식으로 CDC를 구현하고 있다.

Debezium은 이러한 스트림을 제공하기 위해, Kafka 플랫폼의 엔터프라이즈 솔루션을 제공하는 Confluent사에서 개발한 Kafka Connect의 Connector 구현체로 CDC를 제공한다.

Debezium architecture Debezium Connector는 Kafka Connect 기반으로 동작한다.

공식 문서상 현재 제공되는 Connector는 다음과 같다:

PostgreSQL Connector

이 중 PostgreSQL은 Connector가 처음 구동되면 각 데이터베이스 스키마의 스냅샷을 떠서 저장한 후, 쓰기 전 로그(write-ahead log, 이하 WAL)를 지속적으로 읽어들여변경 사항을 감지한다. 이는 PostgreSQL이 WAL 세그먼트를 일정한 시간 간격으로 퍼지하기 때문에 WAL만으로는 변경 사항의 모든 부분은 알 수 없기 때문이다.

또한 이 Connector를 사용시에는 PostgreSQL의 논리적 디코딩 기능으로 인해 몇 가지 주의사항이 있다:

Updated 10 June 2020