虚拟运算符的用例

Nab*_*bin 16 airflow airflow-operator

我在学习 apache 气流,发现有一个叫做 DummyOperator 的操作符。我用谷歌搜索了它的用例,但找不到任何我能理解的东西。这里有人可以讨论它的用例吗?

小智 12

操作符实际上什么都不做。它可用于在 DAG 中对任务进行分组。

https://airflow.apache.org/_api/airflow/operators/dummy_operator/index.html

据我所知,至少有两种情况:

  • 测试目的。在 dags 中,只是在上游和下游之间的虚拟操作,稍后,您可以替换真正的操作符。
  • 工作流目的:BranchPythonOperator 与 DummyOperator 一起工作。如果您想跳过某些任务,请记住您不能有空路径,如果是这样,请创建一个dummy taskhttps://airflow.apache.org/concepts.html#workflows

  • 在这里添加另一个用例:如果您有一组“d”下游任务,它们必须在“u”上游任务之后执行,那么您可以引入一个在这两组任务之间添加“dummyoperator”,并摆脱“u + d”连接。这无疑为 DAG 的渲染提供了美观的改进(看起来更简单,渲染更轻),但也可能减少调度开销(和调度程序延迟),因为需要评估更少数量的条件来检查调度就绪状态 (11认同)

小智 7

dummy_operator用于BranchPythonOperator我们根据某些条件决定下一个任务。

例如:

                  -> task C->task D

 task A -> task B                      -> task F
                   ->  task E(Dummy)
Run Code Online (Sandbox Code Playgroud)

因此,假设我们在任务 B 中有一些条件决定是遵循 [任务 C->任务 D] 还是任务 E(虚拟)来到达任务 F。

由于我们不能将 else 条件留空,因此我们必须放置一个虚拟运算符,它不执行任何操作,只是跳过或绕过。

  • 为什么条件不能直接创建从“任务 B”到“任务 F”的依赖关系? (3认同)