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