본문 바로가기
Data PipeLine/Debezium

[Debezium] 1.4 Release Note 주요 내용 정리

by 연습장이 2024. 1. 12.
728x90
반응형

목적

  최신 버전 업그레이드 전, 영향도 평가하기 위함

툴별 버전별 호환성 표

Java 8+
Kafka Connect 1.x, 2.x
MySQL Database: 5.7, 8.0.x
Driver: 8.0.19
MongoDB Database: 3.2, 3.4, 3.6, 4.0, 4.2
Driver: 3.12.3
PostgreSQL Database: 9.6, 10, 11, 12
Driver: 42.2.12
Oracle Database: 12c
Driver: 12.2.0.1
SQL Server Database: 2017, 2019
Driver: 7.2.2.jre8
Cassandra Database: 3.11.4
Driver: 3.5.0
Db2 Database: 11.5
Driver: 11.5.0.0
Vitess Database: 8.0.x
Driver: 7.0.0

Release Note 요약

1.4.2. Final

Kafka 호환성

  • 카프카 커넥트 2.6.1, 카프카 브로커 2.6.1와 호환됨

Breaking changes

  • 이전 버전의 Debezium에서는 MySQL 커넥터가 올바른 유형인 r(읽기) 대신 c(쓰기) 작업 유형을 사용하여 스냅샷 이벤트를 잘못 방출함. 이 기능을 사용하던 컨슈머는 io.debezium.connector.mysql.transform.ReadToInsertEvent SMT를 사용해야 함. 동일한 목적으로 1.4.0에 실수로 도입된 커넥터 옵션인 snapshot.events.as.inserts가 다시 제거 되었으므로 이 경우에도 SMT를 사용할 것. 이 때 사용되는 SMT는 마이그레이션 목적이므로 향후에는 삭제될 것임
  • (인큐베이팅 중인) 오라클 전용 Debezium 커넥터는 이제 트랜잭션 ID를 대문자가 아닌 소문자로 전송함
  • 오라클 전용 커넥터의 snapshot mode 파라미터값 중 initial_schema_only는 지원 만료되어 제거됨. 이제 schema_only 값을 사용할 것

New Features 

  • 시간값(milliseconds, ms, sec, seconds 등)에 대해 호환되는  필드 설명이 추가됨
  • 부모가 없는 IOT를 찾아 건너뜀
  • LogMiner에 대해 추가적인 JMX 지표를 캡쳐함
  • SqlServer 커넥터는 유효성 검사를 수행하지 않음
  • DML 파서 성능이 개선됨
  • 사용가능한 DB 옵션 중 테스트 파라미터는 건너뛰는 기능이 추가됨
  • 세션이 시작에 실패하면 LogMiner 세션 파라미터를 캡쳐함

Fixes

  • 카프카 커넥터가 Debezium 설정을 잘못 참조하는 버그가 수정됨
  • 12버전의 Oracle RDS에서 Logminer를 사용한 오라클 커넥터가 cdc를 못하는 버그가 수정됨
  • 커넥션이 중지될때까지 PostgreSQL부터 커넥터에 의해 경고와 알림이 무시되는 버그가 수정됨
  • ExtractNewRecord SMT가 소스DB 정보에서 ts_ms를 잘못 추출하는 버그가 수정됨
  • create or replace index 명령어 입력 시 실행 가능한 대체안이 없다는 버그가 수정됨
  • 오라클 logminer 커넥터에 대한 이상한 트랜잭션 메타데이터가 수정됨
  • properties 파일에 쓸 때 공백이 포함된 환경변수는 잘리는 버그가 수정됨
  • JSON 타입 컬럼 데이터를 처리할 때 새로운 binglog 파서(1.3 이상 버전)가 영원히 멈추는 버그가 수정됨
  • where 조건절에 IS NULL 구문을 사용할 경우 DML 파서가 IndexOutOfRangeException 에러를 발생하는 버그가 수정됨

Other changes

  • 새로운 배포 엔드포인트를 사용하여 Maven Central에 배포함
  • 옵션명에 길이가 없는 공백 제거함
  • 커넥터 파라미터에 중복된 앵커 링크를 제거함
  • 오라클에 대한 설정 유효성 검사 진행함
  • pgoutput을 사용하여 요구되는 권한을 명확하게 함
  • 오라클 커넥터에 COLUMN_BLACK_LIST 옵션을 제거함
  • PostgreSQL 커넥터 doc에 약간의 수정이 있음

