作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
刚刚开始使用 Airflow,想知道构建大型 DAG 的最佳实践是什么。对于我们的 ETL,我们有很多属于逻辑分组的任务,但这些组是相互依赖的。以下哪项被视为最佳实践?
也欢迎其他建议。
最佳答案
DAG 只是 python 文件。因此,您可以将单个 dag 定义拆分为多个文件。不同的文件应该只具有接受 dag 对象并使用该 dag 对象创建任务的方法。
但请注意,您应该在全局范围内只使用一个 dag 对象。 Airflow 将全局范围内的所有 dag 对象作为单独的 dags 选取。
通常认为保持每个 dag 尽可能简洁是很好的做法。但是,如果您需要设置此类依赖项,您可以考虑使用 subdags。更多相关信息请参见:https://airflow.incubator.apache.org/concepts.html?highlight=subdag#scope
您还可以使用ExternalTaskSensor,但请注意,随着 dags 数量的增长,处理任务之间的外部依赖关系可能会变得更加困难。我认为子标签可能是适合您的用例的方法。
关于Airflow - 将 DAG 定义拆分为多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41493605/
我是一名优秀的程序员,十分优秀!