我认为这里prev_execution_date列出的宏可以让我获得上次 DAG 运行的执行日期,但查看源代码似乎只能根据 DAG 计划获得最后日期。
prev_execution_date = task.dag.previous_schedule(self.execution_date)
Run Code Online (Sandbox Code Playgroud)
当 DAG 未按计划运行时,是否有任何方法可以通过宏获取 DAG 的执行日期?
我需要获取 Airflow 作业的最后两个成功执行日期以在当前运行中使用。示例:执行日期 作业状态 2020-05-03 成功 2020-05-04 失败 2020-05-05 成功
问题:当我在 5 月 6 日运行作业时,我应该将 5 月 3 日和 5 日的值放入变量中。是否可以?
我希望在 Airflow 中创建一个转换,并且我想确保从上次运行 DAG 以更新我的目标表以来从我的源中获取所有数据。为此,我希望能够获得最近成功的执行。
我发现了这一点:Apache 气流宏获得最后一次 dag 运行执行时间,这使我到达最终目标的某个地方,但是,这只会获得 DAG 执行的最后一次,无论它是否成功。
SELECT col1, col2, col3
FROM schema.table
WHERE table.updated_at > '{{ last_dag_run_execution_date(dag) }}';
Run Code Online (Sandbox Code Playgroud)
如果执行失败(由于连接或类似原因),last_dag_run_execution_date(dag) 将更新,但我们错过了之前 DAG 运行的执行。
理想情况下,这将拉取最近的非失败执行。或者如果有人有任何想法我怎么能满足这个,请让我知道
airflow ×3