首页 > 解决方案 > DAG 依赖,延迟加载

问题描述

在导入 Python 文件时的 Airflow 中,调度程序会读取我的所有依赖项。因为我的依赖很慢并且调用本地库,所以我想将 DAG 计划与实际任务分开。我打算将任务发送到云端。

什么是 Airflow 仅导入计划和 DAG 定义而不导入任务依赖项直到它们实际使用的正确设计?什么是优点,缺点?

标签: airflowairflow-scheduler

解决方案


这在很大程度上取决于您的 DAG 设计。

一般来说,尽量避免任何顶级代码,包括逻辑(读取变量、执行某些函数等)和导入。这可以通过使用某种形式的惰性求值来完成。

在导入的情况下,您可以尝试将导入烘焙到仅在执行期间调用的函数中(例如,通过创建自定义运算符或使用 python 运算符)。


推荐阅读