airflow - DAG 依赖,延迟加载
问题描述
在导入 Python 文件时的 Airflow 中,调度程序会读取我的所有依赖项。因为我的依赖很慢并且调用本地库,所以我想将 DAG 计划与实际任务分开。我打算将任务发送到云端。
什么是 Airflow 仅导入计划和 DAG 定义而不导入任务依赖项直到它们实际使用的正确设计?什么是优点,缺点?
解决方案
这在很大程度上取决于您的 DAG 设计。
一般来说,尽量避免任何顶级代码,包括逻辑(读取变量、执行某些函数等)和导入。这可以通过使用某种形式的惰性求值来完成。
在导入的情况下,您可以尝试将导入烘焙到仅在执行期间调用的函数中(例如,通过创建自定义运算符或使用 python 运算符)。
推荐阅读
- android - ArrayList 的排序显示第一项两次
- python - WordPress Api 请求错误:[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:700)
- ms-access - 运行时错误“2110”:`Microsoft Office Access 无法将焦点移至控件
- mysql - 两个 DateTime 值之间的差异-MySql
- windows - 如何在 Windows 中重命名或打开文件?
- logicblox - 如何避免在 logicblox/logiQL 中实现递归逻辑谓词?
- python - 无法使用请求模块登录
- python - 在 x 次尝试后声明一个值不存在
- vba - 在 Word 宏 VBA 中设置表格列宽
- oracle - 如何提高 dbms_stats.gather_schema_stats 的性能