프로젝트 소개

Redpanda Connect는 다양한 소스와 싱크 간에 데이터를 이동하는 스트림 프로세서로, 이동 과정에서 데이터 보강, 강화, 변환 및 필터링을 수행합니다. 파이프라인은 단일 YAML 파일로 선언되므로 스트림 토폴로지를 쉽게 읽고, 버전 관리하고, 검토할 수 있습니다. README에 설명된 주요 특징은 다음과 같습니다: - 선언적 파이프라인: 전체 토폴로지가 하나의 YAML 파일에 들어갑니다. - 기본적으로 최소 한 번 전달(at-least-once delivery)을 보장하며, 디스크에 영구 저장되지 않는 인프로세스 트랜잭션 모델을 사용합니다. 프로젝트에 따르면 이는 크래시, 디스크 손상 또는 기타 서버 장애 상황에서도 유지됩니다. - 클라우드 서비스, 메시지 브로커, 데이터베이스 및 HTTP를涵盖하는 대규모 커넥터 카탈로그. 명명된 예로는 AWS (DynamoDB, Kinesis, S3, SQS, SNS), Azure (Blob, Queue, Table), GCP (Pub/Sub, Cloud Storage, BigQuery), Kafka, NATS (JetStream, Streaming), NSQ, MQTT, AMQP 0.91 (RabbitMQ), AMQP 1, Redis, Cassandra, Elasticsearch, HDFS, HTTP (서버, 클라이언트, 웹소켓), MongoDB 및 SQL (MySQL, PostgreSQL, ClickHouse, MSSQL)이 있습니다. - Postgres, MySQL, MongoDB, Oracle 및 MSSQL을 위한 일급 변경 데이터 캡처(CDC) 커넥터를 제공하여 데이터베이스 변경 사항이 이벤트로 파이프라인을 통해 흐릅니다. - 스트림 데이터를 위해 설계된 매핑 언어인 Bloblang을 사용하여 변환 및 매핑을 수행합니다. - 클라우드 친화적 운영: 상태 비저장(stateless) 및 수평 확장 가능하며, 메트릭과 트레이싱이 내장되어 있습니다. README의 예시는 Postgres 변경 사항을 S3의 Apache Iceberg 테이블로 스트리밍하여 소스 테이블당 하나의 Iceberg 테이블을 만들고 스키마 진화 옵션을 보여줍니다. 설치 옵션에는 Linux zip 다운로드, macOS의 Homebrew, Docker 이미지가 포함됩니다. 단일 정적 바이너리 또는 컨테이너 이미지로 실행되며, `rpk connect run ./config.yaml` 또는 마운트된 구성 파일이나 인라인 재정의를 사용하는 Docker를 통해 호출됩니다. 관측 가능성: `/ping`은 항상 200을 반환하는 활성 프로브(liveness probe)이고, `/ready`는 입력과 출력이 모두 연결되면 200을 반환하고 그렇지 않으면 503을 반환하는 준비 프로브(readiness probe)입니다. 메트릭은 Statsd, Prometheus, JSON HTTP 엔드포인트 및 기타 백엔드로 노출될 수 있습니다. OpenTelemetry 트레이스는 엔드투엔드 파이프라인 가시성을 위해 기본적으로 생성됩니다. 확장성 및 개발: 사용자 정의 플러그인 구축을 위한 공개 Go API가 문서화되어 있으며, 예제 플러그인 저장소가 제공됩니다. 소스에서 빌드하려면 현재 지원되는 Go 버전이 필요하며 `task build:all`을 사용합니다. 외부 C 라이브러리(예: zmq4)를 링크하는 구성 요소는 기본적으로 제외되며 `x_benthos_extra` 빌드 태그로 활성화할 수 있습니다. 다단계 Dockerfile은 최소한의 scratch 기반 이미지를 생성합니다. 프로젝트는 golangci-lint와 gofumpt를 사용하며 `task fmt`, `task lint`, `task test` 대상을 제공합니다. 대부분의 통합 테스트는 Docker 컨테이너를 실행하며 기본 테스트 대상에서는 건너뜁니다.