将数据从Amazon dynamoDB加载到redshift

时间:2015-05-13 12:47:15

标签: amazon-dynamodb amazon-redshift

我们正在生产的DynamoDB表不断更新,我们希望将所有记录从dynamoDB加载到redshift。

我们尝试使用copy命令,但由于新记录不断插入表中,因此复制命令将永远运行。

我们想知道从live dynamodb加载数据到redshift的最佳方法是什么。

2 个答案:

答案 0 :(得分:4)

考虑查看基于DynamoDB Streams的解决方案。 Streams提供每个DynamoDB分区上发生的数据平面事件的有序日志(因此每个主键的事件都是绝对有序的)。您可以使用Kinesis Client LibraryDynamoDB Streams Kinesis Adapter处理Stream to Redshift。

DynamoDB Streams目前处于预览状态,但应该很快就会推出。

答案 1 :(得分:0)

您可以使用以下模式:

DynamoDB Streams - > AWS Lambda - > Amazon Kinesis Firehose - >亚马逊Redshift。

AWS文章DynamoDB Streams Use Cases and Design Patterns中的图表。

请在此处查看答案,AWS DynamoDB Stream into Redshift

DynamoDB流实际上与Kinesis数据流相同,但它是由DynamoDB中的新/已更改数据自动生成的。这允许在将新数据添加到DynamoDB表或更改数据时通知应用程序。

Kinesis Data Firehose 可以自动将流输出到Redshift(以及其他目的地)。

AWS Lambda 可以在不配置或管理服务器的情况下运行代码。您只需为您消耗的计算时间付费 - 当您的代码未运行时,您将免费使用。您可以为几乎任何类型的应用程序或后端服务运行代码 - 所有这些都是零管理。

Lambda对于检查通过流传输的数据非常有用。例如,它可用于操纵数据格式或跳过不需要的数据。

总而言之,您可以在 DynamoDB 中添加/修改数据。这将导致发送 DynamoDB Stream ,其中包含有关更改的信息。 AWS Lambda函数可以检查数据并操纵/删除邮件。然后,它可以将数据转发到 Kinesis Data Firehose ,以自动将数据插入 Amazon Redshift

enter image description here