
pathway
一份 Python 代码,同时跑批处理和实时流,还能接 RAG。
Pathway 是一个用 Python 编写的开源 ETL 与流处理框架,核心定位是把批处理和流处理统一到同一套代码里。它解决的是传统数据管道中批与流两套系统割裂、维护成本高的问题:用户只需写一次逻辑,就能同时处理历史数据和实时增量数据。框架底层基于 Rust 引擎,支持增量计算,数据更新时只重算受影响的部分,因此能高效支撑实时分析、IoT 监控、事件驱动应用等场景。Pathway 还内置了 LLM 管道和 RAG 能力,可以把文档、向量索引、实时数据源串成可自动更新的检索增强生成流程,让知识库随数据变化持续刷新。它提供连接器对接 Kafka、CSV、数据库等常见数据源,适合需要低延迟、持续更新的数据工程与 AI 应用团队。
项目数据
使用教程
环境要求
- Python 3.10 或以上
- macOS 或 Linux 系统(其他系统需在虚拟机中运行)
- Docker(可选,用于容器化运行)
安装与启动步骤
-
1安装 Pathway
在 macOS 或 Linux 上使用 pip 安装最新版 Pathway 框架。注意 Python 版本需 3.10 及以上。
pip install -U pathway -
2编写管道脚本
新建脚本文件(如 main.py),导入 pathway 并搭建处理管道,最后调用 pw.run() 启动计算。
import pathway as pw # 在这里编写你的处理管道 pw.run() -
3本地运行脚本
像普通 Python 脚本一样运行。内置监控面板可查看各连接器发送的消息数与系统延迟。
python main.py -
4用 pathway 命令启动
也可用 pathway 包装命令启动,原生支持多线程;用 --threads 指定线程数,例如 3 个线程。
pathway spawn --threads 3 python main.py -
5Docker 运行单文件
单文件项目无需写 Dockerfile,直接挂载当前目录到 /app,用官方镜像执行脚本即可。
docker run -it --rm --name my-pathway-app -v "$PWD":/app pathwaycom/pathway:latest python my-pathway-app.py -
6用 Dockerfile 构建
也可基于标准 Python 镜像写 Dockerfile:安装 Pathway、拷贝脚本并设为启动命令。
FROM --platform=linux/x86_64 python:3.10 RUN pip install -U pathway COPY ./pathway-script.py pathway-script.py CMD ["python", "-u", "pathway-script.py"]
如何确认成功
脚本运行后终端无报错,且监控 dashboard 能显示各连接器的消息数量与系统延迟日志。
常见问题
Q:Windows 系统可以安装吗?
A:不可以。Pathway 目前仅支持 macOS 和 Linux,其他系统的用户需要在虚拟机上运行。
Q:如何让程序使用多线程?
A:用 pathway 命令启动并指定线程数,例如 pathway spawn --threads 3 python main.py。
Q:不想写 Dockerfile 怎么用 Docker 跑?
A:单文件项目可直接用官方镜像执行:docker run -it --rm -v "$PWD":/app pathwaycom/pathway:latest python 你的脚本.py。
Q:怎样快速创建一个 Pathway 项目?
A:官方提供了 cookiecutter 模板,仓库地址为 https://github.com/pathwaycom/cookiecutter-pathway。
Q:没有本地环境可以体验吗?
A:可以在 Google Colab 中运行 Pathway 示例,链接见 README 的 Getting Started 部分。
注意事项
- Pathway 仅在 macOS 与 Linux 上可用,Windows 用户需借助虚拟机。
- pw.run() 是启动流式计算的必需调用,缺少它管道不会执行。
- 官方 Dockerfile 示例使用 platform 为 linux/x86_64 的 python:3.10 基础镜像。
- 更多示例代码可在项目仓库的 examples 目录中查看。
核心亮点
- 批流统一:同一套 Python 代码既能回填历史数据,又能持续处理实时增量,不用维护两套管道
- 基于 Rust 的增量计算引擎,数据更新时只重算变化部分,实时场景延迟和资源开销更低
- 原生支持 LLM 管道与 RAG,文档索引可随数据源变化自动更新,省去手动重建向量库
不足之处
- 生态和连接器数量相比 Flink、Spark 等成熟大数据框架仍偏少
- Python 层抽象较重,深度调优和排查底层问题时需要理解其引擎机制
适用场景
- 实时风控与异常检测:持续消费 Kafka 事件流,秒级更新指标并触发告警
- 企业知识库 RAG:把内部文档和数据库变更实时同步进向量索引,问答结果始终最新
- IoT 数据分析:对设备上报的流式数据做增量聚合与看板展示,兼顾历史回算
替代项目
Apache Flink、Apache Spark、Bytewax
项目介绍
下一篇:llm-d-kv-cache
同类项目推荐
freebuff-proxy
开源
聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。
OpenAI-compatible gateway for FreeBuff coding models. Token pool, session lifecycle,···
microduck
开源
用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。
A Tiny biped duck robot
soperator
开源
用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。
Run Slurm in Kubernetes
ollama
开源
一条命令本地跑起大模型,免费、私密、不卡顿
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···