我有多个 CSV 文件,其中包含不同表的数据,不同的文件大小从 1 MB 到 1.5 GB 不等。我想逐行处理数据(替换/删除列的值),然后将数据加载到现有的 Redshift 表中。这是一天一次的批处理。
- AWS 拉姆达:
- Lambda 有内存限制,因此我无法为大型 CSV 文件运行进程。
- EC2:我已经有 EC2 实例,我在其中运行 python 脚本来转换数据并将其加载到 redshift。
- 我一直保持 EC2 运行,其中包含我想要为创建的所有表和环境(安装
python, psycopg lib
等)运行的所有 python 脚本,这会导致更多成本。
- 我一直保持 EC2 运行,其中包含我想要为创建的所有表和环境(安装
- AWS 批次:
- 我创建了一个容器映像,其中包含运行 python 脚本的所有设置,并将其推送到 ECR。
- 然后我设置了 AWS Batch 作业,它可以获取这个容器映像并通过 ECS 运行它。
- 这更加优化,我只为使用的 EC2 和 ECR 图像存储付费。
- 但是我必须在我的个人桌面上进行所有的开发和单元测试,然后推送一个容器,而不需要内联 AWS 服务进行测试。
- AWS 工作区:
- 我对AWS Workspaces不太熟悉,但需要输入,这也可以用作aws批处理来在需要时启动和停止实例并在其上运行python脚本,编辑或测试脚本。
- 另外,我可以安排它每天在规定的时间运行吗?
我需要输入哪种服务最适合此类用例的优化解决方案?或者,如果有人建议以更好的方式使用上述服务的更好方式,那也很棒。