AWS-Batch vs EC2 vs AWS Workspaces用于运行批处理脚本以将数据加载到Redshift

时间:2019-07-16 09:52:23

标签: amazon-web-services amazon-ec2 aws-lambda aws-batch amazon-workspaces

我有多个CSV文件,其中包含不同表的数据,文件大小从1 MB到1.5 GB不等。我想逐行处理数据(替换/删除列的值),然后将数据加载到现有的Redshift表中。这是每天一次的批处理。

  1. AWS Lambda
    • Lambda的内存有限,因此我无法为大型CSV文件运行进程。
  2. EC2 :我已经有一个EC2实例,我正在其中运行python脚本来转换数据并将其加载到redshift。
    • 我一直保持EC2一直运行,而我要为所有表和环境(安装python, psycopg lib等创建的所有python脚本都运行),导致成本更高。
  3. AWS批处理
    • 我创建了一个容器图像,其中包含运行python脚本的所有设置,并将其推送到ECR。
    • 然后我设置AWS Batch作业,该作业可以获取此容器映像并通过ECS运行它。
    • 这是经过优化的,我只为使用的EC2和ECR图像存储付费。
    • 但是我必须在个人桌面上进行所有开发和单元测试,然后再推送一个容器,而无需任何嵌入式AWS服务进行测试。
  4. AWS工作区
    • 我对AWS Workspaces不太熟悉,但是需要输入,它也可以用作AWS批处理以在需要时启动和停止实例,并在其上运行python脚本,编辑或测试脚本。
    • 还可以安排它在定义的时间每天运行吗?

我需要输入哪种服务最适合此类用例的最佳解决方案?或者,如果有人建议以更好的方式使用上面提到的服务的更好方法,那也很好。

0 个答案:

没有答案