Pathway 开源项目教程
1. 项目介绍
Pathway 是一个基于 Python 的 ETL(提取、转换、加载)框架,专为流处理、实时分析、LLM(大型语言模型)管道和 RAG(检索增强生成)而设计。它提供了一个简单易用的 Python API,可以无缝地集成您喜欢的 Python 机器学习库。Pathway 的代码既灵活又健壮,适用于开发和生产环境,能够有效地处理批量和流数据。
Pathway 由一个基于 Differential Dataflow 的可扩展 Rust 引擎提供动力,支持增量计算。尽管您的 Pathway 代码是用 Python 编写的,但实际上是由 Rust 引擎执行的,这使得多线程、多进程和分布式计算成为可能。所有的管道都保存在内存中,并且可以轻松地使用 Docker 和 Kubernetes 部署。
2. 项目快速启动
在开始之前,确保您的系统安装了 Python 3.10 或更高版本。以下是如何安装 Pathway 的步骤:
pip install -U pathway
以下是一个简单的示例,展示如何在实时中计算正值的和:
import pathway as pw
# 定义数据模式(可选)
class InputSchema(pw.Schema):
value: int
# 使用连接器连接到数据
input_table = pw.io.csv.read("./input/", schema=InputSchema)
# 定义数据操作
filtered_table = input_table.filter(input_table.value >= 0)
result_table = filtered_table.reduce(sum_value=pw.reducers.sum(filtered_table.value))
# 将结果加载到外部系统
pw.io.jsonlines.write(result_table, "output.jsonl")
# 运行计算
pw.run()
3. 应用案例和最佳实践
实时 ETL
Pathway 可以用于构建实时 ETL 管道,将数据从外部源如 Kafka、GDrive、PostgreSQL 或 SharePoint 中提取出来,转换后再加载到目标系统。
事件驱动管道与警报
Pathway 支持事件驱动的管道,可以根据数据事件触发实时警报或其他操作。
实时分析
Pathway 提供了统一引擎来处理批量和流数据,使得实时分析变得简单。
从批量处理切换到流处理
Pathway 使得从批量处理切换到流处理变得无缝,可以帮助用户轻松迁移现有的数据处理流程。
4. 典型生态项目
Pathway 的生态系统包括多种连接器,可以连接到超过 300 个不同的数据源。此外,Pathway 还提供了用于构建 LLM 和 RAG 管道的工具和库。以下是一些典型的生态项目:
- Airbyte 连接器:允许用户连接到更多的数据源。
- LLM 工具包:提供与常见 LLM 服务的包装器,简化了 LLM 和 RAG 管道的构建。
- Pathway Python 连接器:允许用户构建自定义连接器。
通过上述教程,您应该能够开始使用 Pathway 并探索其强大的功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考