1.4.1. Final

Kafka 호환성

  • 카프카 커넥트 2.6.1, 카프카 브로커 2.6.1와 호환됨

Breaking changes

  • -

New Features 

  • SQL Server doc에 대한 Debezium 커넥터 정보를 명확하게 함
  • SQL SErver 커넥터의 binary.handling.mode 지원을 추가함
  • charset이 설정되어 있지 않으면 이를 설정하기 위해 collation을 사용함
  • sql 동작의 타입와 수에 대한 추가적인 로깅이 있음

Fixes

  • 알수 없는 이벤트 타입으로 binlog를 읽을 때 Debezium 커넥터가 실패하는 버그가 수정됨
  • 테이블 구조를 읽는 동안 일부 컬럼의 default값이 올바르게 추출되지 않는 버그가 수정됨
  • 오라클 커넥터와 Logminer 내 스냅샷으로부터 현재 SCN이 다를 경우 로그 파일을 찾을 수 없다는 에러가 발생하는 버그가 수정됨
  • "Build Testing Workflow"에 대한 깃헙 액션이 오래된 artifacts를 사용하고 찾을 수 없는 의존성을 빌드할 수 없는 버그가 수정됨
  • 기본 DB charset이 기록되지 않는 버그가 수정됨
  • 현재 커넥터가 replication 슬롯을 차지하고 있어 postgresql 커넥터 설정 유효성 검사가 실패하는 버그가 수정됨
  • 특정 상황에서 디비지움이 DML 예외를 씹는 버그가 수정됨

Other changes

  • Scn을 도메인 타입으로서 수행함
  • doc 내용에 message.key.columns, skipped.operations 부분을 수정함
  • 아파치 카프카 커넥트 2.6.1을 업그레이드함
  • PostgreSQL 커넥터에 대한 누락된 커넥터 옵션을 추가함
  • doc 내 앵커 링크 문자로부터 blacklist, whitelist를 제거함
  • 커넥터 파라미터 예시에 whitelist/blacklist 설정을 include/exclude로 수정함

1.4.0. Final

Kafka 호환성

  • 카프카 커넥트 2.6.0, 카프카 브로커 2.6.0와 호환됨

Breaking changes

  • -

New Features 

  • DDL 파서로부터 에러 보고 내용 개선
  • TNS 명과 full RAC 연결 문자열을 지원함
  • FIELD event에 더 이해하기 쉬운 로그를 추가함

Fixes

  • AWS RDS에 커넥터 유효성 검사에 실패할 수 있는 다양한 역할 이름이 있는 버그가 수정됨
  • tab으로 시작하는 코멘트에 대한 MySQL 파서 에러가 수정됨
  • 컬럼명에 $ 부호가 있을 경우 커넥터가 실패하는 버그가 수정됨
  • 생성된 컬럼에 대해 MariaDB 문법이 지원되지 않을 경우 실패하는 버그가 수정됨

Other changes

  • LegacyDdlParser 및 관게된 코드를 제거함
  • MongoDB 커넥터 인터페이스를 추가함
  • MySQL JDBC driver를 8.0.21 버전으로 업그레이드 함
  • payload의 id 필드가 존재하지 않을 경우 예외를 피함

1.4.0. CR1

Kafka 호환성

  • 카프카 커넥트 2.6.0, 카프카 브로커 2.6.0와 호환됨

Breaking changes

  • -

New Features 

  • -

Fixes

  • database.oracle.version 옵션에 대한 doc 내용을 수정함
  • 같ㅇ은 섹션을 가리키는 MySQL doc 섹션 내 링크를 제거함
  • 파티션된 테이블에 대한 오라클 스키마 history 이벤트가 실패하는 버그가 수정됨

Other changes

  • 카산드라 커넥터를 별도의 저장소로 옮김
  • 적절하지 못한 컬럼명은 메시지와 함께 커넥터가 실패됨

1.4.0. Beta1

Kafka 호환성

  • 카프카 커넥트 2.6.0, 카프카 브로커 2.6.0와 호환됨

Breaking changes

  • -

