DynamoDB 到 Redshift

Posted

技术标签:

【中文标题】DynamoDB 到 Redshift【英文标题】:DynamoDB to Redshift 【发布时间】:2017-11-13 20:15:29 【问题描述】:

我在将数据从 DynamoDb 加载到 Redshift 的上下文中提出这个问题。根据Redshift Docs:

为避免消耗过多的预置读取吞吐量,我们建议您不要从生产环境中的 Amazon DynamoDB 表加载数据

我的数据在生产中,那么我该如何将其取出?

另外,DynamoDB Streams 是将数据从 DynamoDB 移动到 Redshift 的更好整体选择吗? (我知道这不会增加我的 RCU 成本。)

【问题讨论】:

【参考方案1】:

警告是因为导出可能会在一段时间内消耗您的大部分读取容量,这会影响您的生产环境。

一些选项:

晚上不需要太多容量的时候做 将READRATIO 设置为较低的值,以减少其消耗的容量 执行导出时临时增加表的Read Capacity Units(可以decrease capacity一天四次)

DynamoDB Streams 提供表示对 DynamoDB 表的更改的数据流。您需要使用 AWS Lambda 处理这些流,以将数据发送到某处以加载到 Redshift。例如,您可以填充另一个 DynamoDB 表并将其用于导入 Redshift。或者,您可以将数据写入 Amazon S3 并从那里导入 Redshift。然而,这涉及到很多活动部件

【讨论】:

【参考方案2】:

使用 AWS 数据管道,您可以将数据从 DynamoDB 批量复制到新的或现有的 Redshift 表。

【讨论】:

批量复制我假设消耗 RCUs 好吧,这里是 EMR 解决方案,因为它在复制时保证 HA

以上是关于DynamoDB 到 Redshift的主要内容,如果未能解决你的问题,请参考以下文章

将 JSON 数据从 dynamoDB 复制到 redshift

使用python将复杂对象保存到dynamoDb

无法使用 CloudFormation 将 GSI 添加到 DynamoDB 表

使用 Lambda 将 Json 添加到 DynamoDB

AWS 数据管道 Dynamodb 到 Redshift

使用 AWS AppSync 将项目附加到 DynamoDB