超级方便的轻量级Python流水线工具,还有漂亮的可视化界面!

超级方便的轻量级Python流水线工具,还有漂亮的可视化界面 Mara-pipelines 是一个轻量级的数据转换框架,具有透明和低复杂性的特点。其他特点如下: 基于非常简单的Python代码就能完成流水线开发。 使用 PostgreSQL 作为数据处理引擎。 有Web界面可视化分析流水线执行过程。 基于 Python 的 multiprocessing 单机流水线执行。不需要分布式任务队列。轻松调试和输出日志。 基于成本的优先队列:首先运行具有较高成本(基于记录的运行时间)的节点。 此外,在Mara-pipelines的Web界面中,你不仅可以查看和管.. 阅读详情

Mara-pipelines 是一个轻量级的数据转换框架,具有透明和低复杂性的特点。其他特点如下:

  • 基于非常简单的Python代码就能完成流水线开发。

  • 使用 PostgreSQL 作为数据处理引擎。

  • 有Web界面可视化分析流水线执行过程。

  • 基于 Python 的 multiprocessing 单机流水线执行。不需要分布式任务队列。轻松调试和输出日志。

  • 基于成本的优先队列:首先运行具有较高成本(基于记录的运行时间)的节点。

此外,在Mara-pipelines的Web界面中,你不仅可以查看和管理流水线及其任务节点,你还可以直接触发这些流水线和节点,非常好用:

1.安装

由于使用了大量的依赖,Mara-pipelines 并不适用于 Windows,如果你需要在 Windows 上使用 Mara-pipelines,请使用 Docker 或者 Windows 下的 linux 子系统。

使用pip安装Mara-pipelines:

pip install mara-pipelines

或者:

pip install git+https://github.com/mara/mara-pipelines.git

2.使用示例

这是一个基础的流水线演示,由三个相互依赖的节点组成,包括 任务1(ping_localhost), 子流水线(sub_pipeline), 任务2(sleep):

# 注意,这个示例中使用了部分国外的网站,如果无法访问,请变更为国内网站。
from mara_pipelines.commands.bash import RunBash
from mara_pipelines.pipelines import Pipeline, Task
from mara_pipelines.ui.cli import run_pipeline, run_interactively

pipeline = Pipeline(
    id='demo',
    description='A small pipeline that demonstrates the interplay between pipelines, tasks and commands')

pipeline.add(Task(id='ping_localhost', description='Pings localhost',
                  commands=[RunBash('ping -c 3 localhost')]))

sub_pipeline = Pipeline(id='sub_pipeline', description='Pings a number of hosts')

for host in ['google', 'amazon', 'facebook']:
    sub_pipeline.add(Task(id=f'ping_{host}', description=f'Pings {host}',
                          commands=[RunBash(f'ping -c 3 {host}.com')]))

sub_pipeline.add_dependency('ping_amazon', 'ping_facebook')
sub_pipeline.add(Task(id='ping_foo', description='Pings foo',
                      commands=[RunBash('ping foo')]), ['ping_amazon'])

pipeline.add(sub_pipeline, ['ping_localhost'])

pipeline.add(Task(id='sleep', description='Sleeps for 2 seconds',
                  commands=[RunBash('sleep 2')]), ['sub_pipeline'])

可以看到,Task包含了多个commands,这些 command s会用于真正地执行动作。

而 pipeline.add 的参数中,第一个参数是其节点,第二个参数是此节点的上游。如:

pipeline.add(sub_pipeline, ['ping_localhost'])

则表明必须执行完 ping_localhost 才会执行 sub_pipeline.

为了运行这个流水线,需要配置一个 PostgreSQL 数据库来存储运行时信息、运行输出和增量处理状态:

import mara_db.auto_migration
import mara_db.config
import mara_db.dbs

mara_db.config.databases \
    = lambda: {'mara': mara_db.dbs.PostgreSQLDB(host='localhost', user='root', database='example_etl_mara')}

mara_db.auto_migration.auto_discover_models_and_migrate()

如果 PostgresSQL 正在运行并且账号密码正确,输出如下所示(创建了一个包含多个表的数据库):

