본문 바로가기
Data PipeLine/Debezium

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

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

목적

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

툴별 버전별 호환성 표

Java 8+
Kafka Connect 1.x, 2.x
MySQL Database: 5.7, 8.0.x
Driver: 8.0.21
MongoDB Database: 3.2, 3.4, 3.6, 4.0, 4.2
Driver: 4.1.1
PostgreSQL Database: 9.6, 10, 11, 12
Driver: 42.2.14
Oracle Database: 12c, 19c
Driver: 12.2.0.1, 19.8.0.0
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*, 9.0.x
Driver: 9.0.0
* See the Vitess Connector documentation for limitations when using the connector with earlier Vitess versions

Release Note 요약

1.5.4. Final

Kafka 호환성

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

Breaking changes

  • -

New Features 

  • -

Fixes

  • 제외된 DB의 스키마 변경 이벤트는 버리게 되는 버그가 수정됨

Other changes

  • 디비지움 SMT에 대한 만료된 설정이 갱신됨

1.5.3. Final

Kafka 호환성

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

Breaking changes

  • -

New Features 

  • -

Fixes

  • 오라클 커넥터가 일부 커밋된 트랜잭션에 대해 잘못 처리하는 버그가 수정됨
  • 라우팅된 SMT 설정 옵션의 유저 가이드 테이블에 잘못된 링크가 수정됨
  • source.timestamp.mode=commit으로 설정했을 때 상당한 성능 저하가 일어나는 버그가 수정됨
  • MySQL 메트릭 문서가 예전 구현을 참조하는 버그가 수정됨
  • role에 대한 GRANT/REVOKE가 작동하지 않는 버그가 수정됨
  • "SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS" 에러가 발생하는 DDL ParsingException 버그가 수정됨

Other changes

  • MongoDB 컴포넌트에 대해 doc를 모듈화함
  • 톰스톤 이벤트에 대한 doc 내용을 명확하게 함

1.5.2. Final

Kafka 호환성

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

Breaking changes

  • -

New Features 

  • -

Fixes

  • -

Other changes

  • -

1.5.1. Final

Kafka 호환성

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

Breaking changes

  • -

New Features 

  • -

Fixes

  • 오라클 logminer가 중복된 logfile을 추가할 수 없는 버그가 수정됨
  • 약간의 시간 동안 동작 후에 커넥터가 충돌하는 버그가 수정됨
  • 시스템 언어가 영어가 아닐 경우 resolveOracleDatabaseVersion에 예외가 발생하는 버그가 수정됨
  • WHERE 조건절 내 ''(홀따옴표가 2개)가 있으면 LogMinerDmlParser가 잘못 수행되는 버그가 수정됨
  • 디비지움 사용자 가이드에 SMT 약어가 잘못 확장된 부분이 수정됨
  • 디비지움 MySQL 커넥터가 파티션과 함께 테이블을 처리하지 못하는 버그가 수정됨
  • PostgreSQL에서 PK가 있는 테이블을 TRUNCATE할 때 "Found null value for non-optional schema" 에러가 발생하는 버그가 수정됨
  • '-' 문자열을 포함하는 테이블명에 커넥터가 충돌하는 버그가 수정됨
  • MySQL 8 버전에서 GRANT 명령어가 파싱될 수 없는 버그가 수정됨
  • 다중 archiver process threads를 사용할 때 오라클 redo log 스위치를 찾을 수 없는 버그가 수정됨
  • DDL 파서 내 스키마 함수가 누락되는 버그가 수정됨

Other changes

  • SQL Server 커넥터에 대한 사용자 가이드를 개선함
  • Db2 커넥터에 대한 사용자 가이드를 개선함
  • MySQL 커넥터에 대한 사용자 가이드를 개선함
  • MongoDB 커넥터에 대한 사용자 가이드를 개선함
  • binlog 클라리언트를 업그레이드함

1.5.0. Final

Kafka 호환성

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

