Kafka 완전 정복 : 클러스터 구축부터 MSA 환경 활용까지/기본,심화 개념, 아키텍처와 생태계

Ch04. Apache Kafka Connect 개념 및 이해 - Single Message Transform(SMT), Converter

webmaster 2023. 5. 7. 22:07
728x90

Connector 배포

Connector 배포 전의 모습

  • 분산 워커 형태로 실행을 하게 되면, 아무것도 설정하지 않았기 때문에 아무 동작도 하지 않는다.
 

Connector 배포를 위한 Configuration의 일부

  • JdbcSinkConnector를 연결을 해주어야지만 정상적으로 Connect가 연결이 된다.

Connector 배포
Connector Task가 Source 시스템에서 데이터를 가져와서 Connect Record로 변환

  • Connector를 배포를 완료해야지만 위와 같이 Connect가 연결이 된다.

Converter 설정

  • Key 와 Value를 Byte Array로 변환하기 위한 Converter를 각각 설정
  • converter는 기본적으로 schema.registry와 연결이 되어 있기 때문에 보통 같이 설정을 해주어야 한다.

설정한 Converter가 Connect Record를 Byte Array로 변환한 후, Kafka로 전달

Single Message Transform(SMT)

단건 메시지별 데이터 변환 기능
Task와 Converter 사이에서 데이터 변환이 필요한 경우 사용

Transform Description
Cast 필드 또는 전체 Key 또는 Value를 특정 유형으로 캐스트(타입 변환) (예:정수필드를더작은너비로강제적용)
Drop 레코드에서 Key 또는 Value를 삭제하고 null로 설정
InsertField 레코드 메타데이터 또는 구성된 Static Value의 속성을 사용하여 필드를 삽입
MaskField 필드 유형에 대해 유효한 null 값으로 지정된 필드를 마스킹
ReplaceField 필드를 필터링하거나 이름을 변경

SMT 설정

  • 여러 개의 SMT을 연결(Chaining)하여 사용 가능
  • transforms로 시작하게끔 되어있다.
  • SMT 여러개를 연결할 이름을 정한뒤, 원하는 Input 파라미터를 받을 수 있다.

SMT 단건 메시지별 데이터 변환 기능

  • Connect Record를 설정된 SMT의 순서에 따라 변환
  • 많이 사용할수록 좋은 것은 아니다(CPU 사용량이 많아지기 떄문에)
  • SMT도 필요시 커스텀 개발이 가능하다.

Sink Connector의 Data Flow

  • Sink Connector의 Data Flow는 Source Connector의 역방향

 

728x90