首页 > 解决方案 > 回填 AirFlow DAG 以获取其他历史日期

问题描述

我有一个 AirFlow DAG,它将我的 Google BigQuery 数据库中的数据复制到另一个数据集中,并且运行良好。

我想复制所有现有的表,但我不小心将开始日期设置得太晚了一年,导致一年的数据没有出现在我的新数据集中。为了尝试解决这个问题,我将开始日期设置回另一年并手动触发 DAG,但它没有按预期重新填充表格 - 而是 DAG 卡在“运行”状态。

default_args = {
    'owner': 'airflow',
    'depends_on_past': True,
    'start_date': datetime(2016, 9, 27),
    'end_date': datetime(2017, 9, 27),
    'email': ['xxx@xxx.com'],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 5,
    'retry_delay': timedelta(minutes=2)

修改开始日期并收集未与第一个开始日期匹配的数据的正确流程是什么?

标签: airflowgoogle-cloud-composer

解决方案


因此,每当我们不得不修改时,start_date我们只需重命名 dag 以避免时髦的调度程序问题,因为我们发现它是最简单且破坏性最小的方法。

我知道我们不应该只链接到其他页面,但是dag_id在 Airflow Confluence 的第三点到最后一点中也提到了重命名的方法,但是它特别提到在更改调度程序使用thestart_dateinterval给定时使用这种方法这两条信息都可以用来确定何时进行 DagRun:

https://cwiki.apache.org/confluence/display/AIRFLOW/Common+Pitfalls

不过,我们再次使用重命名方法,它对我们有用。


推荐阅读