Airflow 在SQL表上同时插入和删除的DAG回填

Airflow 在SQL表上同时插入和删除的DAG回填,airflow,Airflow,是否有办法限制某些任务的DAG回填,以便在运行中的一个任务正在向表写入数据时,另一个试图截断该表的任务必须等待 我镜像到另一台服务器的数据库中大约有50个表。所有50个表的过程都是相同的。DAG之间的唯一区别是在服务器上暂存数据以进行处理后调用的存储过程。为了节省大量工作,我选择创建一个DAG工厂,并以一种方式对其进行参数化,其中每个DAG同步都是一个不同的表及其相应的存储过程 我遇到的问题是,当我为一个表回填过多的DAG运行时,我得到了竞争条件,其中一个执行日期尝试批量插入到一个阶段表中,而另

是否有办法限制某些任务的DAG回填,以便在运行中的一个任务正在向表写入数据时,另一个试图截断该表的任务必须等待

我镜像到另一台服务器的数据库中大约有50个表。所有50个表的过程都是相同的。DAG之间的唯一区别是在服务器上暂存数据以进行处理后调用的存储过程。为了节省大量工作,我选择创建一个DAG工厂,并以一种方式对其进行参数化,其中每个DAG同步都是一个不同的表及其相应的存储过程


我遇到的问题是,当我为一个表回填过多的DAG运行时,我得到了竞争条件,其中一个执行日期尝试批量插入到一个阶段表中,而另一个执行日期尝试截断同一个表,以便它可以批量插入阶段数据。池不是一个真正的选项,因为我需要为每个表创建一个1的池,这似乎不是一个很好的主意,特别是如果我需要重新部署airflow元数据数据库。

您是否尝试过为这个DAG设置
max\u active\u runs=1

对每个DAG运行使用单独的临时表不是一个选项吗?为单个DAG运行创建资源,然后将其拆下是一种常见的模式