好吧,如果这是个愚蠢的问题,我很抱歉,因为很明显,这个问题应该有效。但是我找不到文档,在我们寻找新的数据管道的时候,我们正在研究我们的选择,我真的希望这是一个特性.
多个下游流程能否依赖于单个上游流程,其中上游流程只运行一次。换句话说,我可以一次提取一个表,然后将它加载到我的数据仓库中,并且有多个依赖于该负载的聚合完成?
为了获得更多的信息,我们试图进入一个异步提取-负载转换,在那里提取开始,然后加载和转换完成,只要他们有他们需要的表子集从提取。
发布于 2018-05-16 14:20:01
在我看来,这就像一个平常的DAG,措辞不寻常。我理解这样的结构:
extract_table_task \
|- task1_do_stuff
|- task2_do_some_other_stuff
|- task3_...或在气流代码中:
extract_table_task.set_downstream(task1_do_stuff)
extract_table_task.set_downstream(task2_do_some_other_stuff)
extract_table_task.set_downstream(task3_...)然后确保为您的工作流选择正确的触发规则,例如,某些任务即使出了问题也应该运行:https://airflow.apache.org/concepts.html#trigger-rules
发布于 2018-05-16 14:58:37
如果我理解这个问题,是的,您可以将下游任务设置为取决于上游任务的成功。
我们在许多类似于这个示例DAG的情况下使用了dummyOperators:

在这种情况下,我们希望dummyOperator先开始,然后在下游任务开始之前做一些事情。这使得清除失败的运行变得更容易,就像我们可以同时清除虚拟操作符和下游任务一样。
您可以使用depends_on_past=True参数要求在下游任务排队之前运行上游任务,否则可以根据上游任务中的逻辑跳过这些任务。
https://stackoverflow.com/questions/50372947
复制相似问题