이번 게시글에서는 Kafka Connect의 특징과 설정 중 발생할 수 있는 오류, 데이터 통합 환경을 구축하는 과정들에 대한 해결 방법을 작성할 것이다. window 환경에서 Kafka Connect를 직접 설치하는 과정은 복잡하니 해당 과정을 직접 작성하도록 하겠다.
Kafka Connect는 데이터 파이프라인 구축을 간소화하고 효율화하는 데 중점을 둔 도구이다. 이는 마이크로서비스 아키텍처에서 데이터베이스 연결 및 처리 작업을 직접 관리하는 대신, 이러한 작업들을 Kafka 시스템에 위임함으로써 구현된다. Kafka Connect를 사용함으로써, 개발자와 시스템 관리자는 데이터 통합 과정에서 발생할 수 있는 복잡성과 시간 소모를 크게 줄일 수 있다.
Kafka Connect는 소스(Sources)와 싱크(Sinks)라는 두 가지 주요 컴포넌트로 구성되어 있다. 소스 커넥터는 다양한 데이터 소스로부터 데이터를 추출하여 Kafka 토픽에 푸시하는 역할을 하며, 싱크 커넥터는 Kafka 토픽의 데이터를 읽어 외부 시스템이나 데이터베이스에 저장한다.
더 자세한 내용은 아래 게시글을 추천한다.
https://medium.com/@meghabedi13/kafka-connect-series-part-1-9d11621d08e5
.\bin\windows\connect-distributed.bat .\etc\kafka\connect-- distributed.properties
Classpath is empty. Please build the project first e.g. by running ‘gradlew jarAll’
log4j:ERROR Could not read configuration file from URL [file:C:/kafka_demo/confluent-6.1.0/config/tools-log4j.properties].
Kafka Connect의 REST API를 사용하여 커넥터 관리할 수 있다. 자세한 내용은 아래 공식문서를 참고하는 것을 추천한다.
https://docs.confluent.io/platform/current/connect/references/restapi.html
{
"name" : "ecommerce-source-connect",
"config" : {
"connector.class" : "io.confluent.connect.jdbc.JdbcSourceConnector",
"connection.url":"jdbc:mariadb://localhost:3306/ecommerce",
"connection.user":"root",
"connection.password":"2721",
"mode": "incrementing",
"incrementing.column.name" : "id",
"table.whitelist":"ecommerce.users",
"topic.prefix" : "ecommerce_",
"tasks.max" : "1",
"topic.creation.default.replication.factor": 1,
"topic.creation.default.partitions": 1
}
}
{
"name" : "ecommerce-sink-connect",
"config" : {
"connector.class" : "io.confluent.connect.jdbc.JdbcSinkConnector",
"connection.url":"jdbc:mariadb://localhost:3306/ecommerce",
"connection.user":"root",
"connection.password":"2721",
"auto.create":"true",
"auto.evolve":"true",
"delete.enabled":"false",
"tasks.max":"1",
"topics": "ecommerce_users"
}
}
Connector 옵션에 대해서는 아래 게시글을 참고하는 것을 추천한다.
Kafka connect에 대해서 공부하며 알게된 좋은 글을 추천한다. kakao 기술 블로그에서 작성한 커스텀 커넥터를 개발한 과정을 담고 있는 게시글이다. 해당 게시글을 읽으면 Kafka connect에 대한 새로운 시각을 얻을 수 있을 것이다.
https://tech.kakao.com/2023/01/12/introduce-kafka-sink-connector/