New Features 

  • 분산 추적에 대한 지원이 추가됨
  • Quarkus extension에 대한 GraaIVM 내 native mode에서 실행되도록 MongoDB 드라이버를 4.x로 업그레이드함
  • MySQL 커넥터에 대해 생성하거나 읽을 때 스냅샷 레코드로 생성되도록 허용됨 
  • 소문자 테이블명 및 스키마명에 대한 db2 커넥터가 지원됨
  • 엔진이 충돌할 때 process를 죽이는 옵션이 추가됨
  • 널 허용 컬럼에 대한 지원이 추가됨

Fixes

  • 오래 지속되는 트랜잭션이 버려지거나 무시되는 버그가 수정됨
  • Sql Server에서 default 값으로 decimal이 컬럼 정의의 scale과 일치하지 않아 예외가 발생하는 버그가 수정됨
  • 카산드라 커넥터가 완벽히 중지되지 않는 버그가 수정됨
  • Debezium에서 mysql 식별자로 CHARACTER VARYING이 지원되지 않는 버그가 수정됨
  • rename user 명령어 파싱이 실패하는 버그가 수정됨

Other changes

  • MongoDB 드라이버의 만료된 JSON 직렬화 기능에 더이상 의존하지 않음
  • 웹사이트 빌드를 깃헙 액션으로 옭밈
  • 오라클 ci 빈도를 증가시킴
  • 부호가 없는 정수 타입에 대한 지원이 추가됨

1.4.0. Alpha2

Kafka 호환성

  • 카프카 커넥트 2.6.0, 카프카 브로커 2.6.0와 호환됨

Breaking changes

  • -

New Features 

  • DB가 재시작 될 때 PostgreSQL 커넥터가 재시도하도록 지원됨

Fixes

  • flashback 쿼리를 수행하는 동안 오라클이 "no snapshot found based on specified time" 에러를 던지는버그가 수정됨
  • pk 정의가 컬럼 정의보다 앞설 때 예외가 발생하도록 수정함
  • zero date일 때 MySQL 커넥터가 실패하는 버그가 수정됨
  • timestamp 기본값으로 'yyyy-mm-dd' 형식일 때 MySQL 커넥터가 실패하는 버그가 수정됨
  • "min"컬럼 입력시 에러가 발생할 때 대안이 없는 버그가 수정됨

Other changes

  • 모든 저장소에 대해 CI를 깃헙 액션으로 옮김
  • replication slot이 존재하지 않는 유효성 검사가 추가됨
  • initial.sync.max.threads를 snapshot.max.threads로 변경함

1.4.0. Alpha1

Kafka 호환성

  • 카프카 커넥트 2.6.0, 카프카 브로커 2.6.0와 호환됨

Breaking changes

  • -

New Features 

  • 스냅샷을 뜰 캡쳐된 테이블의 하위 집합을 명시할 수 있도록 함
  • MongoDB에 대해 select 구문을 재정의할 수 있도록 함
  • 행 걸린 JDBC 커넥션을 닫을 수 있도록 함
  • SQL Server에서 기본값이 가 파싱될 수 없을 때 스택트레이스를 숨김

Fixes

  • 환경변수를 재정의할 수 없는 버그가 수정됨
  • PostgreSQL 커넥텅의 doc에서 일관적이지 못한 부분이 수정됨
  • sharded cluster 내 mongodb collection에 대해 데이터를 추출하는 동안 "ConcurrentModificationException" 에러가 발생하는 버그가 수정됨
  • MySQL 커넥터가 컬럼 정의에 DB의 기본 charset을 전달하지 않는 버그가 수정됨
  • 트리거를 사용하여 뷰를 생성할 때 테이블 별칭을 쓰면 DDL을 파싱할 수 없는 버그가 수정됨
  • snapshot.new.tables가 변경된 후에 MySQL 커넥터가 오래된 offset metadata를 유지하는 버그가 수정됨
  • PostgreSQL 커넥터 내 WAL 로그가 flush 되지 않는 버그가 수정됨
  • 카산드라 커넥터가 로깅할 때 log4j를 올바로 사용하지 못하는 버그가 수정됨
  • MariaDB에서 nextval 함수가 문법적으로 지원되지 않는 버그가 수정됨
  • 같은 이름으로 존재하는 테이블의 같은 이름으로 된 뷰를 삭제하면 디비지움이 실패되는 버그가 수정됨

Other changes

  • MySQL doc 소스 파일을 다시 하나로 합침
  • PostgreSQL에 대한 사용자 가이드 doc를 개선함
  • MySQL JDBC 드라이버 버전을 8.0.19로 업그레이드함

참고

728x90
반응형