【发布时间】:2019-10-12 05:52:45
【问题描述】:
我有一个小的日常计算工作,从 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 将它们作为管道链接在一起。
【问题讨论】:
-
您有什么要求?约束?你需要多少内存?你跑了多长时间?重试策略是什么?有很多解决方案,但根据这个元素,正确的可能是建议!
-
感谢@guillaumeblaquiere。批处理作业的大小非常适合安装了 Python 及其数据处理和机器学习库的 VM。运行时间最长可达 1-2 小时。重试可以在应用程序逻辑中处理,而在生成 VM 时失败应该向作业所有者发送警报。
标签: python pandas google-cloud-platform batch-processing google-cloud-dataflow