气流DAG变换框架

airflow-ditto的Python项目详细描述


同上

Build Status

同上是一个框架,允许您对气流DAG进行转换,将其转换为与原始DAG同构的另一个DAG。i、 e.它将编排一个操作符流,产生相同的结果,但只是被转换为在另一个环境或平台上运行。Azure构建了一个丰富的dagr框架,可以用来扩展其他的dagr框架。事实上,如果需要,可以变换DAG,这样结果也不会同构(尽管此时最好编写一个全新的DAG)。在

该框架的目的是允许您维护一个代码库,并能够在不同的执行环境(例如,在不同的云上,甚至不同的容器框架上——spark on YARN vs kubernetes)上运行气流DAG。它不是用于一次性转换,而是用于连续和并行的DAG部署,尽管您也可以为此目的使用它。在

从本质上讲,Ditto是一个图形操作库,它可以为实际的转换逻辑扩展api。不过,它确实提供了对EMR到HDInsight转换的现成支持。在

安装
pip install airflow-ditto

一个简单的例子

为了方便快速地转换大量的模式,可以很方便地创建大量的dagdits。下面是使用同上的简单方法:

^{pr2}$

您可以将上面的调用放在任何python文件中,该文件对flow可见,并且由于flow的dagbag如何找到dag,因此生成的dag被加载。在

Source DAG(气流视图)

simple_dag_emr

Transformed DAG

simple_dag_hdi

阅读详细文档here

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
http POST请求Java CouchDB   java删除带有大量尾随0的浮点字符串上的科学符号   JavaEE5和Hibernate   java如何在Spring Social中获得比特定id更早的tweet   java是框架。revalidate()在事件后获取输出是否重要?   java为什么不能返回通用映射?   java如何理解和优化工厂方法的高自时间   java Eclipse 202006错误由于项目的生成路径不完整,因此未生成该项目   多线程是java。util。向量序列化线程安全?   在Eclipse和java中使用不同的构建配置。属性文件   编译Java:从命令行运行的问题   java如何知道消息是否已确认/取消?   Java铸造一套   java Android Seekbar progress已更改变量,给出错误