Created database "postgresql+psycopg2://root@localhost/example_etl_mara"

CREATE TABLE data_integration_file_dependency (
    node_path TEXT[] NOT NULL, 
    dependency_type VARCHAR NOT NULL, 
    hash VARCHAR, 
    timestamp TIMESTAMP WITHOUT TIME ZONE, 
    PRIMARY KEY (node_path, dependency_type)
);

.. more tables

为了运行这个流水线,你需要:

from mara_pipelines.ui.cli import run_pipeline

run_pipeline(pipeline)

这将运行单个流水线节点及其 (sub_pipeline ) 所依赖的所有节点:

run_pipeline(sub_pipeline, nodes=[sub_pipeline.nodes['ping_amazon']], with_upstreams=True)

3.Web 界面

我认为 mara-pipelines 最有用的是他们提供了基于Flask管控流水线的Web界面。

对于每条流水线,他们都有一个页面显示:

  • 所有子节点的图以及它们之间的依赖关系

  • 流水线的总体运行时间图表以及过去 30 天内最昂贵的节点(可配置)

  • 所有流水线节点及其平均运行时间和由此产生的排队优先级的表

  • 流水线最后一次运行的输出和时间线


对于每个任务,都有一个页面显示

  • 流水线中任务的上游和下游

  • 最近 30 天内任务的运行时间

  • 任务的所有命令

  • 任务最后运行的输出

此外,流水线和任务可以直接从网页端调用运行,这是非常棒的特点:

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。

左手Python,右手Java,升职就业不愁啦!



推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,领AI全套资料
PyRunner:轻量级Python脚本管理与调度工具实战指南 在Python自动化开发中,任务调度与脚本管理是提升工程效率的关键环节。传统方式如crontab或手动执行,往往面临环境隔离困难、状态监控缺失和依赖冲突等挑战。通过引入轻量级调度工具,开发者可以实现脚本的集中管理、可视化监控和自动化执行,从而优化工作流程。PyRunner正是为此设计的解决方案,它提供了任务配置、环境隔离和依赖管理等核心功能,特别适合管理中小规模的Python脚本集合。结合虚拟环境和日志管理,PyRunner能有效解决脚本散落、手动操作繁琐等痛点,适用于数据清洗、定时爬虫和报表生成等常见应用 阅读详情

相关推荐

Python Luigi 【工作流管理库】简介

Luigi 是构建 Python 批处理管道的轻量级解决方案,适合中小规模数据流水线。通过明确定义任务依赖和原子化操作,它能有效提升数据流程的可靠性和可维护性。对于需要高复杂度调度或流处理的场景,可评估 Airflow 等工具。

记录点滴 1104

python自动控制生产线输送线_(完整版)(完整版)自动流水线输送系统设计说明书...

1第一章引言1.1课题提出背景制造业历来是国民经济的重要组成部分为了提高制造业的技术水平,制造业在其发展历程中一直在进行着不同水平、不同类型的自动化。进人8十年代后,随着微电子技术和通信技术的吃速发展,制造业自动化进人到一个新的姗代一基于计算机的集成制造时代,并且正在向基于人工智能,人—机协调,人—自然协调的生态工厂时代迈进。促使制造业自动化发展的3个技术因素是:自动化单元技术:自动化的方法学或哲...

weixin_39737240的博客 638

利用 Openocd 和 FT2232H 实现 ARMv8(Coretex-A53)高效调试方案

本文详细介绍了如何利用开源工具OpenOCD与高性能USB转接芯片FT2232H,构建一套针对ARMv8架构(如Cortex-A53)的高效、低成本调试方案。内容涵盖从环境搭建、驱动配置、核心调试架构解析到实战问题排查的全过程,帮助开发者实现对多核处理器的透明、可控调试,是嵌入式Linux及底层开发的实用指南。

weixin_29163581的博客 280

python实现Ethernet/IP协议的客户端(一)

