LLM WikiAccess-protected knowledge portal
← 스터디 홈
78편 · 약 14분

Debezium 3.7 프리뷰: CockroachDB 직접 CDC·Ingres 커넥터·PyDebeziumAI 벡터 DB 동기화가 여는 경계

Debezium 3.6을 넘어서

Debezium 3.6은 Kafka 없이 직접 사용하는 Debezium Engine을 안정화하고, JDBC Sink를 여러 데이터베이스로 확장하는 데 집중했다. 2026년 7월 30일 공개된 Debezium 3.7.0.Alpha1은 세 가지 방향에서 그 경계를 더 밀어낸다.

  1. CockroachDB 직접 CDC: Kafka 토픽 없이 SQL 커넥션 위에서 변경 이벤트를 스트리밍한다.
  2. 신규 인큐베이팅 커넥터: Ingres와 YashanDB를 지원 범위에 추가한다.
  3. PyDebeziumAI: CDC 이벤트를 벡터 DB(Chroma, PGVector, Milvus)에 직접 동기화하는 Python 통합 레이어가 인큐베이팅에 진입했다.

이 릴리스는 알파(Alpha)다. 프로덕션 적용 전에 안정성을 충분히 검증해야 한다.


CockroachDB 직접 CDC: Kafka 없는 변경 스트리밍

Before — Kafka 경유 CockroachDB Core Changefeed Kafka 토픽 필요 Debezium Kafka Connect Sink Kafka 클러스터 운영 부담 After — 직접 스트리밍 CockroachDB Sinkless Changefeed Debezium CockroachDB Connector Sink (JDBC 등) SQL 커넥션만으로 동작 Kafka 클러스터 불필요 INTO 절 없는 CREATE CHANGEFEED
CockroachDB CDC 아키텍처 비교 — Before (Kafka 경유) vs After (직접 스트리밍)

CockroachDB는 내부적으로 Core Changefeed라는 CDC 메커니즘을 갖고 있다. 기존에는 CREATE CHANGEFEED FOR TABLE orders INTO 'kafka://...' 형태로 Kafka 토픽에 써야 했다.

Sinkless ChangefeedINTO 절을 생략한다.

CREATE CHANGEFEED FOR TABLE orders;

이렇게 하면 변경 이벤트가 Kafka가 아닌 SQL 커넥션 위에서 직접 스트리밍된다. Debezium 3.7.0.Alpha1의 CockroachDB 커넥터는 이 Sinkless Changefeed를 기반으로 동작한다. Kafka 클러스터 없이 CockroachDB에서 직접 변경 데이터를 소비할 수 있게 된다.

주요 구조적 의미: Kafka Connect 배포 없이 Debezium Engine만으로 CockroachDB CDC를 소비할 수 있다. 소규모 서비스나 Kafka 운영 부담을 피하고 싶은 환경에서 CDC 파이프라인 진입 장벽이 낮아진다.

알파 시점의 알려진 제약: Sinkless Changefeed는 CockroachDB의 엔터프라이즈 라이선스 기능이다. 또한 알파 단계이므로 정확한 exactly-once 보장 동작이나 실패 복구 동작은 안정 버전 릴리스 전에 변경될 수 있다.


신규 인큐베이팅 커넥터: Ingres와 YashanDB

Ingres 커넥터

Ingres는 UC 버클리에서 탄생해 현재 ActianDB 브랜드로 이어지는 오래된 관계형 데이터베이스다. 금융·공공 분야의 레거시 시스템에서 여전히 사용된다. Debezium 3.7.0.Alpha1은 Ingres를 위한 소스 커넥터를 인큐베이팅 상태로 추가했다.

Ingres 커넥터는 Ingres의 저널링(journaling) 메커니즘을 통해 변경 데이터를 캡처한다. 레거시 데이터베이스의 현대적 데이터 파이프라인 통합 시나리오에서 Debezium을 마이그레이션 경로로 활용할 수 있는 여지를 열어 준다.

YashanDB 커넥터

