Kafka Connect - 7장 Rest API 활용하여 관리
·
DataPipeline/Kafka
기본적으로 REST API는 8083 포트에서 사용할 수 있으며 보안되지 않습니다. ( 인증 기능 추가 가능 )REST API는 모든 요청 본문이 콘텐츠 유형 application/json 을 사용할 것으로 예상하며모든 응답도 해당 콘텐츠 유형을 사용하여 보냅니다. 목차 커넥터 생성 및 삭제하기커넥터 구성커넥터의 수명 주기 제어커넥터 오프셋 나열문제 디버깅 커넥터 생성 및 삭제클러스터의 버전을 확인$ curl localhost:8083{ "version": "3.5.0", "commit": "c97b88d5db4de28d", "kafka_cluster_id": "PSCn87RpRoqhfjAs9KYtuw"} 사용할 수 있는 커넥터 플러그인 확인기본적으로 여기에는 Kafka Connect 클러스터에 설..
Kafka Connect - 4장 효과적인 데이터 파이프라인 설계
·
DataPipeline/Kafka
데이터 변환데이터 파이프라인을 통해 데이터가 흐를 때 두가지 패턴을 사용한다.ETL: 저장 공간이 제한된 시스템ELT: 오랫동안 데이터가 원본을 유지하여 다른 목적으로 재사용 용이 카프카 커넥트는 이동중에 데이터를 변환할 수 있는 트랜스포메이션이 있으며 이는 ETL에 적합하다.아래는 민감한 개인정보를 숨김 처리하는 카프카커넥트 예시이다. 시스템간 데이터 맵핑데이터파이프라인을 구축할 때 서로 시스템간의 데이터를 맵핑을 꼼꼼히 따져봐야하며이를 위해 카프카커넥트 태스크와 카프카의 파티션 사이의 상호작용을 고려해야 한다. 단일 태스크와 단일 파티션은 순서를 보장한다. 중복을 방지하기 위해 각각의 데이터를 읽는 복수의 태스크 개별 소스 커넥터는 어느 파티션으로 보낼지 직접 선택하거나 이미 정의된 파티셔닝 전략을..
kafka - connector 구성요소
·
DataPipeline/Kafka
구성 요소 ( Connector, Converter, Transform )Kafka Connect는 여러 컴포넌트로 구성된 플러그형 아키텍처를 바탕으로 유연한 데이터 통합 파이프라인을 제공합니다. 주요 컴포넌트로는 데이터 소스 및 싱크와 상호작용하는 커넥터(Connectors), 데이터 직렬화/역직렬화를 담당하는 컨버터(Converters), 데이터 변환을 수행하는 변환기(Transforms)가 있습니다. ConnectorKafka Connect 파이프라인의 주요 구성 요소는데이터가 어디에서 복사되어야 하는지를 정의하는 커넥터 인스턴스입니다. 커넥터 인스턴스에 의해 구현되거나 사용되는 모든 클래스는 해당 커넥터 플러그인에 정의되어 있고,이러한 플러그인은 코드 작성을 하지 않고 다운로드, 설치 및 사용할 ..
실전 카프카 - 11장 카프카 커넥트
·
DataPipeline/Kafka
핵심 개념소스 커넥트데이터 소스와 카프카 사이에서 프로듀서 역할을 합니다. 싱크 커넥트카프카와 타겟시스템 사이에서 컨슈머 역할을 합니다.  내부 동작Partitioning (파티셔닝)커넥터에 복사되어야 하는 데이터들은 레코드 순서에 맞추어 파티셔닝 됩니다.커넥트에서 나눈 파티션은 카프카 파티션과 용어만 같을 뿐입니다. Tasks (태스크)커넥터가 병렬로 실행될 수 있도록 여러 태스크(Task)로 나뉩니다. 커넥터가 여러 태스크로 분할되면 병렬 작업을 통해 성능을 개선할 수 있습니다. Topic (토픽)태스크들은 다수의 토픽으로 전송됩니다. Connect Converter (커넥트 컨버터 )소스 -> 카프카로 전달할 때 직렬화(serialization)카프카 -> 싱크로 전달할 때 역직렬화(deserial..
실전 카프카 - 10장 스키마 레지스트리
·
DataPipeline/Kafka
[ 스키마의 개념 ]카프카에서는 토픽으로 전송되는 메세지에 대해 미리 형식을 정의한 후 전송함으로써DB 스키마와 같은 효과를 얻을 수 있습니다.  스키마를 통해 데이터를 consume하는 여러 부서가 있다면스키마를 통해 데이터에 대한 정확한 정의 및 데이터 변경여부를 알려 줄 수 있습니다. 또한 데이터 형식을 벗어난 데이터 필드에 대해 미리 파악 할 수 있습니다.  [ 스키마 레지스트리 ]카프카에서 스키마를 활용하는 방법은 스키마 레지스트리라는를 애플리케이션을 이용하는 것 입니다.아키텍처스키마 레지스트리는 카프카와 별도로 구성된 독립적인 애플리케이션으로,프로듀서 / 컨슈머와 직접 통신합니다.  [ 에이프로(Avro) 포맷 ]스키마 레지스트리가 지원하는 대표적인 데이터 포맷은 에이브로(Avro)이며데이터 ..
실전 카프카 - 6장 컨슈머 동작원리와 구현
·
DataPipeline/Kafka
[ 컨슈머 오프셋 관리 ]- 컨슈머의 동작 중 핵심은 오프셋 관리 ( 컨슈머가 메세지를 어디까지 읽었는지 )- 컨슈머들은 지정된 토픽의 메세지를 읽은 뒤, 오프셋 정보를 _consumer_offests 파일에 기록합니다.- 컨슈머 그룹에서 컨슈머의 변경이 발생하면 _consumer_offests 통해 읽은 위치를 추적할 수 있습니다. [ 그룹 코디네이터 ]- 안정적인 컨슈머 그룹 관리를 위해 별도의 코디네이터가 존재합니다.- 컨슈머 그룹이 구독한 토픽들을 트래킹하여, 작업을 균등하게 재분해하기 위해 리벨런싱 동작을 수행합니다.( 새로운 컨슈머가 그룹 내에 추가되거나 삭제되는 멤버에 변화가 생기면 수행 )- 컨슈머들의 변경을 가지하기 위해 그룹 코디네이터와 컨슈머들은 서로 하트비트를 주고 받습니다.컨슈머 ..
실전 카프카 - 5장 프로듀서 동작원리와 구현
·
DataPipeline/Kafka
[ 파티셔너 ]피텨셔너는 프로듀서가 토픽으로 메세지를 보낼 때, 토픽의 어느 파티션으로 메세지를 보내야 할지를 결정합니다.메세지 키를 해시처리해 파티션을 구하는 방식을 결정합니다. 라운드로빈 전략별도의 메세지 키가 지정되지 않으면 라운드로빈 알고리즘을 활용해 토픽의 파티션들로 랜덤 전송합니다.producer로 전송을 위한 파티션별 최소 레코드 수 기준(batch size)을 채우지 못한 경우,프로듀서의 버퍼 메모리 영역에서 대기가 길어질 수 있습니다. 스티키 파티셔닝 전략 카프카 2.4버전 이후로 이를 위해 스티키 파티셔닝 전략을 사용하게 됩니다.배치 전송을 위한 필요 레코드수를 하나의 파티션에 먼저 채워서 빠르게 배치 전송하는 전략입니다.P1, P2 .. 는 batch.size이고 P1 + P2 .. ..
실전 카프카 - 4장 내부 동작 원리와 구현
·
DataPipeline/Kafka
[ 리플리케이션 ]안정성을 확보하기 위해 카프카 내부에서는 리플리케이션이라는 동작을 실행합니다.토픽의 리플리케이션(복제)를 통해 데이터의 유실을 방지하며, 토픽 생성시 필수로 입력해야 합니다. ( replication-factor 옵션 )# 토픽 생성/kafka/bin/kafka-topic.sh --bootstrap-server server1.name.com:9020 \--create --topic test01 --partitions 1 --replication-factor 3# 생성된 토픽 정보 확인하여 replication 여부 확인/kafka/bin/kafka-topic.sh --bootstrap-server server1.name.com:9020 \--topic test01 --describe이후..
wave35
'DataPipeline/Kafka' 카테고리의 글 목록