Python 气流:本机操作员与容器

Python 气流:本机操作员与容器,python,google-bigquery,airflow,google-cloud-composer,Python,Google Bigquery,Airflow,Google Cloud Composer,我使用气流来协调各种批次和转换过程。在编写新流程时,我遇到了一个场景,需要将BigQuery表转换为另一个表。我有两种方法来实现这一点: 利用算子 通过编写自己的容器来执行任务,然后使用Docker或Kubernetes操作符来调用它 使用第一种方法,我可以轻松完成任务,不需要维护/修复任何错误。然而,我将把编排和转换结合在一起。使用第二种方法,编排将与转换分离,但随后我必须维护BigQueryAPI和连接 看起来这两种方法各有优缺点。有什么推荐的方法吗?我建议使用本机运算符,特别是对于简单

我使用气流来协调各种批次和转换过程。在编写新流程时,我遇到了一个场景,需要将BigQuery表转换为另一个表。我有两种方法来实现这一点:

  • 利用算子
  • 通过编写自己的容器来执行任务,然后使用Docker或Kubernetes操作符来调用它
使用第一种方法,我可以轻松完成任务,不需要维护/修复任何错误。然而,我将把编排和转换结合在一起。使用第二种方法,编排将与转换分离,但随后我必须维护BigQueryAPI和连接


看起来这两种方法各有优缺点。有什么推荐的方法吗?

我建议使用本机运算符,特别是对于简单的API调用,如在BigQuery中运行查询。我在生产和工作中使用它们。您也可以从文件传递查询


我建议您使用Docker或Kubernetes运算符,以防您需要使用自定义代码运行一些繁重的转换,您可以直接使用Python运算符在Airflow上执行这些转换。

同意。我们混合使用kubernetes运算符和在kubernetes执行器上运行的本机运算符。完全同意@alessandro的最佳实践。简单任务使用本机运算符,复杂任务使用kube运算符。