Docs Menu
Docs Home
/
MongoDB Kafka Connector
/ /

데이터 캡처 핸들러 변경

이 페이지의 내용

  • 개요
  • CDC 핸들러 지정
  • 사용 가능한 CDC 핸들러
  • 자체 CDC 핸들러 만들기
  • CDC 핸들러 사용 방법

MongoDB Kafka 싱크 connector로 CDC(변경 데이터 캡처) 이벤트를 복제하는 방법을 알아보세요. CDC는 데이터 저장소의 변경 사항을 CDC 이벤트의 스트림으로 변환하는 소프트웨어 아키텍처입니다. CDC 이벤트는 데이터 저장소에서 수행된 변경 사항을 재현 가능한 방식으로 표현한 메시지입니다. 데이터 복제는 한 데이터 저장소의 CDC 이벤트에 포함된 변경 사항을 다른 데이터 저장소에 적용하여 두 데이터 저장소에서 모두 변경 사항이 발생하도록 하는 프로세스입니다.

CDC 핸들러를 사용하여 Apache Kafka 토픽에 저장된 CDC 이벤트를 MongoDB로 복제합니다. CDC 핸들러는 특정 CDC 이벤트 생성자의 CDC 이벤트를 MongoDB 쓰기 작업으로 변환하는 프로그램입니다.

CDC 이벤트 프로듀서는 CDC 이벤트를 생성하는 애플리케이션입니다. CDC 이벤트 생성자는 데이터 저장소 또는 데이터 저장소를 감시하고 데이터 저장소의 변경에 해당하는 CDC 이벤트를 생성하는 애플리케이션이 될 수 있습니다.

참고

MongoDB 변경 스트림은 CDC 아키텍처의 한 예입니다. 변경 스트림에 대해 자세히 알아보려면 변경 스트림에 대한 Kafka Connector 가이드를 참조하세요.

데이터 복제 방법을 설명하는 튜토리얼을 보려면 변경 데이터 캡처 핸들러를 사용한 데이터 복제 튜토리얼을 참조하세요.

중요

CDC 및 포스트 프로세서

CDC 이벤트 데이터에는 포스트 프로세서를 적용할 수 없습니다. 두 가지를 모두 지정하려고 하면 connector에서 경고를 기록합니다.

다음 구성 옵션을 사용하여 싱크 커넥터에 CDC 핸들러를 지정할 수 있습니다.

change.data.capture.handler=<cdc handler class>

자세히 알아보려면 데이터 캡처 구성 옵션 변경을 참조하세요.

sink connector는 다음 CDC 이벤트 생산자에 대한 CDC 처리기를 제공합니다.

  • MongoDB

  • Debezium

  • Qlik 복제

이전 이벤트 프로듀서에 대한 CDC 핸들러를 구성하는 방법을 알아보려면 다음 탭을 클릭하세요.

다음 속성 파일은 MongoDB 변경 이벤트 문서를 복제하도록 connector를 구성합니다.

connector.class=com.mongodb.kafka.connect.MongoSinkConnector
connection.uri=<your connection uri>
database=<your database>
collection=<your collection>
topics=<topic containing mongodb change event documents>
change.data.capture.handler=com.mongodb.kafka.connect.sink.cdc.mongodb.ChangeStreamHandler

MongoDB CDC 핸들러의 소스 코드를 보려면 MongoDB Kafka connector 소스 코드를 참조하세요.

싱크 커넥터는 다음 데이터 저장소에서 발생하는 Debezium CDC 이벤트를 복제할 수 있습니다.

  • MongoDB

  • Postgres

  • MySQL

다음 탭을 클릭하면 앞의 각 데이터스토어에서 CDC 이벤트를 복제하도록 Debezium CDC 핸들러를 구성하는 방법을 확인할 수 있습니다.

다음 속성 파일은 MongoDB 인스턴스의 변경 사항에 해당하는 Debezium CDC 이벤트를 복제하도록 커넥터를 구성합니다.

connector.class=com.mongodb.kafka.connect.sink.MongoSinkConnector
connection.uri=<your connection uri>
database=<your mongodb database>
collection=<your mongodb collection>
topics=<topic containing debezium cdc events>
change.data.capture.handler=com.mongodb.kafka.connect.sink.cdc.debezium.mongodb.ChangeStreamHandler

참고

2.0 이전 Debezium CDC 버전을 사용하는 경우 change.data.capture.handler 속성 값을 com.mongodb.kafka.connect.sink.cdc.debezium.mongodb.MongoDbHandler 로 설정하다 합니다.

Debezium CDC 핸들러의 소스 코드를 보려면 MongoDB Kafka Connector 소스 코드를 참조하세요.