YashanDB는 중국 국가유물 기반 연구기관이 개발한 엔터프라이즈 관계형 데이터베이스다. 중국 내 금융·에너지 분야 대형 기관에서 Oracle 대체재로 채택되고 있다.

두 커넥터 모두 인큐베이팅(incubating) 상태다. API 안정성이 보장되지 않으며, 프로덕션 사용은 권장되지 않는다.


JDBC Sink 확장: CockroachDB, SingleStore, StarRocks

Debezium의 JDBC Sink 커넥터는 CDC 이벤트를 JDBC 호환 데이터베이스에 쓰는 범용 싱크다. 3.7.0.Alpha1에서 지원 데이터베이스 목록이 확장됐다.

추가된 데이터베이스주요 특성
CockroachDBPostgreSQL 호환 분산 SQL DB
SingleStore (구 MemSQL)인메모리 기반 HTAP DB
StarRocksOLAP 특화 분석 DB, MySQL 호환 레이어

CockroachDB는 소스 커넥터와 싱크 모두 지원하게 됐으므로, CockroachDB 간 또는 CockroachDB ↔ 다른 데이터베이스 양방향 파이프라인을 Debezium만으로 구성할 수 있다.

StarRocks가 JDBC Sink 대상으로 추가된 것은 CDC 기반 실시간 분석 적재 파이프라인을 표준 Debezium 스택으로 구성할 수 있다는 의미다. 기존에는 StarRocks의 Stream Load API나 별도 Flink 커넥터를 써야 하는 경우가 많았다.


PyDebeziumAI: CDC 이벤트 → 벡터 DB 동기화

3.7.0.Alpha1에서 인큐베이팅에 진입한 가장 실험적인 기능이다. PyDebeziumAI는 Debezium의 CDC 이벤트를 벡터 데이터베이스에 자동으로 변환·동기화하는 Python 라이브러리다.

지원 벡터 DB:

  • Chroma: 로컬/임베디드 벡터 스토어 (개발·프로토타입 환경)
  • PGVector: PostgreSQL 확장 기반 벡터 저장소
  • Milvus: 대규모 분산 벡터 DB

PyDebeziumAI가 자동으로 처리하는 변환:

CDC 이벤트 타입벡터 DB 연산
INSERT텍스트 임베딩 생성 → 벡터 삽입
UPDATE임베딩 재생성 → 벡터 갱신
DELETE벡터 삭제

동작 방식: 지정한 컬럼(예: 상품 설명, 리뷰 본문)의 텍스트를 임베딩 모델로 변환한 뒤 벡터 DB에 기록한다. 소스 DB와 벡터 인덱스를 별도 ETL 없이 동기화 상태로 유지할 수 있다.

적용 가능한 시나리오: 전자상거래 상품 검색(소스 DB에 상품 정보 업데이트 → 벡터 인덱스 자동 갱신), 문서 검색(기사나 문서 데이터베이스에 새 행 추가 → 임베딩 자동 생성 후 Milvus 저장).

알파 한계: 임베딩 모델 선택, 임베딩 차원, 배치 크기 등 핵심 파라미터의 API가 아직 안정화되지 않았다. 의존하는 sentence-transformersopenai Python SDK 버전과의 호환성도 알파 단계에서 변경될 수 있다.


ExtendedTimestamp: INT64 범위를 초과하는 타임스탬프

데이터베이스마다 타임스탬프 정밀도가 다르다. 일부 데이터베이스는 나노초 단위 타임스탬프를 저장하는데, 이를 Unix epoch 기준 나노초로 변환하면 INT64 최댓값(약 2262년)을 초과할 수 있다.

Debezium 3.7.0.Alpha1은 이 케이스를 처리하기 위한 ExtendedTimestamp 타입을 도입했다. INT64 범위를 초과하는 정밀 타임스탬프를 string 또는 별도 인코딩 방식으로 직렬화해 데이터 손실 없이 전달한다.

