quixio/quix-streams

Python Streaming DataFrames for Kafka

quixio/quix‑streams – Apache Kafka 위에서 실시간 데이터 엔지니어링을 위한 Python 프레임워크

무엇인가요 – Apache Kafka 위에서 신뢰성 있고 종단 간(end-to-end) 스트리밍 파이프라인을 구축할 수 있는 오픈소스 Python 라이브러리입니다. Streaming DataFrame API와 가벼운 Application 객체를 제공하여 Kafka 연결, 직렬화, 상태 관리, 정확히 한 번만 처리 보장을 자동으로 처리해 주므로, 변환 로직에만 집중할 수 있습니다.

주요 기능

  • 순수 Python 구현 – Java 래퍼나 크로스 랭귀지 디버깅이 필요 없음.
  • 선언적이고 표 형식 처리(apply, filter, group-by, window, join 등)에 적합한 Streaming DataFrame API.
  • 임의의 Kafka 토픽에 연결 가능한 플러그인 가능한 Sources 및 Sinks.
  • JSON, Avro, Protobuf 및 스키마 레지스트리용 내장 시리얼라이저.
  • 장애에 강한 상태 기반 연산자와 자동 체크포인팅 기능.
  • Kafka 트랜잭션을 통한 정확히 한 번만 처리(Exactly-once processing).
  • 모든 Python 기반 분석 또는 ML 라이브러리와 호환되어, 실시간 스트림에 모델 추론 또는 학습을 쉽게 통합할 수 있음.

일반적인 워크플로우

from quixstreams import Application

app = Application(broker_address="localhost:9092")

in_topic  = app.topic("temperature-celsius", value_deserializer="json")
out_topic = app.topic("temperature-alerts",  value_serializer="json")

sdf = app.dataframe(topic=in_topic)
# 변환, 필터링 후 출력
sdf = sdf.apply(lambda v: {"temperature_F": v["temperature"]*9/5 + 32})
        .filter(lambda v: v["temperature_F"] > 150)
        .to_topic(out_topic)

app.run()

Application은 자동으로 소비, 역직렬화, DataFrame 로직 실행, 결과 생성, 상태 체크포인팅을 처리합니다.

시작하기

  • PyPI를 통해 설치: python -m pip install quixstreams (또는 Conda).
  • Python 3.11+ 및 Kafka 0.10+ 필요.
  • 전체 문서, 빠른 시작 가이드, 여러 튜토리얼(단어 카운트, 이상 탐지, 구매 필터링, 태양광 발전소 데이터 확장 등)은 https://quix.io/docs/quix-streams 에서 제공됩니다.

실행 환경

  • Python이 사용 가능한 곳이라면 어디서든 – 온프레미스 서버, 클라우드 VM, 컨테이너, 또는 관리형 Quix Cloud 플랫폼(AWS, Azure, GCP). 기존에 사용 중인 Kafka 브로커 외에 추가 서버 사이드 클러스터가 필요하지 않습니다.

커뮤니티 및 지원

  • Slack 커뮤니티, YouTube 채널, X(Twitter), LinkedIn에서 발표 및 튜토리얼을 제공.
  • 이슈는 GitHub에서 관리. 프로젝트는 Apache 2.0 라이선스 하에 제공됩니다.

누가 사용할 수 있나요

  • 실시간 ETL/ELT 파이프라인을 구축하는 데이터 엔지니어.
  • 추론 또는 온라인 학습을 위해 모델과 데이터를 스트리밍해야 하는 머신러닝 팀.
  • Kafka의 확장성과 내구성을 기반으로 하는 이벤트 기반 마이크로서비스 개발자.

라이선스 – Apache 2.0 (LICENSE 파일 참조).

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트