Ethernet/IP是一种工业自动化领域中常用的网络通信协议,它是基于标准以太网技术的应用层协议。作为工业领域的通信协议之一,Ethernet/IP 提供了一种在工业自动化设备之间实现通信和数据交换的标准化方法。python要实现Ethernet/IP的客户端,可以采用pycomm3模块,但不一定是pycomm3,其中原委咋们慢慢聊,本文为第一篇。

weixin_43431593的博客 2273

别再到处找资源了!WinCC 7.5 SP2官方下载与Windows 10保姆级安装避坑指南

本文提供了WinCC 7.5 SP2在Windows 10上的官方下载与安装全流程指南,重点解决了资源获取难、系统兼容性问题及分卷压缩处理等常见痛点。通过详细的步骤和实用技巧,帮助用户顺利完成安装并优化配置,适用于工控领域的学习者和从业者。

weixin_32924297的博客 498

AI智能体赋能Cypress:自动化前端测试的新范式

自动化测试是现代软件工程保障质量的核心实践,其原理是通过脚本模拟用户操作,对软件功能进行验证。随着大语言模型(LLM)和智能体(Agent)技术的发展,测试自动化正迈向智能化新阶段。智能体能够理解自然语言描述的测试需求,并自主规划、执行测试步骤,这为应对前端UI频繁变更、测试用例维护成本高等挑战提供了新思路。在工程实践中,将Cypress这一流行的前端测试框架封装为智能体可调用的标准化技能(Skill),是实现这一愿景的关键。通过设计清晰的交互协议和状态管理机制,智能体可以像人类测试工程师一样“感知”页面状

weixin_33726318的博客 687

Python实现函数可视化--快捷显示数学函数图像的轻量级工具制作教程

对于如今的中学生乃至大学生,只要接触到数学相关内容的,就必然离不开函数这一“生死大关”。为什么说是生死大关呢?实在是函数类问题太令人头疼。那么,在进行此类解题(尤其是三角函数)及性质研究时,有没有一种方便、快捷的方法,让我们能够更透彻地,,研究函数的性质呢?当然有,这就是Python函数可视化工具。本程序运用Python中最令人喜爱的数据处理工具numpy和超强的图像库matplotlib,实现13种不同类别函数的分类图像整理,展示图像均可以保存为图片的形式,具备拖动、放大等功能。

fk__boy的博客 4450

解决SolidWorks启动报错问题:SolidWorks2020显示无法获得下列许可 SolidWorks standard 期望的SolidWorks监控程序已经关闭(-97,121,0)

解决SolidWorks启动报错问题:SolidWorks2020显示无法获得下列许可 SolidWorks standard 期望的SolidWorks监控程序已经关闭(-97,121,0) 问题描述 打开SolidWorks2020时,显示SolidWorks2020显示无法获得下列许可 SolidWorks standard 期望的SolidWorks监控程序已经关闭(-97,121,0) (急需看模型的我心里万马奔腾…) 截图如下: 有问题咱就上 看了其他博主的回答,自己尝试了几个,发现出现了新的

qq_44606358的博客 7万+

突破Tkinter局限:用maliang构建Canvas驱动的现代Python GUI界面

> 欢迎Star支持项目发展! 通过本文介绍的技术和方法,你可以构建出媲美现代Web应用的桌面界面,同时保持Python语言的简洁与高效。立即尝试maliang,开启你的创意GUI开发之旅!...

gitblog_01416的博客 800

PSF(点扩散函数)与去卷积算法消除图像模糊

本文旨在总结图像处理中使用去卷积的传统方法来进行图像去模糊的相关知识。

m0_53607446的博客 6016

第133章 PCL OrientedBoundingBox 有向包围盒

中文叫有向包围盒,是一种旋转过的包围盒。特点:不像AABB那样固定朝向坐标轴能更紧密地包裹物体适用于复杂姿态的物体,比如倾斜、旋转的物体通常通过PCA、惯性矩等算法确定方向。

yumeiguo的博客 265

【限时免费】 热门项目推荐:maliang - 轻量级Canvas驱动的Python UI框架

热门项目推荐:maliang - 轻量级Canvas驱动的Python UI框架 【免费下载链接】maliang A lightweight UI framework based on tkinter with all UI drawn in Canvas! ...

