我正在尝试将存储在s3存储桶中csv文件中的sql数据提取并将数据传输到AWS Redshift并使该过程自动化。用lambda / glue编写etl脚本是解决此问题的最佳方法吗?如果是,如何使脚本/传输定期运行?如果不是这样,从s3到Redshift传输数据的最佳方法是什么。
尝试使用AWS Pipeline,但在我所在的地区不可用。我还尝试过使用Lambda和Glue的AWS文档,但不知道在哪里可以找到问题的确切解决方案
答案 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函数。
如果您不想自己编写代码,则可以在网络上搜索现有代码,包括: