airflow - 回填 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)
修改开始日期并收集未与第一个开始日期匹配的数据的正确流程是什么?
解决方案
因此,每当我们不得不修改时,start_date
我们只需重命名 dag 以避免时髦的调度程序问题,因为我们发现它是最简单且破坏性最小的方法。
我知道我们不应该只链接到其他页面,但是dag_id
在 Airflow Confluence 的第三点到最后一点中也提到了重命名的方法,但是它特别提到在更改调度程序使用的thestart_date
和interval
给定时使用这种方法这两条信息都可以用来确定何时进行 DagRun:
https://cwiki.apache.org/confluence/display/AIRFLOW/Common+Pitfalls
不过,我们再次使用重命名方法,它对我们有用。
推荐阅读
- c++ - 阅读简单的 .txt 时,我得到了垃圾值
- python - 如何读取在同一列中具有多个 json 值的数据框
- sql - SQL Server - 在函数中创建超时异常
- sql - 使用 WHERE 和 COUNT 在 sql 查询中返回错误值
- python - Python:将多个二进制列转换为单个分类列
- python - 字符串文字以单引号开头并以三引号结尾,它如何有效?
- linux - GREP 或 AWK:在每行的前 N 个字符中搜索,并输出匹配模式的周围行
- java - 为什么我不能在arraylist 中使用getFixed 方法?我怎样才能让它工作?
- amazon-web-services - AWS CloudFront 使用查询字符串返回来自 S3 源的访问被拒绝
- javascript - v-model 的 this['key'] 和 $data['key'] 有什么区别?