假设我具有以下DAG依赖项:
/> DAG B -->....
/
/
DAG A ---> DAG C -->...
\
\
\> DAG D -->...
这些DAG每天运行,DAG B,C,D分别消耗DAG A的输出。
如果DAG A失败(例如,Spark作业有错误,并且我们希望在修复后重新执行它),如何确保我们也重新运行DAG B,C,D等,以便它们现在与固定的DAG A输出?可以自动完成吗?
答案 0 :(得分:1)
您可以有一个单独的主DAG ( controller_dag ),然后使用 TriggerDagRunOperator 来触发不同的DAG。
使用 TriggerDagRunOperator 的任务之间的依赖关系可以通过以下方式设置:
dag_a >> [dag_b, dag_c, dag_d] >> ...
答案 1 :(得分:0)
您可以为此使用TriggerDagRunOperator https://www.astronomer.io/guides/trigger-dag-operator/
您还可以考虑使用SubDAGOperator将这些DAG合并为一个DAG。在这种情况下,子DAG b,c,d可以取决于子DAG a。