bytewax/bytewax

Python Stream Processing

解决的问题

Bytewax 提供了一种在 Python 中构建有状态流处理管道的方法。它弥合了 Apache Flink 或 Spark 等引擎的高性能分布式处理能力与 Python 生态系统易用性之间的差距,让开发者能够使用他们喜爱的 Python 库进行实时数据转换与机器学习。

运作方式

Bytewax 使用数据流计算模型,用户可以在其中定义算子与连接器的图表。数据从 Input(例如 Kafka 或 S3)流向 Operators(如 map 和 filter 等无状态转换,或 reduce 和 fold_window 等有状态转换),最后到达 Output(数据库或消息队列)。底层引擎使用 Rust 构建以确保性能与分布式能力,而接口则以 Python 为优先。

目标对象

它专为需要实时处理事件驱动数据、从本地开发扩展到 Kubernetes 集群,并将在线机器学习工作负载整合到数据管道中的开发者与数据工程师而设计。

特色亮点

  • Python-First 接口:使用标准 Python 库与工具进行管道定义。
  • 有状态处理:自动维护与恢复状态,支持事件时间窗口化与容错机制。
  • 分布式扩展:使用 waxctl 进行 Kubernetes 部署,可在多个工作节点上进行水平扩展。
  • 丰富的连接器生态系统:内置对 Kafka、文件系统、WebSockets 与 S3 的支持。

相关

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