반응형
개요
- 데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 애플리케이션
- 반복작업에 대해서 매번 Producer, Consumer 애플리케이션의 배포/운영해야 하는 비효율 보완
- Connect 를 이용하면 특정한 작업 형태를 템플릿으로 만들어 놓은 Connector 를 실행함으로써 반복작업을 줄일 수 있음.
- Kafka 브로커와 별도의 클러스터를 구성하며 Connector 가 실행되는 환경을 제공
장단점
장점 | 단점 |
|
|
Confluent Platform 소개
Confluent Platform은 여러 소스 데이터를 이용하는 실시간 데이터 파이프라인과 스트리밍 애플리케이션을 쉽게 구축할 수 있는 Kafka 기반 플랫폼
Kafka를 창시한 Jay Kreps는 핵심 멤버들과 함께 Kafka 개발에 집중하기 위해 2014년에 Confluent라는 회사를 창업
Kafka를 Enterpise에서 SaaS 형태로 제공하는 솔루션
Java 뿐 아니라 다양한 랭귀지(C, .Net, Python)로 개발 가능
REST Proxy, MQTT Proxy 통해 Kafka 연결성 확보
100+ Pre-built Connectors 이용 가능하고, 표준 Schema 통한 개발로 운영 복잡성 제거
익숙한 SQL Syntax (ksqlDB) 사용하여 개발이 용이하고, 아키텍처를 단순화
License 검토
구분 | Desc |
Community License | Pre-built Connectors (Free) Confluent REST Proxy ksqlDB Confluent Schema Registry Confluent Admin REST API |
Enterprise License | Confluent Server (kafka) Schema Linking Pre-builtConnectors (Premium, Commercial) Confluent Control Center Confluent for Kubernetes Confluent Replicator MQTT Proxy |
Developer License | Confluent Platform features for free single broker per cluster 여러 single broker cluster 사용은 가능 |
Confluent Platform Overview
cluster 선택 페이지
메인 overview 페이지
토픽 상세 페이지 중 일부
Pre-built Connectors
Kafka 생태계에 참여하는 각 회사에서 Connector 제공
Confluent Platform에서 요구사항에 맞춰 개발한 Connector 제공 (대부분 유료)
종류
- Source Connector: 소스로부터 데이터를 토픽으로 발행하는 커넥터
- Sink Connector: 토픽으로부터 데이터를 소스에 적재하는 커넥터
- Transform Connector: source / sink 커넥터로 데이터가 가기 전 컨버팅을 수행하는 커넥터
Free Connectors (23년 상반기 기준)
구분 | Connectors | 종류 | Desc |
DB Connector | JDBC Connector (Source and Sink) | Source, Sink | |
Redis Connector (Source and Sink) by Redis | Source, Sink | ||
MongoDB Connector (Source and Sink) | Source, Sink | ||
각종 CDC Connector | Source, Sink | CDC | |
converter | Kafka Connect Protobuf Converter | Transform | kafka schema registry 대상 컨버터 |
Kafka Connect Avro Converter | Transform | ||
Kafka Connect JSON Schema Converter | Transform | ||
Kafka Connect Common Transformations | Transform | ||
Kafka Connect JSON Schema Transformations | Transform | validation, filter, ket,value convert | |
External System Connector | Snowflake Sink Connector | Sink | |
HDFS 2 Sink Connector | Sink | ||
ElasticSearch Source / Sink Connector | Source, Sink | ||
Amazon S3 Sink Connector | Sink | ||
Google BigQuery Sink Connector | Sink | ||
Spooldir Source Connector | Source | ||
FilePulse Source Connector | Source | ||
Datadog Logs Sink Connector | Sink | ||
Twitter Source Connector | Source | ||
AWS Lambda Sink Connector | Sink | ||
Shell Sink/Source Connector | Source, Sink | ||
IRC Source Connector | Source | ||
RSS Source Connector | Source | ||
기타 | Datagen Source Connector | Source | MockData generator (for develop) |
Connector 사용 예시 (with Confluent Platform)
Ex: MongoSinkConnector
각종 설정은 각 Connector 제작자의 document를 따른다
Mongo 커넥터의 경우 MongoDB 단체에서 제작 및 배포
옵션 | Desc |
Topic 관련 | 어느 토픽에서 데이터를 가져올 것인가 |
Common | kafka에서 가져온 데이터 가져오는 방법 binary data → connector input |
Transform | transform connector 설정 |
Error Handling | 에러 처리 관련 에러가 발생했을 때 핸들링하는 방법 설정 |
Errors | 커넥터 자체의 에러에 대한 설정 (기동할 때 등) |
Connection | MongoDB connection |
Overrides | 기존 설정에 대해서 override |
Namespace | Sink 할 대상 database, collection 지정 |
Writes | DB에 write 할 때의 설정 timeout, retry 정책 등 |
Post Processing | key, value filtering, field rename |
Id Strategies |
생성할 record의 id 정책 (_id 관련) |
Change Data Capture | CDC 관련 핸들링 |
Conclusion
- 비즈니스 로직이 없는 단순 ETL에 경우 활용 가능
- 관리의 편의성이 목적인데, Confluent Platform 같은 솔루션이 없으면 편의성 크게 상실
- Connector 설정이 생각보다 복잡 (Connector vendor에 따라서 속성이 너무 많음)
- 현 상황에서는 ElasticSearch를 kafka에 붙이는 용도, 테스트 데이터 발행하는 용도로 사용 가능
REFERENCE
https://docs.confluent.io/platform/current/connect/index.html
https://docs.confluent.io/platform/7.4/overview.html
반응형
'개발 일지' 카테고리의 다른 글
Webclient 동작 원리 및 Configuration (0) | 2023.05.30 |
---|---|
HttpClient (Netty) Configuration 정리 (0) | 2023.05.25 |
Kafka Schema Registry (0) | 2023.05.23 |
Apache Avro 란 (2) | 2023.05.22 |
브라우저와 Redirect (feat. XMLHttpRequest) (0) | 2023.05.19 |