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 文件)。
相关
- 项目
- 项目
- 项目
- 项目
- 项目