Airflow 气流:依赖于自身先完成的动态任务

Airflow 气流:依赖于自身先完成的动态任务,airflow,Airflow,我需要创建一个DAG来删除和更新几个不同的表。更新按区域进行。我使用的数据库在执行任何删除或更新时都会锁定表,因此我需要像下面这样构造我的dag,以避免尝试同时更新同一个表 -->等于取决于 Florida_table_1 --> Carolina_table_1 --> Texas_table_1 Florida_table_2 --> Carolina_table_2 --> Texas_table_2 Florida_table_3 --> Carolina_

我需要创建一个DAG来删除和更新几个不同的表。更新按区域进行。我使用的数据库在执行任何删除或更新时都会锁定表,因此我需要像下面这样构造我的dag,以避免尝试同时更新同一个表

-->
等于
取决于

Florida_table_1 --> Carolina_table_1 --> Texas_table_1
Florida_table_2 --> Carolina_table_2 --> Texas_table_2
Florida_table_3 --> Carolina_table_3 --> Texas_table_3

更糟糕的是,我可以分别写出所有任务,但我想知道是否有一种聪明的方法可以动态地完成它?

我想这样做:

list_of_states=[“阿拉巴马州”、“阿拉斯加州”、“亚利桑那州”…]我忘了那首歌。。。
def state_任务(哪个_状态):
打印(f“处理{哪个州}!”)
[...]
使用DAG(DAG_id=“states_process”,…)作为DAG:
先前的任务=启动=Dummy操作员(任务id=“启动”)
对于\u状态列表中的\u状态:
优先任务=优先任务>>PythonOperator(
task_id=f“{which_state}\u task”,
python\u callable=状态任务,
op_args=(哪个_状态,)
)
这是我的想法,但基本上是利用Airflow的
>
语法来声明上游,并返回我们保存下来用作下一个上游的任务:
prior\u task=prior\u task>>PythonOperator