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

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,这些 commands会用于真正地执行动作。

而 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 天内最昂贵的节点(可配置)

  • 所有流水线节点及其平均运行时间和由此产生的排队优先级的表
    学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 19
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值