T
TechInsights
목록으로
BigData•2025. 03. 04.

Kafka Connect로 DB 데이터 쉽게 연동하기

컬리
컬리 Engineering Team
Kafka Connect로 DB 데이터 쉽게 연동하기

핵심요약

원문 보기

이 문서는 Kafka Connect와 JDBC 커넥터를 활용하여 데이터베이스 데이터를 Kafka로 효율적으로 전송하는 방법과 이 과정에서 발생할 수 있는 일반적인 문제들을 해결하는 실용적인 전략을 설명합니다.

Kafka Connect와 JDBC 커넥터를 활용한 DB-Kafka 데이터 통합

Kafka Connect 개요 및 기본 설정

  • Kafka Connect는 다양한 데이터 스토어와 Kafka 간의 데이터 연동을 위한 분산형 프레임워크입니다.
  • Source 커넥터를 사용하여 데이터베이스와 같은 외부 시스템에서 Kafka로 데이터를 가져오고, Sink 커넥터를 사용하여 Kafka에서 외부 시스템으로 데이터를 내보냅니다.
  • 설정 파일(.properties)을 통해 커넥터 인스턴스를 정의하고, Confluent Control Center 또는 Kafka Connect REST API를 통해 배포 및 관리합니다.
  • 분산 모드에서는 여러 워커(Worker) 인스턴스가 태스크를 병렬 처리하여 높은 확장성과 내결함성을 제공합니다.

JDBC Source 커넥터 구성 및 데이터 추출

  • JDBC Source 커넥터는 관계형 데이터베이스에서 데이터를 읽어 Kafka 토픽으로 발행하는 데 사용됩니다.
  • connector.class는 io.confluent.connect.jdbc.JdbcSourceConnector로 지정하며, connection.url, connection.user, connection.password로 데이터베이스 연결 정보를 설정합니다.
  • mode 파라미터는 데이터 추출 방식을 정의하며, incrementing, timestamp, timestamp+incrementing, bulk 등 다양한 모드를 지원합니다.
  • query 또는 table.whitelist를 사용하여 특정 테이블 또는 커스텀 쿼리의 결과를 Kafka 토픽으로 전송할 수 있습니다.

데이터 전송 흐름 및 모니터링

  • JDBC Source 커넥터는 설정된 모드에 따라 주기적으로 데이터베이스를 폴링하여 변경된 데이터를 감지합니다.
  • 감지된 데이터는 레코드(Record) 형태로 변환되어 지정된 Kafka 토픽으로 생산자(Producer) API를 통해 발행됩니다.
  • Kafka Consumer를 사용하여 해당 토픽의 데이터를 소비하여 데이터 전송의 무결성과 지연 시간을 확인할 수 있습니다.
  • Kafka Connect REST API (/connectors/{name}/status)를 통해 커넥터의 상태(RUNNING, FAILED, PAUSED) 및 태스크별 진행 상황을 실시간으로 모니터링합니다.

JDBC 커넥터 운영 시 발생 가능한 문제 및 해결 방안

  • 데이터 유실 또는 중복: offset.storage.topic 설정 확인 및 mode 파라미터(예: timestamp+incrementing)를 통해 정합성을 보장해야 합니다.
  • 성능 저하: batch.max.rows, poll.interval.ms 등의 설정을 조정하여 폴링 주기 및 배치 크기를 최적화하고, 데이터베이스 인덱스를 활용하여 쿼리 성능을 개선합니다.
  • 스키마 변경 대응: schemas.enable=true로 스키마를 포함하여 메시지를 발행하고, Confluent Schema Registry를 활용하여 스키마 변경에 유연하게 대응합니다.
  • 연결 오류: 데이터베이스 연결 URL, 사용자 인증 정보, 방화벽 설정 등을 철저히 확인하고, 커넥터 로그를 면밀히 분석하여 원인을 파악합니다.
#BigData#BackEnd#Infra
컬리
컬리

컬리 Engineering Team

기술 인사이트를 전달하는 공식 채널

You might also like

View all
토스 피플 : 새로운 길을 만들 땐 내 선택을 믿는다

토스 피플 : 새로운 길을 만들 땐 내 선택을 믿는다

"이 버튼 왜 안 눌려요?" 물류 현장의 목소리로 PDA 시스템 완성하기

"이 버튼 왜 안 눌려요?" 물류 현장의 목소리로 PDA 시스템 완성하기