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



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

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

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

批处理最适合您的用例。我看到您对批处理的关注是关于个人桌面上的开发和单元测试。您可以使用 AWS ECR、CodePipeline、CodeCommit 和 CodeBuild 自动执行该过程。设置管道以检测对代码存储库所做的更改,生成映像并将其推送到 ECR。批处理可以从那里获取最新图像。

相关内容

  • 没有找到相关文章

最新更新