Airflow 使用气流/云合成器在DAG中进行并行建模
我想创建一个DAG在Google Cloud Composer中运行。工作流包含一个ParallelFor,我不知道如何建模 工作流程如下所示:Airflow 使用气流/云合成器在DAG中进行并行建模,airflow,directed-acyclic-graphs,google-cloud-composer,Airflow,Directed Acyclic Graphs,Google Cloud Composer,我想创建一个DAG在Google Cloud Composer中运行。工作流包含一个ParallelFor,我不知道如何建模 工作流程如下所示: task1 >> task2 >> task3 >> task4 其中task2将数据拆分为x阵列。现在,我想为这些x阵列并行运行task3。Task3输出一些东西,task4组合输出 (您可以在此处找到工作流的图片:) 现在,我有两个可能的想法,它如何工作: 它有一个简单的语法(如用于顺序执行的>)。但我没有找到
task1 >> task2 >> task3 >> task4
其中task2将数据拆分为x阵列。现在,我想为这些x阵列并行运行task3。Task3输出一些东西,task4组合输出
(您可以在此处找到工作流的图片:)
现在,我有两个可能的想法,它如何工作:
>
)。但我没有找到这样的语法我已经找到了解决我问题的办法。这是我第一个可能的解决方案。只需使用此链接中的机制: 我相信,您提到的可能想法为如何在前一个任务结束后运行任务指明了方向 要并行运行DAG,您应该遵循与此类似的结构
从日期时间导入日期时间
从气流导入DAG
从afflow.operators.bash_operator导入bash operator
dag=dag(“dag\U平行”,description=“开始教程”,计划\U间隔=无,
开始日期=日期时间(2019,1,1),
catchup=错误)
task_1=bash运算符(task_id='task_1',bash_command='echo“这是task 1!”,dag=dag)
task_2=bash运算符(task_id='task_2',bash_command='echo“这是task 2!”,dag=dag)
任务列表=[]
最大尝试次数=3
对于范围内的尝试(最大尝试):
数据_pull=bash运算符(
task_id='task_3{}'。格式(尝试),
bash_command='echo“这是任务-3{}!”。格式(尝试),
dag=dag
)
任务列表。追加(数据提取)
data_validation=bash运算符(task_id='task_final',bash_command='echo'We at end',dag=dag)
任务1>>任务2>>任务列表
任务列表>>数据验证
这是通过此方法获得的DAG结构