在没有 AWS Pipeline 的情况下,将数据(csv 文件)从 s3 自动传输到 Redshift 的最佳方法是什么?

What is the most optimal way to automate data (csv file) transfer from s3 to Redshift without AWS Pipeline?

我正在尝试获取存储在 s3 存储桶中 csv 文件中的 sql 数据,并将数据传输到 AWS Redshift 并自动执行该过程。使用 lambda/glue 编写 etl 脚本是否是解决此问题的最佳方法,如果是这样,我如何定期将 script/transfer 更改为 运行?如果没有,将数据从 s3 传输到 Redshift 的最佳方式是什么。

尝试使用 AWS Pipeline,但我所在的地区不可用。我还尝试使用 Lambda 和 Glue 的 AWS 文档,但不知道在哪里可以找到问题的确切解决方案

所有系统(包括 AWS Data Pipeline)都使用 Amazon Redshift COPY 命令从 Amazon S3 加载数据

因此,您可以编写连接到 Redshift 并发出 COPY 命令的 AWS Lambda 函数。您需要包含一个兼容的库(例如 psycopg2)才能调用 Redshift。

您可以使用 Amazon CloudWatch Events 定期调用 Lambda 函数。或者,您可以花点心思配置 Amazon S3 事件,以便在将文件放入 S3 存储桶时自动触发 Lambda 函数。

如果不想自己写,可以在网上搜索已有的代码,包括: