这些日子我在做一个新的ETL项目,想尝试一下Airflow作为作业管理器。我和同事都是第一次使用Airflow,并且采用了两种不同的方法:我决定编写Python函数(操作符,就像apache-airflow项目中包含的那些操作符一样),而我的同事则使用Airflow通过BashOperator调用外部的Python脚本。
我想知道是否有类似于“最佳实践”之类的东西,如果这两种方法一样好还是我应该考虑其中一种。
对我来说,主要区别在于: - 使用BashOperator,您可以使用特定的Python环境和特定的包调用Python脚本。 - 使用BashOperator,任务更加独立,如果Airflow出现问题,则可以手动启动任务。 - 使用BashOperator,任务之间的通信稍微难以管理。 - 使用BashOperator,任务错误和失败更难以处理(Bash任务如何知道它之前的任务是失败还是成功?)。
你觉得呢?
我想知道是否有类似于“最佳实践”之类的东西,如果这两种方法一样好还是我应该考虑其中一种。
对我来说,主要区别在于: - 使用BashOperator,您可以使用特定的Python环境和特定的包调用Python脚本。 - 使用BashOperator,任务更加独立,如果Airflow出现问题,则可以手动启动任务。 - 使用BashOperator,任务之间的通信稍微难以管理。 - 使用BashOperator,任务错误和失败更难以处理(Bash任务如何知道它之前的任务是失败还是成功?)。
你觉得呢?