在 airflow 中,我可以缩短这些任务依赖行吗?
a >> b >> c >> f >> G
a >> b >> d >> f >> G
到
a >> b
b >> c
b >> d
c >> f
d >> f
f >> g
这些是等价的吗?时间或效率上有什么不同吗? 询问您是否使用代码格式化程序行长度的原因是第一个样式和更长的变量任务名称问题。
有什么推荐或建议吗?
最佳答案
这些变体中的任何一个都没有任何时间或效率的优缺点,但我认为这更像是一个“什么更具可读性”的问题。
第一个更具可读性。但是,存在一些重复,可以通过使用列表让任务并行执行来缩短重复:
a >> b >> [c, d] >> f >> G
对于非常长的依赖链,我喜欢使用方便的 chain()
方法。它更灵活一些(即您不能使用移位运算符设置两个任务列表之间的依赖关系,但您可以使用 chain()
)并且可能被认为更容易理解,因为它是一个功能。奇怪的是,根据我的经验,这确实有助于代码格式化中的行长度限制,并且可以使用这些格式化程序很好地重新格式化(例如黑色)。使用此方法,示例依赖项可以重写为:
from airflow.models.baseoperator import chain
chain(a, b, [c, d], f, G)
关于python - Airflow DAG 任务依赖,打破长线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71325417/