我有一个小型的日常计算工作,从 BigQuery 导入数据,使用 Python 数值计算库(pandas、numpy)进行处理,然后将结果写入外部表(另一个项目的 Firestore 或 MySQL)
在 GCP 上部署它的推荐方法是什么?
我们的开发人员建议我们不要仅仅为了执行批处理作业而创建单个虚拟机。他们宁愿不自己管理虚拟机基础设施,并且应该有支持批处理作业的服务。他们坚持要求我使用 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 将它们作为管道链接在一起。
最佳答案
Cloud Dataflow完全可以满足您的需求,因此它比虚拟机更容易管理、扩展和构建。提前问自己几个问题,如果不适用,请使用 Dataflow:
- 我是否希望仅限于特定云提供商(本例中为 GCP)
- 在此项目中,是否使用了其他云服务,或者仅使用云中的基础设施(保持一致性)。另外我们希望项目朝什么方向发展? (使用自定义或云解决方案)
- 我想绝对控制这个批处理软件处理工具吗?如果是这样,您可能没有使用 Dataflow
- 其他考虑因素,例如成本、部署时间、启动时间
如果所有答案都倾向于云服务,那么就使用它。
关于python - 在 GCP 上使用 python numpy 和 pandas 部署小批量作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58351290/