首页 > 解决方案 > AWS 中强大的无服务器 ETL 流

问题描述

我正在尝试构建一个 AWS 坚固的无服务器 ETL 流来将(CSV)文件从 S3 存储桶加载到 Postgres 实例(postgresql9.6)。这些文件相当大(10gb+),所以在测试时我遇到了 Lambda 的多个限制(/tmp 空间、内存空间、时间)。

我正在研究 AWS Glue,但感觉这可能对 RDS 有限制,并且对于我正在尝试做的事情来说有点矫枉过正。

此外,CSV 文件包含 Postgres COPY FROM 无法处理的多字符分隔符(“~|~”)(因此,我还需要进行一些预处理)。

有没有人有类似情况的经验并设法做到无服务器,或者我应该坚持使用 EC2 实例以了解情况?

标签: amazon-web-servicesaws-lambdaserverlessaws-glue

解决方案


AWS Glue 是此类任务的不错选择,它对带有 JDBC 的 RDS 有很好的支持。您可以采取的步骤:

  1. 使用 Glue 爬虫推断 S3 文件的架构并将其保存到 Glue 表中。
  2. 创建到 RDS 的连接
  3. 使用向导启动 Glue 作业,使用 Glue 表作为源,使用 postgres 作为目标。

如果全部是标准转换,Glue 能够动态生成脚本,您可能不需要编写任何代码。这对我来说是一次很酷的经历。


推荐阅读