다음 속성 파일은 Postgres 인스턴스의 변경 사항에 해당하는 Debezium CDC 이벤트를 복제하도록 커넥터를 구성합니다.

connector.class=com.mongodb.kafka.connect.sink.MongoSinkConnector
connection.uri=<your connection uri>
database=<your mongodb database>
collection=<your mongodb collection>
topics=<topic containing debezium cdc events>
change.data.capture.handler=com.mongodb.kafka.connect.sink.cdc.debezium.rdbms.postgres.PostgresHandler

Debezium CDC 핸들러의 소스 코드를 보려면 MongoDB Kafka Connector 소스 코드를 참조하세요.

다음 속성 파일은 MySQL 인스턴스의 변경 사항에 해당하는 Debezium CDC 이벤트를 복제하도록 커넥터를 구성합니다.

connector.class=com.mongodb.kafka.connect.sink.MongoSinkConnector
connection.uri=<your connection uri>
database=<your mongodb database>
collection=<your mongodb collection>
topics=<topic containing debezium cdc events>
change.data.capture.handler=com.mongodb.kafka.connect.sink.cdc.debezium.rdbms.mysql.MysqlHandler

Debezium CDC 핸들러의 소스 코드를 보려면 MongoDB Kafka Connector 소스 코드를 참조하세요.

참고

Debezium CDC 핸들러 사용자 지정

Debezium CDC 핸들러가 데이터스토어에서 CDC 이벤트를 복제할 수 없는 경우 DebeziumCDChandler 클래스를 확장하여 핸들러를 사용자 지정할 수 있습니다. 사용자 지정 CDC 핸들러에 대한 자세한 내용은 이 가이드의 자체 CDC 핸들러 만들기 섹션을 참조하세요.

싱크 커넥터는 이러한 데이터 저장소에서 시작된 Qlik Replicate CDC 이벤트를 복제할 수 있습니다:

  • OracleDB

  • MySQL

  • Postgres

다음 속성 파일은 Qlik Replicate CDC 이벤트를 복제하도록 싱크 커넥터를 구성합니다.

connector.class=com.mongodb.kafka.connect.MongoSinkConnector
connection.uri=<your connection uri>
database=<your database>
collection=<your collection>
topics=<topic containing qlik replicate cdc events>
change.data.capture.handler=com.mongodb.kafka.connect.sink.cdc.qlik.rdbms.RdbmsHandler

Qlik Replicate CDC 핸들러의 소스 코드를 보려면 MongoDB Kafka Connector 소스 코드를 참조하세요.

참고

Qlik Replicate CDC 핸들러 사용자 지정

Qlik Replicate CDC 핸들러가 데이터스토어에서 CDC 이벤트를 복제할 수 없는 경우 QlikCDChandler클래스를 확장하여 핸들러를 사용자 지정할 수 있습니다. 사용자 지정 CDC 핸들러에 대한 자세한 내용은 이 가이드의 자체 CDC 핸들러 만들기 섹션 을 참조하세요.

사용 사례에 맞는 사전 빌드된 CDC 핸들러가 없는 경우 직접 만들 수 있습니다. 사용자 지정 CDC 핸들러는 CdcHandler 인터페이스를 구현하는 Java 클래스입니다.

자세히 알아보려면 CdcHandler 인터페이스의 소스 코드를 참조하세요.

CDC 핸들러 구현의 예시를 보려면 사전 빌드된 CDC 핸들러의 소스 코드를 참조하세요.

사용자 지정 CDC 핸들러를 사용하도록 싱크 커넥터(sink connector)를 구성하려면 다음 조치를 수행해야 합니다.

  1. 사용자 정의 CDC 핸들러 클래스를 JAR 파일로 컴파일합니다.

  2. 컴파일된 JAR을 Kafka 작업자의 클래스패스/플러그인 패스에 추가하세요. 플러그인 패스에 대한 자세한 내용은 Confluent 설명서를 참조하세요.

    참고

    Kafka Connect는 플러그인을 격리하여 로드합니다. 사용자 지정 쓰기 전략을 배포할 때 Connector JAR과 CDC 핸들러 JAR은 모두 동일한 경로에 있어야 합니다. 경로는 다음과 비슷해야 합니다.

    <plugin.path>/mongo-kafka-connect/mongo-kafka-connect-all.jar
    <plugin.path>/mongo-kafka-connect/custom-CDC-handler.jar

    Kafka Connect 플러그인에 대해 자세히 알아보려면 Confluent에서 제공하는 이 가이드를 참조하세요.

  3. 구성 설정에서 사용자 지정 클래스를 지정합니다.change.data.capture.handler

클래스를 JAR 파일로 컴파일하는 방법을 알아보려면 Oracle의 이 가이드를 참조하세요.

돌아가기

Error Handling