quixio/quix-streams

Python Streaming DataFrames for Kafka

quixio/quix‑streams – Apache Kafka 上的实时数据工程 Python 框架

是什么 – 一个开源的 Python 库,可在 Apache Kafka 上构建可靠、端到端的流式数据管道。它提供 Streaming DataFrame API 和轻量级的 Application 对象,自动处理 Kafka 连接、序列化、状态管理以及精确一次处理保证,让您专注于转换逻辑。

核心功能

  • 纯 Python 实现 – 无需 Java 包装器或跨语言调试。
  • Streaming DataFrame API,支持声明式、表格化处理(apply、filter、group-by、window、join 等)。
  • 可插拔的 Sources 和 Sinks,用于连接任意 Kafka 主题。
  • 内置对 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 可用的地方 – 本地服务器、云虚拟机、容器,或托管的 Quix Cloud 平台(AWS、Azure、GCP)。无需额外的服务器端集群,仅需您已有的 Kafka broker。

社区与支持

  • Slack 社区、YouTube 频道、X(Twitter)和 LinkedIn 用于发布公告和教程。
  • 问题在 GitHub 上跟踪;项目采用 Apache 2.0 许可证。

适用人群

  • 构建实时 ETL/ELT 管道的数据工程师。
  • 需要将数据流式传输至模型以进行推理或在线学习的机器学习团队。
  • 依赖 Kafka 可扩展性和持久性的事件驱动微服务开发者。

许可证 – Apache 2.0(参见 LICENSE 文件)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目