我正在使用airflow来协调我的ETL。
对于从某些来源(如API)的摄取,我使用自定义的Airflow插件(带钩子和操作符)。
我的问题是,为什么要使用Airflow Plugins,我们可以通过使用Bash Operator来触发简单的python脚本来达到同样的效果。
使用Airflow Plugins和使用外部python脚本相比,有什么明显的优势吗?
你使用提供的插件,因为他们更容易使用,并建立一个特定的任务。例如,我建立了一个从数据库(Snowflake)中提取数据的操作员,并将其作为ASCII表写入Slack。你将如何使用bash操作符执行同样的任务?当然你可以这样做,但这很丑陋,而且不是 "气流的方式"。
如果你只使用bash操作符,最终会发生的情况是,你最终会遇到一个在Python中更容易完成的任务,你会开始从你的bash操作符中调用python代码,这时事情就会变得很混乱。然后,一个了解Airflow工作原理的人最终会问: "你为什么不直接写一个新的操作符来完成这个任务?"