获取最近成功执行DAG的日期

时间:2019-08-22 10:16:02

标签: python airflow

我希望在Airflow中创建一个转换,并且我想确保自上次运行DAG以来从源中获取所有数据以更新目标表。为此,我希望能够获得成功的最新执行。

我发现了这一点:Apache airflow macro to get last dag run execution time使我到达了最终目标的位置,但是,这仅是DAG上一次执行的时间,无论它是否成功。

SELECT col1, col2, col3
FROM schema.table
WHERE table.updated_at > '{{ last_dag_run_execution_date(dag) }}';

如果执行失败(由于连接或类似原因),则last_dag_run_execution_date(dag)将更新,但我们错过了上一次DAG运行的执行。

理想情况下,这将拉出最近的未失败执行。或者,如果有人对我如何实现此想法有任何想法,请告诉我

1 个答案:

答案 0 :(得分:1)

我最终将引用的问题中的函数更改为使用Latest_execution_date,这是Airflow中的预定义宏,例如:

def get_last_dag_run(dag):
    last_dag_run = dag.latest_execution_date
    if last_dag_run is None: 
        return '2013-01-01'
    else:
        return last_dag_run

目前似乎正在为我工​​作。