4장. Kafka Connect 정보


Kafka Connect는 Kafka 브로커와 기타 시스템 간에 데이터를 스트리밍하기 위한 통합 툴킷입니다. 다른 시스템은 일반적으로 데이터베이스와 같은 외부 데이터 소스 또는 대상입니다.

Kafka Connect는 플러그인 아키텍처를 사용하여 커넥터에 구현 아티팩트를 제공합니다. 플러그인을 사용하면 다른 시스템에 대한 연결을 허용하고 데이터를 조작하기 위한 추가 구성을 제공합니다. 플러그인에는 커넥터 및 데이터 변환기 및 변환과 같은 기타 구성 요소가 포함됩니다. 커넥터는 특정 유형의 외부 시스템에서 작동합니다. 각 커넥터는 구성에 사용할 스키마를 정의합니다. Kafka Connect에 구성을 제공하여 Kafka Connect 내에서 커넥터 인스턴스를 생성합니다. 그런 다음 Connector 인스턴스는 시스템 간에 데이터를 이동하기 위한 일련의 작업을 정의합니다.

AMQ Streams는 분산 모드에서 Kafka Connect를 작동하여 하나 이상의 작업자 Pod에 데이터 스트리밍 작업을 배포합니다. Kafka Connect 클러스터는 작업자 Pod 그룹으로 구성됩니다. 각 커넥터는 단일 작업자에서 인스턴스화됩니다. 각 커넥터는 작업자 그룹에 분산된 하나 이상의 작업으로 구성됩니다. 작업자 간에 분산하면 확장성이 높은 파이프라인을 사용할 수 있습니다.

작업자는 한 형식의 데이터를 소스 또는 대상 시스템에 적합한 다른 형식으로 변환합니다. 커넥터 인스턴스의 구성에 따라 작업자는 변환(단일 메시지 변환 또는 SMT라고도 함)을 적용할 수도 있습니다. 변환은 변환되기 전에 특정 데이터 필터링과 같은 메시지를 조정합니다. Kafka Connect에는 약간의 변형이 내장되어 있지만 필요한 경우 플러그인에서 다른 변환을 제공할 수 있습니다.

4.1. Kafka Connect 스트림 데이터 방법

Kafka Connect는 커넥터 인스턴스를 사용하여 다른 시스템과 통합하여 데이터를 스트리밍합니다.

Kafka Connect는 작업자 Pod에 걸쳐 데이터 스트리밍 작업 및 커넥터 구성을 시작할 때 기존 커넥터 인스턴스를 로드하고 배포합니다. 작업자는 커넥터 인스턴스에 대한 작업을 실행합니다. 각 작업자는 Kafka Connect 클러스터의 내결함성을 높이기 위해 별도의 Pod로 실행됩니다. 작업자보다 많은 작업이 있는 경우 작업자에 여러 작업이 할당됩니다. 작업자가 실패하면 Kafka Connect 클러스터의 활성 작업자에 작업이 자동으로 할당됩니다.

스트리밍 데이터에 사용되는 주요 Kafka Connect 구성 요소는 다음과 같습니다.

  • 작업을 만드는 커넥터
  • 데이터 이동 작업
  • 작업을 실행하는 작업자
  • 데이터 조작을 위한 변환
  • 데이터를 변환하는 변환기

4.1.1. 커넥터

커넥터는 다음 유형 중 하나일 수 있습니다.

  • 데이터를 Kafka로 푸시하는 소스 커넥터
  • Kafka에서 데이터를 추출하는 싱크 커넥터

플러그인은 Kafka Connect에 커넥터 인스턴스를 실행하기 위한 구현을 제공합니다. Connector 인스턴스는 Kafka 내외로 데이터를 전송하는 데 필요한 작업을 생성합니다. Kafka Connect 런타임은 작업자 Pod 간에 필요한 작업을 분할하도록 작업을 오케스트레이션합니다.

