在 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 将它们作为管道链接在一起。


心有法竹
浏览 159回答 2
2回答

守候你守候我

Cloud Dataflow完全符合您的要求,因此它比 VM 更容易管理、扩展和构建。事先只问自己几个问题,如果它们不适用,请使用 Dataflow:我是否希望仅限于特定的云提供商(在这种情况下为 GCP)在这个项目中,是否使用了其他云服务,或者它们只是使用来自云的基础设施(保持一致性)。另外,我们希望项目朝着什么方向发展?(使用自定义或云解决方案)我想要绝对控制这个批处理软件处理工具吗?如果是这样,您可能没有 Dataflow其他考虑因素,例如成本、部署时间、启动时间如果所有答案都倾向于云服务,那么就使用它。

千万里不及你

如果您将您的工作容器化,则有 2 个无服务器解决方案可以运行它。一天,当 Cloud Run 可以持续超过 15 分钟时,将提供第三个(在路线图中,但没有发布日期)使用云构建。考虑正确设置超时。事实上,Cloud Build 是为运行任何容器而设计的。我为此写了一篇文章使用人工智能平台。一位(伟大的)谷歌员工发表了一篇关于此的文章这两种解决方案都很棒,您可以选择运行容器的底层 VM 的机器类型。多亏了这一点,您不必管理 K8S 集群并在不使用时为其付费。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python