根据我的经验,从本地建模过渡到大规模分布式编程比大多数数据科学家意识到的要多得多,并且除了数据工程之外几乎没有任何空间,类似于上面@Emre 所说的。
如果您正在使用 GCP 或 AWS 虚拟机自己开发基础设施(例如 spark),那么安装和维护工作量很大。如果您正在运行多租户系统和/或支持生产作业,则更是如此。您将不断尝试解决“为什么我的工作没有运行?” 或者“为什么我的工作需要 14 天才能完成?” 问题。
如果您使用这些系统(Redshift、Athena、ElasticSearch 等)的内置数据科学基础设施,您可以节省一些时间,但管理起来仍然非常重要。年复一年,数据科学家最喜欢的工具总是包括 Databricks 或类似工具是有原因的——因为管理这些东西很痛苦,并且需要与实际建模完全不同的技能。
说了这么多,我有两个建议。首先,与 GCP 相比,AWS 更成熟,并且有更多有助于克服障碍的社区答案。您将遇到其 IAM 系统的问题(这成为负责任的大数据工程的必要弊端),以及其各种产品的怪异(例如,lambda 只能运行 < 3m 个脚本),但总体而言,您正在尝试的一切to do 已经由其他人完成并记录在案。这是更好的选择,IMO。
但是,我强烈建议您仔细研究一下像 Qubole 或 Databricks 之类的托管平台(我都不为这两个平台工作)。我设置并维护了一个 Qubole / AWS 环境超过一年。我学到了很多关于数据工程、架构、弹性 Spark 基础设施以及分布式计算的所有细微差别/陷阱/限制的知识,他们没有在死记硬背的文档中告诉你,但仍然能够维护一个正常运行的系统。我的用例不包括深度学习,但他们可以通过我转动几个旋钮来实现。
然后,一旦您从这些有效的环境中吸取了教训,您就可以构建、部署和支持您自己的大数据基础架构,以满足您的需求(现在这将是您的全职工作)。希望有帮助。