amazon-web-services - AWS 中强大的无服务器 ETL 流
问题描述
我正在尝试构建一个 AWS 坚固的无服务器 ETL 流来将(CSV)文件从 S3 存储桶加载到 Postgres 实例(postgresql9.6)。这些文件相当大(10gb+),所以在测试时我遇到了 Lambda 的多个限制(/tmp 空间、内存空间、时间)。
我正在研究 AWS Glue,但感觉这可能对 RDS 有限制,并且对于我正在尝试做的事情来说有点矫枉过正。
此外,CSV 文件包含 Postgres COPY FROM 无法处理的多字符分隔符(“~|~”)(因此,我还需要进行一些预处理)。
有没有人有类似情况的经验并设法做到无服务器,或者我应该坚持使用 EC2 实例以了解情况?
解决方案
AWS Glue 是此类任务的不错选择,它对带有 JDBC 的 RDS 有很好的支持。您可以采取的步骤:
- 使用 Glue 爬虫推断 S3 文件的架构并将其保存到 Glue 表中。
- 创建到 RDS 的连接
- 使用向导启动 Glue 作业,使用 Glue 表作为源,使用 postgres 作为目标。
如果全部是标准转换,Glue 能够动态生成脚本,您可能不需要编写任何代码。这对我来说是一次很酷的经历。
推荐阅读
- django - 两个 Serializers.py 相互导入
- r - R语言Mersenne Twister算法
- powershell - VS Code 终端:清除的代码不断重现
- go - 没有找到Golang自定义包
- tinymce - TinyMCE + React:格式粗体,斜体,下划线,下标,上标...用于标签 contenteditable="false"
- r - 在 R 数据框中的多列中查找一列中的匹配值
- python - 使用 SqlAlchemy *一次*更新表中的 50K+ 记录
- php - 如何为页面模板制作动态网址?
- javascript - Bootstrap Mobile-Navbar 未折叠
- django - Django 阻止直接 url 访问