이 변경이 영향을 주는 실제 케이스는 드물지만, 고정밀 시계를 사용하는 금융 거래 기록이나 센서 데이터 수집 시스템에서 발생할 수 있었던 묵시적 데이터 손상을 예방한다.


스키마 히스토리 최적화와 엔진 종료 전략

스키마 히스토리 메모리 최적화

Debezium은 테이블 스키마 변경 이력을 내부적으로 추적한다(Schema History). 장기 운영 시스템에서는 이 히스토리가 메모리를 많이 차지할 수 있다. 3.7.0.Alpha1은 스키마 히스토리의 메모리 사용량을 줄이는 최적화를 포함했다. 수년 치 DDL 변경이 쌓인 대형 데이터베이스에서 Debezium을 운영하는 환경에서 효과적이다.

Debezium Engine 종료 전략

Debezium Engine(Kafka 없이 단독으로 쓰는 임베디드 모드)의 종료(shutdown) 동작을 세 가지 전략으로 제어할 수 있게 됐다.

전략동작
IMMEDIATE즉시 중단, 처리 중인 이벤트 손실 가능
SAFE현재 배치 처리 완료 후 종료
GRACEFUL소스 커넥터가 완료를 확인할 때까지 대기 후 종료

애플리케이션 종료 시 CDC 이벤트 손실 없이 안전하게 멈추고 싶은 경우에 GRACEFUL 전략을 선택할 수 있다.


알파 채택 체크리스트

Debezium 3.7.0.Alpha1은 기능 탐색과 피드백 기여에 적합하다. 프로덕션 환경에 도입하기 전에 다음을 확인해야 한다.

CockroachDB 직접 CDC 적용 전

  • [ ] CockroachDB 엔터프라이즈 라이선스 보유 확인 (Sinkless Changefeed 의존)
  • [ ] 정확한 exactly-once 보장 범위를 Debezium 3.7 GA 릴리스 노트에서 재확인
  • [ ] 오프셋 저장 전략(Kafka 없는 환경에서 오프셋 어디에 저장할지) 설계

PyDebeziumAI 적용 전

  • [ ] 임베딩 모델 선택과 비용 추정 (외부 API 의존 여부 확인)
  • [ ] 벡터 DB 컬렉션 스키마와 임베딩 차원 사전 설계
  • [ ] GA 릴리스 전 API 변경 가능성 고려해 인터페이스 래핑 레이어 작성

신규 커넥터 (Ingres, YashanDB) 적용 전

  • [ ] 인큐베이팅 상태 확인 — 프로덕션 SLA 보장 불가
  • [ ] 테스트 환경에서 WAL/저널링 권한 설정 검증

요약

항목내용
릴리스Debezium 3.7.0.Alpha1 (2026-07-30)
가장 큰 변화CockroachDB Sinkless CDC — Kafka 없이 SQL 커넥션으로 직접 스트리밍
신규 소스 커넥터Ingres (레거시 RDBMS), YashanDB (중국 엔터프라이즈 DB) — 인큐베이팅
JDBC Sink 확장CockroachDB, SingleStore, StarRocks 추가
PyDebeziumAIINSERT/UPDATE/DELETE → 벡터 임베딩 자동 변환, Chroma/PGVector/Milvus 지원
ExtendedTimestampINT64 범위 초과 고정밀 타임스탬프 직렬화
기타스키마 히스토리 메모리 최적화, Engine 종료 전략 3종
해결 이슈 수97개
안정성알파 — 프로덕션 사용 전 안정 버전 확인 필수

References

  • Debezium 3.7.0.Alpha1 공식 릴리스 노트 https://debezium.io/blog/2026/07/30/debezium-3-7-0-alpha1-released/
  • CockroachDB Core Changefeed 문서 https://www.cockroachlabs.com/docs/stable/changefeed-for.html
  • Debezium 지원 커넥터 목록 https://debezium.io/documentation/reference/stable/connectors/
  • PyDebeziumAI GitHub https://github.com/debezium/debezium-ai
  • Milvus 공식 문서 https://milvus.io/docs