Apache Airflow实用技巧和最佳实践

当我第一次使用Airflow构建ETL数据管道时,在弄清为什么管道无法运行之后,我经历了许多令人难忘的“啊哈”时刻。由于技术文档无法涵盖所有内容,因此我倾向于通过试错和阅读优秀的源代码来学习新工具。在本文中,我将分享Airflow的许多实用技巧和最佳实践,以帮助您建立更可靠和可扩展的数据管道。

DAG Schedule

在Airflow中,Airflow调度程序会根据DAG文件中指定的start_dateschedule_interval来运行DAG,对于初学者来说,很容易被Airflow的工作计划机制弄糊涂,因为Airflow计划程序在计划时间段的末尾而不是开始时触发DAG运行是不直观的。

调度程序根据start_dateschedule_interval计算执行时间,并在满足其时间依赖性时触发DAG。例如,考虑以下示例DAG,该DAG每天在世界标准时间上午7点运行:

default_args = {
     
  'owner': 'xinran.waibel',  
  'start_date': datetime(2019, 12, 5),  
}

dag = DAG('sample_dag', default_args=default_args, schedule_interval='0 7 * * *')

这个DAG的具体运行时间如下图所示:

Apache Airflow实用技巧和最佳实践_第1张图片

DAG的第一次运行将在其计划周期结束时(而不是在开始日期)于2019-12-06的上午7点之后触发。同样,其余的DAG运行将在每天早上7点之后执行。

Airflow中的execution_date不是实际的运行时间,而是其计划周期的开始时间戳。例如,第一次DAG运行的execution_date为2019–12–05 07:00:00,尽管它是在2019–12–06上执行的。但是,如果用户手动启动DAG运行,则此手动DAG运行的执行时间将恰好是触发时间。(要判断DAG运行是计划的还是手动触发的,您可以查

你可能感兴趣的:(数据工程,大数据,python)