从yaml文件动态构建气流dag

dag-factor的Python项目详细描述


DAG工厂

Travis CICoveragePyPiCode Style

dag factory是用于从yaml配置文件动态生成Apache Airflowdag的库。

安装

要安装dag factory请运行pip install dag-factory。它需要Python3.6.0+和ApacheAirflow1.9+。

用法

在气流环境中安装dag factory之后,创建dag有两个步骤。首先,我们需要创建一个yaml配置文件。例如:

example_dag1:
  default_args:
    owner: 'example_owner'
    start_date: 2018-01-01
  schedule_interval: '0 3 * * *'
  description: 'this is an example dag!'
  tasks:
    task_1:
      operator: airflow.operators.bash_operator.BashOperator
      bash_command: 'echo 1'
    task_2:
      operator: airflow.operators.bash_operator.BashOperator
      bash_command: 'echo 2'
      dependencies: [task_1]
    task_3:
      operator: airflow.operators.bash_operator.BashOperator
      bash_command: 'echo 3'
      dependencies: [task_1]

然后在气流环境中的dags文件夹中,您需要创建一个类似这样的python文件:

from airflow import DAG
import dagfactory

dag_factory = dagfactory.DagFactory("/path/to/dags/config_file.yml")

dag_factory.generate_dags(globals())

这个DAG将产生并准备在气流中运行!

screenshot

优点

  • 在不了解python的情况下构造dag
  • 在不学习气流基本体的情况下构造DAG
  • 避免重复代码
  • 每个人都喜欢山药!;)

贡献

欢迎投稿!只需提交请求或github问题。

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

推荐PyPI第三方库


热门话题
java楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null