MirrorMaker 2는 Kafka Connect 프레임워크도 사용합니다. 이 경우 외부 데이터 시스템은 다른 Kafka 클러스터입니다. MirrorMaker 2를 위한 특수 커넥터는 소스와 대상 Kafka 클러스터 간의 데이터 복제를 관리합니다.

참고

Kafka는 MirrorMaker 2 커넥터 외에도 두 가지 커넥터를 예로 제공합니다.

  • FileStreamSourceConnector 는 작업자 파일 시스템의 파일에서 Kafka로 데이터를 스트리밍하고 입력 파일을 읽고 각 행을 지정된 Kafka 주제로 전송합니다.
  • FileStreamSinkConnector 는 Kafka에서 작업자의 파일 시스템으로 데이터를 스트리밍하고 Kafka 주제에서 메시지를 읽고 출력 파일에 각각에 대한 행을 작성합니다.

다음 소스 커넥터 다이어그램은 외부 데이터 시스템에서 레코드를 스트리밍하는 소스 커넥터의 프로세스 흐름을 보여줍니다. Kafka Connect 클러스터는 동시에 소스 및 싱크 커넥터를 작동할 수 있습니다. 작업자는 클러스터의 분산 모드에서 실행됩니다. 작업자는 둘 이상의 커넥터 인스턴스에 대해 하나 이상의 작업을 실행할 수 있습니다.

Kafka에 대한 소스 커넥터 스트리밍 데이터

Kafka Connect source connector worker interaction in distributed mode

  1. 플러그인은 소스 커넥터에 대한 구현 아티팩트를 제공합니다.
  2. 단일 작업자가 소스 커넥터 인스턴스를 시작합니다.
  3. 소스 커넥터는 데이터를 스트리밍하는 작업을 생성합니다.
  4. 작업은 병렬로 실행하여 외부 데이터 시스템을 폴링하고 레코드를 반환합니다.
  5. 변환은 필터링 또는 레이블 재레이블과 같은 레코드 조정
  6. 변환기는 Kafka에 적합한 형식으로 레코드를 넣습니다.
  7. 소스 커넥터는 KafkaConnectors 또는 Kafka Connect API를 사용하여 관리합니다.

다음 싱크 커넥터 다이어그램은 Kafka에서 외부 데이터 시스템으로 데이터를 스트리밍할 때의 프로세스 흐름을 보여줍니다.

Kafka의 싱크 커넥터 스트리밍 데이터

Kafka Connect sink connector worker interaction in distributed mode

  1. 플러그인은 싱크 커넥터에 대한 구현 아티팩트를 제공합니다.
  2. 단일 작업자가 싱크 커넥터 인스턴스를 시작합니다.
  3. 싱크 커넥터는 데이터를 스트리밍하는 작업을 생성합니다.
  4. 작업은 병렬로 실행하여 Kafka를 폴링하고 레코드를 반환합니다.
  5. 변환기는 레코드를 외부 데이터 시스템에 적합한 형식으로 넣습니다.
  6. 변환은 필터링 또는 레이블 재레이블과 같은 레코드 조정
  7. 싱크 커넥터는 KafkaConnectors 또는 Kafka Connect API를 사용하여 관리합니다.

4.1.2. 작업

Kafka Connect 런타임에서 오케스트레이션된 데이터 전송은 병렬로 실행되는 작업으로 나뉩니다. 커넥터 인스턴스에서 제공하는 구성을 사용하여 작업이 시작됩니다. Kafka Connect는 작업 구성을 작업자에 배포하여 작업을 인스턴스화하고 실행합니다.

  • 소스 커넥터 작업은 외부 데이터 시스템을 폴링하고 작업자가 Kafka 브로커로 전송하는 레코드 목록을 반환합니다.
  • 싱크 커넥터 작업은 외부 데이터 시스템에 쓰기 위해 작업자에서 Kafka 레코드를 수신합니다.

싱크 커넥터의 경우 생성된 작업 수는 사용 중인 파티션 수와 관련이 있습니다. 소스 커넥터의 경우 소스 데이터가 커넥터에 의해 분할되는 방법입니다. 커넥터 구성에서 tasksMax 를 설정하여 병렬로 실행할 수 있는 최대 작업 수를 제어할 수 있습니다. 커넥터는 최대 설정보다 더 적은 작업을 생성할 수 있습니다. 예를 들어, 소스 데이터를 여러 파티션으로 분할할 수 없는 경우 커넥터가 더 적은 작업을 생성할 수 있습니다.

참고

Kafka Connect의 컨텍스트에서 파티션 은 외부 시스템의 주제 파티션 또는 데이터 shard 를 의미할 수 있습니다.

4.1.3. 작업자

작업자는 Kafka Connect 클러스터에 배포된 커넥터 구성을 사용합니다. 구성은 Kafka Connect에서 사용하는 내부 Kafka 항목에 저장됩니다. 또한 작업자는 커넥터와 해당 작업을 실행합니다.

Kafka Connect 클러스터에는 동일한 group.id 가 있는 작업자 그룹이 포함되어 있습니다. ID는 Kafka 내에서 클러스터를 식별합니다. ID는 KafkaConnect 리소스를 통해 작업자 구성에 할당됩니다. 작업자 구성은 내부 Kafka Connect 주제의 이름도 지정합니다. 주제는 커넥터 구성, 오프셋 및 상태 정보를 저장합니다. 이러한 주제의 그룹 ID와 이름은 Kafka Connect 클러스터에 고유해야 합니다.

작업자에는 하나 이상의 커넥터 인스턴스 및 작업이 할당됩니다. Kafka Connect 배포에 대한 분산 접근 방식은 내결함성 및 확장 가능합니다. 작업자 Pod가 실패하면 실행 중인 작업이 활성 작업자에 다시 할당됩니다. KafkaConnect 리소스의 replicas 속성 구성을 통해 작업자 Pod 그룹에 추가할 수 있습니다.

4.1.4. 변환

Kafka Connect는 외부 데이터를 변환하고 변환합니다. 단일 메시지 변환은 메시지를 대상 대상에 적합한 형식으로 변경합니다. 예를 들어 변환에서 필드를 삽입하거나 이름을 바꿀 수 있습니다. 변환은 데이터를 필터링하고 라우팅할 수도 있습니다. 플러그인에는 작업자가 하나 이상의 변환을 수행하는 데 필요한 구현이 포함됩니다.

  • 소스 커넥터는 데이터를 Kafka에서 지원하는 형식으로 변환하기 전에 변환을 적용합니다.
  • 싱크 커넥터는 데이터를 외부 데이터 시스템에 적합한 형식으로 변환한 후 변환을 적용합니다.

변환은 커넥터 플러그인에 포함하기 위해 JAR 파일에 패키지된 Java 클래스 파일 세트로 구성됩니다. Kafka Connect는 표준 변환 집합을 제공하지만 직접 생성할 수도 있습니다.

4.1.5. 컨버터

작업자가 데이터를 수신하면 변환기를 사용하여 데이터를 적절한 형식으로 변환합니다. KafkaConnect 리소스의 작업자 구성에서 작업자 에 대한 변환기를 지정합니다.

Kafka Connect는 JSON 또는 Avro와 같은 Kafka에서 지원하는 형식으로 데이터를 변환하거나 변환할 수 있습니다. 또한 데이터를 구조화하기 위한 스키마를 지원합니다. 데이터를 구조화된 형식으로 변환하지 않으면 스키마를 활성화할 필요가 없습니다.

참고

특정 커넥터에 대한 변환기를 지정하여 모든 작업자에 적용되는 일반 Kafka Connect 작업자 구성을 덮어쓸 수도 있습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat