Kinesis Stream 和 DynamoDB 流之间的区别

Posted

技术标签:

【中文标题】Kinesis Stream 和 DynamoDB 流之间的区别【英文标题】:Difference between Kinesis Stream and DynamoDB streams 【发布时间】:2016-11-29 01:00:10 【问题描述】:

他们似乎对我做同样的事情。谁能给我解释一下区别?

【问题讨论】:

【参考方案1】:

两者的高层次区别:

Kinesis Streams 允许您生成和使用大量数据(日志、Web 数据等),其中 DynamoDB Streams 是 DynamoDB 的本地功能,可让您查看对您的 DynamoDB 表项的精细更改。

更多细节:

Amazon Kinesis Streams

Amazon Kinesis Streams 是 AWS 服务 Big Data suite 的一部分。来自developer documentation:

您可以使用 Streams 进行快速、连续的数据采集和聚合。使用的数据类型包括 IT 基础设施日志数据、应用程序日志、社交媒体、市场数据源和网络点击流数据。以下是使用 Streams 的典型场景:

加速日志和数据馈入和处理...

实时指标和报告...

实时数据分析 ...

复杂的流处理 ...

DynamoDB 流

DynamoDB 是 AWS 的 NoSQL 选项,基本单位是 tables 存储 items。 DynamoDB Streams 是一项功能,您可以打开它以在更改发生时将所有对 items 的更改实时生成为流。打开该功能时,您可以选择写入流的内容:

仅限键——仅修改项的键属性。 新图片 - 整个项目,在修改后显示。 旧图像 - 整个项目,它在修改之前的样子。 新旧图片 - 商品的新旧图片

DynamoDB 流通常用于复制或表审计。更多信息请访问developer guide on DynamoDB streams。

如果您偶然发现this article first,我可以看出您可能会在哪里感到困惑,它表示它们很相似。它们是共享相似 API 调用的不同服务。

【讨论】:

很好的答案!那篇文章正是我感到困惑的地方。谢谢! 这里有点晚了,但如果在更新数据库源(例如 DynamoDB 甚至 RDS 实例之前)在 Kinesis 中使用了数据,您也可以进行复制和表审计,对吗?这只是更多的应用程序级别的责任。 @WillC - 是的 - 无论来源如何,dynamo db 流都应该审核所有内容。

以上是关于Kinesis Stream 和 DynamoDB 流之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

从 DynamoDB 流复制到 Kinesis Data Streams 时如何维护顺序并避免重复记录?

Kinesis Stream 和 Kinesis Firehose 更新 Elasticsearch 索引

使用 Kinesis 客户端库 (KCL 2.x) 的多个使用者到 Kinesis Stream

将 AWS Lambda 数据推送到 Kinesis Stream

等效于 Google Cloud Platform 上的 Kafka / AWS Kinesis Stream

无法从 Spring Cloud Stream Kinesis binder 链中的任何提供商加载 AWS 凭证