【问题标题】:Airflow : Native operators vs containersAirflow:原生运营商与容器
【发布时间】:2019-07-19 09:16:48
【问题描述】:

我正在使用 Airflow 来编排各种批处理和转换过程。在编写新流程时,我遇到了需要将 BigQuery 表转换为另一个表的场景。我有两种方法可以实现:

  • 通过使用bigQuery_to_bigquery 运算符
  • 通过编写自己的容器来执行任务,然后使用 Docker 或 Kubernetes 操作符来调用它

使用第一种方法,我的任务将得到缓解,我不需要维护/修复任何错误。但是,我会将编排和转换结合在一起。使用第二种方法,编排将与转换分开,但我必须维护 BigQuery API 和连接。

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

【问题讨论】:

    标签: python google-bigquery airflow google-cloud-composer


    【解决方案1】:

    我建议使用原生运算符,尤其是对于简单的 API 调用,例如在 BigQuery 中运行查询。我在生产中使用它们并且工作得很好。您也可以从文件中传递查询。

    如果您需要使用自定义代码运行一些繁重的转换,我建议您使用 Docker 或 Kubernetes 操作符,您可以直接使用 Python 操作符在 Airflow 上完成。

    【讨论】:

    • 同意。我们混合使用了 kubernetes 操作符和运行在 kubernetes 执行器上的本地操作符。完全同意@alessandro 的最佳实践。对简单任务使用原生操作符,对自定义环境配置和复杂任务使用 kube 操作符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 2023-03-15
    相关资源
    最近更新 更多