AWS DynamoDB 流式传输到 Redshift

AWS DynamoDB Stream into Redshift

我们希望将数据从 DynamoDB NoSQL 以流的形式连续移动到 Redshift 数据库中。 我很难理解 AWS 中的所有新 terms/technologies。有

1) DynamoDB Streams

2) AWS Lambda

3) AWS Kinesis Firehose

有人可以提供每个的简短摘要。 什么是 DynamoDB 流? 这与 AmazonKinesis 有何不同? 看完所有资源,这是我的假设理解,请在下面验证。

(a) 我假设DynamoDB Streams,创建NoSQL的流数据,然后开始发送。是发件人。

(b) Lambda 只允许人们消耗时间,它是租用处理 DynamoDB Stream 的服务器的时间。

(c) Kinesis FireHose 转换 DynamoDB 流,并放入 Redshift。

(d) AmazonQuickSight 是他们的商业智能工具,

这样对术语的理解是正确的吗? 正在查看 Stack link,需要更全面的信息。

Amazon Kinesis 可以实时收集、处理和分析视频和数据流。

  • 使用 Kinesis Video Streams 捕获、处理和存储视频流以用于分析和机器学习。
  • 使用 Kinesis Data Streams 构建使用流行的流处理框架分析数据流的自定义应用程序。
  • 使用 Kinesis Data Firehose 将数据流加载到 AWS 数据存储中。
  • 使用 Kinesis Data Analytics 通过 SQL 分析数据流。

DynamoDB 流 与 Kinesis 数据流一样有效,但它是由 DynamoDB 中的 new/changed 数据自动生成的。这允许在将新数据添加到 DynamoDB table 或更改数据时通知应用程序。

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

AWS Lambda 可以 运行 编写代码而无需配置或管理服务器。您只需为消耗的计算时间付费 — 如果您的代码未 运行ning,则不收费。您可以 运行 为几乎任何类型的应用程序或后端服务编写代码 — 所有这些都是零管理。

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

将它们放在一起,您可以在 DynamoDB 中拥有数据 added/modified。这将导致发送包含更改信息的 DynamoDB StreamAWS Lambda 函数 可以检查数据和 manipulate/drop 消息。如果可以然后将数据转发到 Kinesis Data Firehose 以自动将数据插入 Amazon Redshift.

这是一个例子:

  • 银行交易存储在 DynamoDB 中
  • DynamoDB Streams 将其发送到 Lambda 函数
  • Lambda 函数查看交易并检索有关银行账户的信息。如果账户中有足够的余额,函数退出,什么也不做。
  • 如果账户中余额不足,它可以通过Amazon SES发送邮件告知账户持有人。然后它可以将数据发送到 Firehose,后者将其存储在 Redshift 中以报告逾期帐户。

一起使用这些系统的好处是它们可以用最少的代码提供丰富的应用程序功能。在这个例子中,只有 Lambda 函数需要编码——其余的通过将各种组件链接在一起来工作。此外,它完全是无服务器的——也就是说,不需要 运行 Amazon EC2 实例上的应用程序。