原文:mp.weixin.qq.com/s/Shc9Eoenf…
Python ETL新宠!Pathway实时数据框架,性能吊打Flink、Spark!
[pathway] 是一个用于流处理、实时分析、LLM管道和RAG的Python ETL框架。简单讲,它能帮助开发者用Python高效处理实时数据流并构建大模型应用。适用人群:数据工程师、AI开发者、需要实时数据处理能力的技术团队。
主要语言:Python
stars: 55.9k
仓库简介
Pathway 是一个用于流处理、实时分析、大语言模型(LLM)管道和检索增强生成(RAG)的 Python ETL 框架。它拥有易于使用的 Python API,能无缝集成各类 Python ML 库,代码可在开发和生产环境中使用,有效处理批量和流式数据。该框架由基于 Differential Dataflow 的可扩展 Rust 引擎提供支持,能执行增量计算,所有管道都保存在内存中,可通过 Docker 和 Kubernetes 轻松部署。
核心功能
- 流处理与实时分析:适用于事件处理和实时分析管道,如实时 ETL、事件驱动的警报管道、实时分析等。
- LLM 管道与 RAG:提供专门的 LLM 工具,可构建实时 LLM 和 RAG 管道,包含常见 LLM 服务的包装器和实用工具。
- 数据连接:具备多种连接器,可连接 Kafka、GDrive、PostgreSQL、SharePoint 等外部数据源,通过 Airbyte 连接器能连接 300 多种不同数据源,也可自定义连接器。
- 数据转换:支持无状态和有状态的转换,如连接、窗口化和排序,许多转换直接在 Rust 中实现,也可使用任意 Python 函数。
- 持久化:提供持久化功能,可保存计算状态,便于在更新或崩溃后重启管道。
- 一致性处理:自动处理时间问题,确保计算结果的一致性,能处理延迟和乱序数据点,免费版提供“至少一次”一致性,企业版提供“恰好一次”一致性。
- LLM 辅助工具:提供 LLM 扩展,包含集成 LLM 与数据管道所需的实用工具,如 LLM 包装器、解析器、嵌入器、拆分器,以及内存中的实时向量索引,还集成了 LlamaIndex 和 LangChain。
优势
- 易用性:提供简单的 Python API,方便用户使用,可轻松集成喜欢的 Python ML 库。
- 通用性:同一代码可用于本地开发、CI/CD 测试、批量作业、流重放和数据流处理。
- 高性能:由 Rust 引擎驱动,支持多线程、多进程和分布式计算,能突破 Python 的限制。
- 可扩展性:适用于不同规模的项目,企业版支持分布式计算和 Kubernetes 部署。
- 监控方便:自带监控仪表盘,可跟踪每个连接器发送的消息数量和系统延迟,还包含日志消息。
应用场景
- 实时数据分析:处理实时数据流,进行实时分析和决策。
- LLM 应用开发:构建 LLM 管道和 RAG 应用,实现实时问答、智能客服等功能。
- 数据集成与 ETL:从不同数据源提取、转换和加载数据。
安装与使用
- 安装:使用
pip install -U pathway进行安装,要求 Python 3.10 或更高版本,支持 MacOS 和 Linux,其他系统需在虚拟机上运行。 - 示例代码:以下是一个实时计算正数之和的示例:
import pathway as pw
# Define the schema of your data (Optional)
class InputSchema(pw.Schema):
value: int
# Connect to your data using connectors
input_table = pw.io.csv.read(
"./input/",
schema=InputSchema
)
# Define your operations on the data
filtered_table = input_table.filter(input_table.value >= 0)
result_table = filtered_table.reduce(
sum_value=pw.reducers.sum(filtered_table.value)
)
# Load your results to external systems
pw.io.jsonlines.write(result_table, "output.jsonl")
# Run the computation
pw.run()
部署方式
- 本地部署:导入
pathway库,创建处理管道,使用pw.run()启动计算,可像普通 Python 脚本一样运行,也可使用pathway spawn命令,支持多线程。 - Docker 部署:可使用 Pathway 官方 Docker 镜像,也可使用标准 Python 镜像并安装 Pathway,支持单文件项目直接执行 Python 脚本。
- Kubernetes 和云部署:适合在云环境中使用 Kubernetes 部署,企业版支持分布式计算和外部持久化设置,也可使用 Render 等服务轻松部署。
文档与支持
- 完整文档可在 pathway.com/developers/ 查看,包括 API 文档。
- 如有问题,可在 GitHub 上开 issue,加入 Discord 社区,或发送邮件至 contact@pathway.com。
合作与集成
与 Databento、LangChain、LlamaIndex、MinIO、PaddleOCR、Redpanda 等项目合作,共同推动数据工程的发展。
OpenBB开源数据平台:打通多源数据,助力金融分析与AI应用!
[OpenBB] 是一个提供金融数据分析与集成的平台。简单讲,它是一个开源的金融数据工具,帮助分析师、量化交易员和AI代理获取、处理和分析金融市场数据。适用人群:金融分析师、量化开发者、AI研究人员
主要语言:Python
stars: 56.4k
核心功能
Open Data Platform by OpenBB (ODP) 是一个开源工具集,主要帮助数据工程师将专有、授权和公共数据源集成到下游应用程序,如 AI 助手和研究仪表盘。它作为“一次连接,随处使用”的基础设施层,能将数据整合并同时暴露到多个平台,包括供量化分析师使用的 Python 环境、供分析人员使用的 OpenBB Workspace 和 Excel、供 AI 代理使用的 MCP 服务器,以及供其他应用程序使用的 REST API。
代码架构特点
文档未明确提及具体的代码架构特点,但从功能描述来看,它采用模块化设计,不同数据来源和下游应用对应不同模块,保证了扩展性和兼容性。同时,它与 OpenBB Workspace 无缝集成,体现出良好的分层架构。
主要优势
- 数据整合优势:支持多种数据源整合,无论是专有数据、授权数据还是公共数据,都能通过 ODP 进行统一管理和使用。
- 多平台支持:可将数据提供给多种应用场景,满足不同用户的需求,包括量化分析师、普通分析人员、AI 开发者等。
- 开源特性:开源的特性使得开发者可以根据自身需求进行定制和扩展,同时也能借助社区的力量不断完善。
应用场景
- 量化分析:量化分析师可以在 Python 环境中使用 ODP 提供的数据进行投资策略的开发和回测。
- 数据分析:分析人员可以通过 OpenBB Workspace 可视化数据集,进行数据探索和分析。
- AI 开发:AI 开发者可以利用 ODP 提供的数据训练 AI 模型,为金融领域的智能决策提供支持。
- 其他应用开发:通过 REST API,其他应用程序可以方便地获取 ODP 中的数据,实现数据的共享和复用。