我正在使用 Airflow 来协调各种批处理和转换过程。在编写新流程时,我遇到了一个场景,需要将 BigQuery 表转换为另一个表。我有两种方法来实现这个:
- 通过使用 bigQuery_to_bigquery运算符
- 通过编写自己的容器来执行任务,然后使用 Docker 或 Kubernetes 运算符来调用它
使用第一种方法,我的任务将得到缓解,并且我不需要维护/修复任何错误。然而,我将把编排和转换结合在一起。使用第二种方法,编排将与转换分开,但我必须维护 BigQuery API 和连接。
看起来这两种方法都有各自的优点和缺点。有什么推荐的方法吗?
最佳答案
我建议使用 native 运算符,尤其是对于简单的 API 调用(例如在 BigQuery 中运行查询)。我在生产中使用它们并且工作得很好。您也可以从文件传递查询。
如果您需要使用自定义代码运行一些繁重的转换,我建议使用 Docker 或 Kubernetes 运算符,您可以直接使用 Python 运算符在 Airflow 上执行此操作。
关于python - Airflow : Native operators vs containers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57109291/