quixio/quix-streams
Python Streaming DataFrames for Kafka
quixio/quix‑streams – Kafka 上でのリアルタイムデータエンジニアリング用 Python フレームワーク
何であるか – Apache Kafka 上で信頼性の高いエンドツーエンドのストリーミングパイプラインを構築できるオープンソースの Python ライブラリです。Streaming DataFrame API と軽量な Application オブジェクトを提供し、Kafka 接続、シリアル化、ステート管理、正確に一度だけの保証を処理するため、変換ロジックに集中できます。
主な機能
- プア・Python 実装 – Java ラッパーまたはクロスランゲージデバッグの必要なし。
- 宣言的で表形式の処理(apply、filter、group-by、window、join など)に適した Streaming DataFrame API。
- 任意の Kafka トピックに接続可能なプラグイン可能な Sources と Sinks。
- JSON、Avro、Protobuf および Schema Registry 用の組み込みシリアライザ。
- フォールトトレラントなステートフル演算子と自動チェックポイント機能。
- Kafka トランザクションによる正確に一度だけの処理。
- 任意の 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 ファイルを参照)。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト