inflearn logo
강의

講義

知識共有

カフカパーフェクトガイド - コネクト編

スキーマレジストリにおけるスキーマ互換性の理解 - 02

Schema Registry 스키마 호환성 질문

358

dgnys20469

投稿した質問数 5

1

안녕하세요, 늘 양질의 강의 제공해 주심에 감사합니다.

강의를 듣다가 알쏭달쏭한 부분이 있어 질문드립니다.

 

  1. Schema Registry 를 활용하여 하위(Backward) 호환성 유지 시, 새로운 스키마를 설정되게 되면 Worker Conenct 를 강제로

    실행시켜 줘서 Sink Connector 가 새로운 스키마가 갱신되도록 해줘야하는 절차가 꼭 필요한가요?

    (Consumer 가 새로운 버전으로 스키마 업데이트가 되도록 강제하기 위한 수동 절차가 꼭 필요한 것인지 궁금합니다. 아님 이러한 부분도 자동으로 Schema registry 에서 Sink 쪽으로 콜백을 주어 캐시된 스키마에 대한 정보 업데이트가 되도록 되는건지,,)

  2. (Forward 호환성인 경우) Source Connector 에서 V1 버전 스키마로 메세지를 발행하다가, 어느 순간 신규 스키마 버전 V2 로 메세지를 발행하게 되어 Schema registry 에 V2 가 등록이 된 상태에서, Sink 쪽에서는 이 메세지를 받게 되면 schema id : v2 인 정보를 카프카 메세지 내에 정보를 통해 알게 될텐데,

    그럼에도 아직 워커 커넥트 내부 캐시된 스키마 정보엔 v2 가 없더라도, Forward 호환성인 경우에는 Sink Connector(Consumer) 입장에선 Schema registry 를 새로이 호출하여 스키마 업데이트를 하지 않는걸까요 ?

 

 

  1. 보통 운영환경에서 스키마 관리 자체를 DB source connector 에서 자동으로 만들어주는 스키마가 아니라 Schema registry 에 직접 새로운 스키마를 등록하여 운영환경에서 활용하시는지, 혹은 SOurce connector 의 자동 스키마 완성으로 사용하시는지 궁금 합니다.

 

 

양질의 강의에 다시한번 감사드리며 답변 부탁드리겠습니다.

 

좋은 하루 되세요.

감사합니다.

 

kafka 데이터-엔지니어링

回答 2

1

dooleyz3525

안녕하십니까,

강의 칭찬해 주셔서 넘 감사드립니다.

1, 2번 모두에 대한 답변은 아래와 같습니다.

Schema Registry에 Schema가 변경되어도 기존에 기동되는 Producer와 Consumer는 여전히 이전 버전 Schema를 바라보고 있기 때문에 자동으로 Producer와 Consumer에 반영되지 않습니다. 때문에 신규 버전 Schema를 반영하려면 Producer/Consumer는 재기동이 되어야 반영이 됩니다.

자동 반영이 되지 않는 이유로는 (개인적인 생각으로)

첫번째로, Schema Registry를 사용하는 분산 데이터 처리 솔루션들은 각자 고유한 영역이 있습니다. 빅데이터 솔루션들은 일반적으로 느슨한 형태로 다른 라이브러리들을 참조해 왔지만, 일체형으로 Schema Registry를 포함하려는 노력은 하지 않습니다. 마찬가지로 Schema Registry 역시 느슨한 협력을 원하지, 직접적으로 다른 분산 처리 솔루션들을 통제하려 하지 않습니다.

두번째로는 Producer/Consumer를 수동으로 내리지 않고, 자동으로 반영하는 절차는 위험을 가져올 요소도 많습니다. 분산 데이터 처리 솔루션들이 연결되어 작업하는 환경에서는 특정 스키마의 변경이 반드시 일관적으로 모두가 이를 다 반영하지 않을 수도 있습니다. 때문에 신규 스키마의 버전 반영은 Producer 또는 Consumer 재 기동이라는 사용자 수동 개입이 더 나은 운영 편리성을 제공할 수 있습니다.

3번 질문의 경우, 제가 많은 사이트를 확인해 본건 아니지만,

Connector의 자동 스키마 변경은 적용하지 않습니다. 이유는 강의에서 계속 말씀드리지만, 자동 스키마 적용은

오류를 발생 시킬 여지가 많습니다. 때문에 스키마의 변경이 발생하면 Source Connector, Sink Connector Down 후 Source DB의 Schema, Target DB의 스키마를 모두 변경 후 다시 재기동합니다.

감사합니다.

0

logt

좋은 질의응답 감사합니다. 덕분에 배워갑니다. 😄

계속 csv파일을 폴더로 인식하는 중입니다.

0

65

2

cdc failover

0

69

2

avro plugin에 안보이는거 같아요

0

68

2

zookeeper가 실행이 안되요

0

73

3

Debezium CDC Source Connector 이벤트 메시지

0

82

2

재 질문! 다른 connector가 동일 토픽 사용

0

63

2

메시지 발행이 안 됩니다.

0

75

2

디비지움 오프셋 리셋

0

94

2

mysql_jdbc_oc_sink_customers_02.json 에서 오류납니다.

0

69

3

io.debezium.connector.mysql.MySqlConnector 질문

0

67

2

Debezium 이벤트 메시지 발행 시 성공여부

0

80

2

connect 구동 오류

0

97

3

CDC Connect 통시에서의 암호화 관련 하여 문의 드립니다.

0

121

2

GCSSinkconnector

0

64

1

debezium source connector에서 `poll.interval.ms` 파라미터

0

142

2

자문자답: JDBC Sink Connector가 PostgreSQL의 Schema를 바라보지 않습니다.

0

212

1

table.name.format에 관하여..

0

196

2

binlog와 offset 관련 추가 질문드립니다

0

149

1

Debezium cdc source for MSSQL-Server [등록오류]

0

190

2

http http://localhost:8083/connector-plugins 시 플러그인이 보이지 않습니다.

0

187

2

안녕하세요 sink connector 생성 config 관련 질문입니다.

0

159

2

수강환경 VirtualBox -> Docker

0

223

2

일반적인 예시들이 궁금해서 질문 남깁니다.

1

145

2

debezium connector schema 찾지 못하는 오류

0

426

2