使用Airflow进行批处理,根据父任务的输出动态启动多个任务

Use Airflow for batch processing to dynamically start multiple tasks based on the output of a parent task

我想弄清楚 Airflow 是否可用于表达需要根据父任务的输出启动同一任务的多个实例的工作流。 Airflow 支持多个 worker,所以我天真地期望 Airflow 可以用来编排涉及批处理的工作流。到目前为止,我没能找到任何适合该模型的 recipe/direction。将 Airflow 用于如下所示的浴槽处理工作流程的正确方法是什么?假设有一个 Airflow 工作池。

工作流程示例: 1.启动任务A产生多个文件 2. 为每个文件启动任务 B 的一个实例(可能是另一个工作流程) 3.等待任务B的所有实例,然后启动任务C

作为在 Airflow 中并行处理输入数据的技巧,我使用自定义运算符将输入拆分为预定数量的分区。为每个分区复制下游运算符,如果需要,可以再次合并结果。对于本地文件,操作员运行 split 命令。在 Kubernetes 中,这与集群自动缩放配合得很好。