首页 > 解决方案 > 在 GCP 上使用 python numpy 和 pandas 部署小批量作业

问题描述

我有一个小的日常计算工作,从 BigQuery 导入数据,使用 Python 数值计算库(pandas、numpy)来处理然后将结果写入外部表(另一个项目中的 Firestore 或 MySQL)

在 GCP 上部署它的推荐方法是什么?

我们的 devops 建议我们不要仅仅为了批处理作业而创建单个 vm。他们不希望自己管理 VM 基础架构,并且应该有支持批处理作业的服务。他们坚持让我使用 Dataflow。但我认为 Dataflow 的分布式特性有点矫枉过正。

非常感谢,


2019 年 10 月 14 日更新:

我正在考虑将批处理作业 docker 化并部署到 K8 集群。缺点是集群应该托管多个作业以值得设置和维护工作。有人可以就这种方法的可行性和适用性给我建议吗?


2019 年 10 月 15 日更新:

感谢 Alex Titov 在https://googlecloud-community.slack.com/archives/C0G6VB4UE/p1571032864020000发表评论。根据他的建议,我将把我的工作分解成多个小的 Cloud Functions 组件,并通过 Cloud Scheduler 和/或 Cloud Composer 将它们作为管道链接在一起。

标签: pythonpandasgoogle-cloud-platformbatch-processinggoogle-cloud-dataflow

解决方案


Cloud Dataflow完全符合您的要求,因此它比 VM 更容易管理、扩展和构建。事先只问自己几个问题,如果它们不适用,请使用 Dataflow:

  • 我是否希望仅限于特定的云提供商(在这种情况下为 GCP)
  • 在这个项目中,是否使用了其他云服务,或者它们只是使用来自云的基础设施(保持一致性)。另外,我们希望项目朝着什么方向发展?(使用自定义或云解决方案)
  • 我想要绝对控制这个批处理软件处理工具吗?如果是这样,您可能没有 Dataflow
  • 其他考虑因素,例如成本、部署时间、启动时间

如果所有答案都倾向于云服务,那么就使用它。


推荐阅读