【问题标题】:Loading data from Amazon dynamoDB to redshift将数据从 Amazon dynamoDB 加载到 redshift
【发布时间】:2015-07-24 18:22:53
【问题描述】:

我们有一个生产中的 DynamoDB 表正在持续更新,我们希望将所有记录从 dynamoDB 加载到 redshift。

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

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

【问题讨论】:

    标签: amazon-dynamodb amazon-redshift


    【解决方案1】:

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

    DynamoDB Streams 目前处于预览阶段,但应该很快就会普遍可用。

    【讨论】:

      【解决方案2】:

      您可以使用以下模式:

      DynamoDB 流 --> AWS Lambda --> Amazon Kinesis Firehose --> Amazon Redshift。

      图表来自 AWS 文章 DynamoDB Streams Use Cases and Design Patterns

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

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

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

      AWS Lambda 无需预置或管理服务器即可运行代码。您只需为您消耗的计算时间付费——当您的代码未运行时,您无需支付任何费用。您几乎可以为任何类型的应用程序或后端服务运行代码 — 全部实现零管理。

      Lambda 对于检查来自流的数据很有用。例如,它可用于操作数据格式或跳过不需要的数据。

      综合起来,您可以在 DynamoDB 中添加/修改数据。这将导致发送包含有关更改的信息的 DynamoDB 流AWS Lambda 函数可以检查数据并操作/删除消息。然后它可以将数据转发到 Kinesis Data Firehose 以自动将数据插入到 Amazon Redshift

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-30
        • 2018-11-18
        • 1970-01-01
        • 1970-01-01
        • 2017-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多