如何在 Amazon Redshift 中定期插入数据?

Posted

技术标签:

【中文标题】如何在 Amazon Redshift 中定期插入数据?【英文标题】:How can I Periodically Insert Data in Amazon Redshift? 【发布时间】:2021-08-16 09:16:07 【问题描述】:

我想定期将来自 S3(或其他字体)的数据插入 Amazon Redshift,即,当数据添加到我的 S3 存储桶时,我想要一个选项以将其自动添加到我的 Amazon Redshift 集群中。

【问题讨论】:

其他字体是什么意思? S3 将如何获取数据? @AmithJayasekara 其他字体如mysql数据库 【参考方案1】:

我首选的方法是建立一个触发器,每次在存储桶的一部分中创建文件时触发该触发器。此触发器创建一个事件,该事件启动一个向 Redshift 发出所需 SQL 的 Lambda 函数。 (或者,如果 Redshift 中需要的工作很复杂或运行时间很长,我会使用阶跃函数,但这种情况很少见。)

为此设置示例:

https://docs.aws.amazon.com/AmazonS3/latest/userguide/NotificationHowTo.html https://64lines.medium.com/building-a-aws-lambda-function-to-run-aws-redshift-sql-scripts-in-python-7468b7c2fdea

如果可以的话,我会从简单的开始,然后使用 Redshift Data API 和 Step 函数。

【讨论】:

【参考方案2】:

您可以使用定期触发的计划 Lambda 自动插入来自 S3 的数据。这可能是比在每次上传对象时调用 Lambda 更好的解决方案,尤其是在您连续接收大量文件的情况下。

【讨论】:

以上是关于如何在 Amazon Redshift 中定期插入数据?的主要内容,如果未能解决你的问题,请参考以下文章

amazon redshift 并发写入导致插入记录,导致重复

在 Amazon Redshift 上插入行的事务的 ID

Amazon Redshift 大小增加

如何使用 Pentaho 处理 Amazon Redshift 中缓慢变化的维度?

如何将 PostgreSQL 数据文件导入 Amazon Redshift

批量上传到 Amazon Redshift