Breaking changes

  • -

New Features 

  • 디비지움 서버 내 레디스 Streams target에 대한 지원이 추가됨

Fixes

  • Data Guard Archive log 항목을 수집하지 않음
  • 부팅할 때 디비지움이 무한 루프에 빠지는 버그가 수정됨
  • Schema change SourceRecords에 널 파티션이 포함되는 버그가 수정됨
  • SCN이 사용가능할 경우 LoogMiner가 잘못 해결할 수 있는 버그가 수정됨
  • event.deserialization.failure.handling.mode가 잘못 문서화된 부분이 수정됨
  • DB2 함수가 잘못 수행되는 버그가 수정됨
  • LogMiner 파서가 NUISTR 함수를 잘못 파싱하는 버그가 수정됨
  • "scale parameter not found"라고 Decimal 스키마를 잘못 검사하는 버그가 수정됨

Other changes

  • 디비지움 서버가 Apicurio converters로 사용될 수 있도록 허용됨
  • 존재하는 DB ojbect artifacts 때문에 테스트가 실패하는 부분이 수정됨
  • 카산드라 workflow에 대해 Java 8 버전을 사용함
  • PostgreSQL 커넥터 doc에 누락된 공간과 생략된 명령어를 추가함
  • Add missing space and omitted command to PostgreSQL connector doc DBZ-3372
  • Wrong badge on Docker Hub DBZ-3383

1.5.0. CR1

Kafka 호환성

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

Breaking changes

  • 오라클 커넥터가 인큐베이팅 단계에서 안정화 단계로 개선됨
    • 설정 옵션 중에 database.oracle.version이 제거됨
    • LogMiner의 특정 메트릭이 streaming 메트릭에 통합됨
    • 매우 큰 SCN 값을 사용할 수 있도록 source info 블록 내 scn과 commit_scn 필드가 LONG 타입이 아닌 STRING 타입으로 변경됨

New Features 

  • 카프카 브로커가 2.7.0으로 업그레이드 됨
  • TLS 지원에 더 많은 파라미터가 추가됨

Fixes

  • 디비지움 로그 중에 "is not a valid Avro schema name"이 너무 구체적일 수 있는 버그가 수정됨
  • OID값이 INT32 스키마에 맞춰질 수 없는 버그가 수정됨
  • ORA-26653 에러에 자동으로 커넥터가 재시작 되는 버그가 수정됨
  • null 값을 피하기 위해 Oracle LogMiner에 대해 Clob 작업을 되돌리는 버그가 수정됨
  • SQL Server가 decimal.handling.mode에 대해 설명을 누락하는 버그가 수정됨
  • 오라클 커넥터가 time.precision.mode를 무시하고 단지 adaptive mode를 사용하는 버그가 수정됨
  • MongoDB 시간초과가 모든 커넥터와 충돌하는 버그가 수정됨
  • 같은 SCN 범위의 redo logs에 대해 archive logs를 선호하는 버그가 수정됨
  • LongMiner의 마이닝 쿼리가 의도치 않게 레코드를 건너뛰는 버그가 수정됨
  • LogMiner DML 업데이트 문에 마지막 열의 값으로 함수가 포함된 경우 IndexOutOfBoundsException 예외가 발생하는 버그가 수정됨
  • mysql 스냅샷을 뜰 때 OOM이 발생하는 버그가 수정됨
  • 너무 많은 스위치가 발생할 경우 LogMiner가 로그 스위치를 누락할 수 있는 버그가 수정됨
  • MySQL 문법에서 MOD 함수가 누락되는 버그가 수정됨

Other changes

  • BingInteger로 SCN 보다는 BigDecimal을 사용함
  • 만료된 옵션에 대해 중복으로 경고하는 것을 처리함
  • 오라클 문서에 snapshot.select.statement.override 옵션을 추가함
  • 유효하지 않는 모드로부터 모든 가능한 백엔드 콜을 제거함
  • SMT 스크립트에 언어 의존성에 대한 정보를 추가함

1.5.0. Beta2

Kafka 호환성

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

Breaking changes

  • 오라클 커넥터가 이제 NUMBER(1) 컬럼을 int8로 기본적으로 방출함. boolean으로 하고 싶다면 커넥터 doc에 나와 있는대로 io.debezium.connector.oracle.converters.NumberOneToBooleanConverter로 사용할 것
  • 오라클 커넥터는 이제 기본적으로 LogMiner를 기본으로 캡처 작업을 수행함. XStream을 기본으로 수행하고 싶다면 database.connection.adapter를 xstream 값으로 바꿔줄 것

New Features 

  • LogMiner에 대한 추가적인 JXM 메트릭을 캡처함
  • SET 컬럼 타입에 대한 지원이 추가됨
  • 기본적으로 log.mining.transaction.retention.hours 로직이 사용중지됨
  • signalling 테이블을 제공함
  • connect-base image에 대해 민감한 환경 변수를 갱신함
  • 디비지움 서버 에서 키네시스 엔드포인트 지정을 지원함
  • log4j.properties 파일을 추가함

Fixes

  • LSN 내 에러가 발생되는 버그가 수정됨
  • 이전에 처리된 SCN으로 커넥터가 재시작되는 버그가 수정됨
  • 잘못 설저왼 필터로 설정된 publication에 대해 에러 메시지가 잘못 보여지는 버그가 수정됨
  • 최초로 로딩된 후에 Cdc가 동작하지 않는 버그가 수정됨
  • 최근 schema_recovery가 된 후에도 알수 없는 schema 에러가 반복하는 버그가 수정됨
  • database.tablename.case.insensitive=true를 사용할 경우 오라클 커넥터가 실패하는 버그가 수정됨
  • CommitThroughtput 메트릭이 0에 의해 나눠졌다는 에러를 발생할 수 있는 버그가 수정됨
  • LogMiner가 NUMBER(1) 데이터를 처리할 수 없는 버그가 수정됨
  • MongoDB 드라이버 버전이 갱신됨
  • 메인 디비지움이 먼저 빌드가 되지 않으면 추가 커넥터를 빌드할 수 없는 버그가 수정됨
  • 오라클 커넥터가 테이블 컬럼을 제외할 수 없는 버그가 수정됨
  • where 조건절이 없을 때 UPDATE문으로 LongMiner가 파싱을 실패하는 에러가 수정됨

Other changes

  • CommonConnectorConfig.PREOVIDE_TRANSACTION_METADATA를 사용하지 않는 커넥터는 이를 제외함
  • pgoutput을 사용했을 때 필요한 권한을 명확히 함
  • PostgreSQL doc를 개선함
  • 오라클 doc를 개선함
  • 오라클 커넥터를 메인 저장소로 이동함
  • PostgreSQL 커넥터 doc에 약간의 갱신이 있음
  • PostgreSQL 커넥터 속성 doc에서 truncate.handling.mode 파라미터의 잘못된 링크를 개선함
  • 오라클 커넥터 튜토리얼 예시를 갱신함
  • 오라클 커넥터로 LogMiner 어댑터를 기본적으로 사용함

1.5.0. Beta1

Kafka 호환성

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

Breaking changes

  • -

New Features 

  • Database History 프로듀서는 타임아웃으로 종료되지 않음
  • DML 파서 성능이 개선됨
  • MySQL 커넥터에서 트랜잭션 메타데이터를 지원함
  • JSON 타입 컬럼에 대한 지원을 추가함
  • ENUM 타입 컬럼에 대한 지원을 추가함
  • 세션이 시작하는데 실패할 때 LogMiner 세션 파라미터를 캡쳐함
  • 임시적인 데이터타입에 특별한 값으로 처리함

Fixes

  • 스냅샷을 뜨는 동안 음의 timestamp 값을 양으로 바꿈
  • 디비지움을 세팅할 때 잘못된 카프카 커넥터를 참조하는 버그가 수정됨
  • LogMiner를 사용하한 오라클 커넥터가 Oracle RDS 12버전에서 cdc동작을 하지 않는 버그가 수정됨
  • 오라클 LogMiner로 다중 스키마를 지원함
  • '-'을 포함하는 속성에 대해 완벽히 지원함
  • OracleDatabaseMetaData.getIndexInfo()로부터 Global 템프 테이블에 대한 SQLException이, 디비지움이 스냅샷하는 것을 실패하게하는 버그가 수정됨
  • 카산드라 버전이 3.11.5 이상일 때 카산드라 커넥터가 지원되지 않는 버그가 수정됨
  • 카산드라 커넥트가 CommitLogTransfer로 더욱 열일하도록 수정함
  • PgOutputMessageDecoder가 pk를 정렬하지 못하는 버그가 수정됨
  • 오라클 LogMiner 커넥터에 대한 트랜잭션 메타데이터가 이상하게 되는 버그가 수정됨
  • 스냅샷의 마지막 단계에서 table.include.list에 없는 테이블을 분석하여 지원되지 않는 XML타입 테이블을 우연히 발견하게 되는 버그가 수정됨
  • 카프카 네트워크 정책에서 프로메테우스 포트를 누락하는 버그가 수정됨
  • XStream이 NUMBER(1) 데이터를 처리하지 못하는 버그가 수정됨

Other changes

  • PostgreSQL 13 버전에 대해 테스트 진행
  • RecordMakers를 MySqlChangeRecordEmitter로 대체함
  • 옵션명에 공간이 없는 공백을 제거함
  • 별도의 파싱과 처리 단계를 지원하도록 MySQL DB 스키마 계약을 변경함
  • 오라클에 대한 설정을 유효성 검증함
  • 연결 클래스 사이에 이름이 충돌하는 것을 피하도록 함
  • 연결 유효성 검증 실패에 대한 일관적인 로깅을 하도록 함
  • 오라클 커넥터에서 COLUMN_BLACK_LIST 옵션을 제거함

1.5.0. Alpha1

Kafka 호환성

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

Breaking changes

  • 다른 모든 디비지움의 카프카 커넥트 커넥터에서 사용하는 공통 커넥터 프레임워크를 기반으로 MySQL 커넥터를 새롭게 구현함. 아직은 인큐베이팅 단계임
    • 사용하면서 문제가 있다면 internal.implementation=legacy로 설정할 것
  • 스키마 변화 토픽 내 레코드가 필수 필드인 TableChanges를 가짐. 이 필드는 구조화된 방식으로 표시된 스키마 변화를 설명함. 스키마 레지스트리를 사용하고 있다면 스키마 변화 토픽에 대해 FORWARD 호환성 설정을 사용할 것

New Features 

  • PgOutput 플러그인에서 TRUNCATE 이벤트를 방출할 수 있도록 지원함
  • meta tags를 구현함
  • 매우 큰 pg 스키마에 대한 성능이 개선됨

Fixes

  • MySQL 커넥터에서 database.include/exclude.list 속성에 대한 검증 시 잘못된 정규 표현식에서는 실패하도록 수정됨
  • DEFAULT 컬럼 정의에서 표현식을 파싱할 수 없는 버그가 수정됨
  • CHARACTER SET = DEFAULT로 된 DDL 생성문의 테이블은 MySQL 커넥터를 멈추게 하는 버그가 수정됨
  • MariaDB 에서 ALTER TABLE 내 존재하는 일부 조건이 누락되는 버그가 수정됨

Other changes

  • hostname, port, database명, 사용자 및 패스워드를 RelationalDatabaseConnectorConfig에 넣어줌
  • 세션이 시작하는 것을 실패하면 LoMiner 상태를 캡쳐하고 보고 함

참고

728x90
반응형