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