Python 带ExternalTaskSensor的气流计划间隔

Python 带ExternalTaskSensor的气流计划间隔,python,airflow,directed-acyclic-graphs,Python,Airflow,Directed Acyclic Graphs,我正试图以“每30分钟”的间隔设置两个DAG的气流 第一个dag(提取)如下所示: 提取表格用户模式>>提取表格用户数据>>完成提取表格用户 第二个dag(变换)如下所示: 传感器等待完成提取表用户>>转换表用户>>完成转换表用户 对于这两个DAG,我已将计划间隔设置为“*/30****” ExternalTaskSensor设置为execution\u delta=timedelta(分钟=30) 我预期的任务流程是:首先运行提取dag。然后,在虚拟任务finish\u transform

我正试图以“每30分钟”的间隔设置两个DAG的气流

第一个dag(提取)如下所示:

提取表格用户模式>>提取表格用户数据>>完成提取表格用户

第二个dag(变换)如下所示:

传感器等待完成提取表用户>>转换表用户>>完成转换表用户

对于这两个DAG,我已将计划间隔设置为
“*/30****”

ExternalTaskSensor设置为
execution\u delta=timedelta(分钟=30)

我预期的任务流程是:首先运行提取dag。然后,在虚拟任务
finish\u transform\u table\u user
成功后,触发传感器并运行转换中的任务

它第一次运行时运行良好,但当我等待第二次运行时,任务会自行中断。 我观察到提取dag被
transform\u table\u user
任务中断,该任务更改了一些列名。由于列名不再匹配,因此这将导致提取表格用户数据失败

编辑:更具体地说,预期和发生的结果是什么

首先,详细说明每个任务应该做什么:

(sql)
extract\u table\u user\u schema
:从用户表复制架构

(sql)
extract\u table\u user\u data
:将数据从源表用户复制到该表的副本中

(虚拟)
finish\u extract\u table\u user
:虚拟任务

(传感器)
sensor\u wait\u for\u finish\u extract\u table\u user
:传感器等待提取完成

(sql)
transform\u table\u user
:将列字段从
id
重命名为
user\u id

(虚拟)
finish\u transform\u table\u user
:虚拟任务

现在,第一次运行DAG时,结果是复制了模式+数据和重命名的字段。所有任务都是成功的 第二次运行DAG时,一个任务失败,一个任务未运行。其他的都是成功的。 任务
extract\u table\u user\u data
失败并显示错误消息;没有像
id
这样的字段。 任务
finish\u extract\u table\u user
未运行

结果表是复制的架构,但没有数据和重命名的字段

因此,我假设任务
transform\u table\u user
是在复制模式后立即运行的。也许集合
execution\u delta=timedelta(minutes=30)
在某种程度上是错误的?也许我误解了传感器的api文档


谢谢你的帮助

这对我来说似乎有点不清楚。虚拟任务不应该是
finish\u extract\u table\u user
?此外,DAG是如何运行的-手动还是自动?还有,你说的是什么列名,有什么样的模式我们需要知道吗?在问题中同时使用DAG代码也是非常有帮助的。嘿,tobi6,DAG每30分钟自动运行一次。这基本上是测试,因为真正的应用程序将有一个或多或少的间隔在6小时。当我在30分钟内无法让它工作时,它可能在6小时内无法工作。模式也不相关。出于测试目的,它只是将一列从
id
重命名为
user\u id
。中断本身意味着什么?@tobi6我在我的帖子中添加了一个编辑。希望这能澄清这一点