gitblog_01411的博客 329

【YOLO11改进 - 注意力机制】SCSA通过结合空间注意力和通道注意力,提高各种下游视觉任务的性能。

【YOLO11改进 - 注意力机制】SCSA通过结合空间注意力和通道注意力,提高各种下游视觉任务的性能。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 478

超级方便的轻量级 Python 流水线工具,还有漂亮的可视化界面!

来源:Python实用宝典Mara-pipelines 是一个轻量级的数据转换框架,具有透明和低复杂性的特点。其他特点如下:基于非常简单的Python代码就能完成流水线开发。使用 Post...

Python数据之道 798

【人工智能】全面盘点国内AI九大模型:各擅胜场的智能先锋(豆包、文心一言、讯飞星火、通义千问、Kimi、智谱清言、腾讯元宝、秘塔、天工AI)

追求性价比与全能:选豆包,适合个人与中小企业日常使用;侧重中文创作与理解:选文心一言,文学与商业文案创作首选;需要专业语音交互:选讯飞星火,智能客服、车载场景必备;看重生态与多场景:选通义千问,适配电商、办公等企业需求;处理超长文本任务:选Kimi,文档分析、学术研究的利器;专注深度推理创作:选智谱清言,学术与创意写作的伙伴;依赖腾讯生态协同:选腾讯元宝,日常轻量需求的便捷之选;深耕法律学术领域:选秘塔,专业文本处理的权威工具;布局前沿技术体验:选天工AI,享受接近国际顶尖的智能服务。

奶爸的编程之路,也就一周冷个三天 1125

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

超级方便的轻量级Python流水线工具,还有漂亮的可视化界面(1)

由于使用了大量的依赖,Mara-pipelines 并不适用于 Windows,如果你需要在 Windows 上使用 Mara-pipelines,请使用 Docker 或者 Windows 下的 linux 子系统。

2401_84139697的博客 172

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

2024年最全超级方便的轻量级Python流水线工具,还有漂亮的可视化界面,2024年最新面试官常问的问题知乎

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

m0_57472099的博客 740

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

FastLED 新 MCU 平台移植实战指南:从平台检测、外设验证到 LED 驱动的完整流程

本文是一份面向 FastLED 库的**新微控制器平台移植(platform porting)实操指南**,完整梳理了将 FastLED 移植到新 MCU 家族所需覆盖的各个层次:平台检测宏、整数类型定义、Clockless 位波驱动、硬件 SPI 驱动、构建系统集成与测试验证。文中不仅给出每一步的可复制代码模板与命令,还结合本仓库的真实源码(如 `src/platforms/is_platfor

gitblog_00623的博客 966

Gaia自动化平台终极指南:如何用你喜欢的语言构建强大CI/CD流水线

**Gaia**是一款革命性的开源自动化平台,让开发者能够使用自己最熟悉的编程语言构建强大的CI/CD流水线。厌倦了繁琐的YAML配置?受限于单一语言的自动化工具?Gaia正是为你量身打造的解决方案!🚀 ## 什么是Gaia自动化平台? Gaia是基于HashiCorp go-plugin和gRPC技术构建的开源自动化平台,它打破了传统CI/CD工具的语言限制,让开发者能够使用Go、Java

gitblog_00991的博客 695

如何用AI快速搭建ETL工具替代Kettle

时,发现其AI对话能精准理解ETL场景需求,自动生成的代码骨架可直接运行。最惊喜的是部署功能——完成开发后点击按钮就能生成可访问的Web应用,省去了Nginx配置和服务器搭建的麻烦。对于需要快速验证方案的场景,这种开箱即用的体验确实能提升不少效率。最近工作中需要处理大量数据转换任务,传统Kettle工具虽然强大但配置复杂,于是尝试用AI辅助开发一个轻量级ETL工具。

GoldenleafRaven13的博客 1011
上一篇: 微软自家的Linux发行版开源了!
下一篇: 跟你说个笑话,我毕业2年了,天天人肉提数...
菜鸟学Python
博客等级 码龄9年 8088粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值