7.1K+ Star!Pathway:一个实时数据处理ETL框架

欢迎关注我,持续获取更多内容,感谢&在看~

Pathway 简介

Pathway[1] 是一个Python ETL(Extract-Transform-Load)框架,专注于流处理、实时分析、大型语言模型(LLM)管道和检索-生成(RAG)应用。它提供了一个易于使用的Python API,可以无缝集成你最喜欢的Python机器学习库。

Pathway代码具有通用性和鲁棒性,可以在开发和生产环境中使用,有效处理批处理和流数据。同样的代码可以用于本地开发、CI/CD测试、运行批处理作业、处理流重放和数据流处理。

7.1K+ Star!Pathway:一个实时数据处理ETL框架

项目特点

主要特点

  • 易用的Python API:无缝集成Python机器学习库。
  • 批处理与流处理统一引擎:简化数据处理流程。
  • 强大的Rust引擎:基于Differential Dataflow,执行增量计算,支持多线程、多进程和分布式计算。
  • 内存中的数据管道:易于使用Docker和Kubernetes部署。
  • 连接器丰富:支持连接到Kafka、GDrive、PostgreSQL或SharePoint等外部数据源。
  • 无状态和有状态转换:支持诸如连接、窗口和排序等有状态转换。
  • 持久性:提供计算状态的保存,以便在更新或崩溃后重启管道。
  • 一致性:自动处理时间,确保所有计算一致性,管理迟到和乱序的数据点。
  • LLM助手:提供LLM扩展,包含所有实用工具以将LLM集成到数据管道中。

使用场景

Pathway适用于多种数据处理管道,包括:

  • 实时ETL
  • 事件驱动的管道与告警
  • 实时分析
  • 从批处理转换为流处理

项目使用

安装

Pathway需要Python 3.10或以上版本。可以使用pip安装:

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()

部署

  • 本地部署:直接导入Pathway并运行。
  • Docker部署:使用Pathway的Docker镜像。
  • Kubernetes和云部署:适合需要扩展Pathway应用的场景。

项目资源

  • 完整文档[2]
  • API文档[3]
  • 公共仓库[4]:例如示例、库、连接器等
7.1K+ Star!Pathway:一个实时数据处理ETL框架

注:本文内容仅供参考,具体项目特性请参照官方 GitHub 页面的最新说明。

欢迎关注&点赞&在看,感谢你的阅读~


资源列表
[1]

Github地址:https://github.com/pathwaycom/pathway

[2]

完整文档:https://pathway.com/developers/

[3]

API文档:https://pathway.com/developers/api-docs/pathway

[4]

公共仓库:https://github.com/pathwaycom

原文始发于微信公众号(AIGC创想者):7.1K+ Star!Pathway:一个实时数据处理ETL框架

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/314811.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!