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

时间:2019-07-03 19:27:13

标签: amazon-web-services amazon-s3 aws-lambda amazon-redshift aws-glue

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

如果您不想自己编写代码,则可以在网络上搜索现有代码,包括: