Kinesis客户端库DynamoDB适配器是否会丢失数据

时间:2016-06-03 19:00:14

标签: amazon-dynamodb amazon-kinesis amazon-dynamodb-streams amazon-kcl

DynamoDB Streams Kinesis Adaptor published on github here 具有此功能,并带有以下注释:

  

Kinesis模型在发生时提供相邻的父级分片ID         父分片合并。由于DynamoDB Streams不支持合并,因此         总是返回null。

我对此感到担忧,我将使用7个分片的示例来描述我的关注,为简单起见,我们将它们命名为 0 6

0 的父级由于保留政策而不再可用, 1,2,3,4,5 是兄弟姐妹,因为DynamoDB表,所有这些都是 0 作为其父级,而 6 是当前打开的分片,并且是由于DynamoDB表上的流量峰值下降而导致的合并结果。我还假设它可以只有一个父,所以它的父母是 3

那么,这是否意味着如果我们使用此适配器对具有上述状态的DynamoDB Stream启动一个Worker,它只会开始处理分片 0 3 < / em>和 6 ??

1 个答案:

答案 0 :(得分:2)

我了解到DynamoDB Stream分片从不合并。即使在流量减少之后,每个(并行)分片也只会降低吞吐量。我在问题中描述的情况不会发生。

似乎也是

  

DynamoDB Stream分片最多可包含1个父级,最多2个子级。

我从这个问题中学到的底线是:

  

Kinesis客户端库+ DynamoDB Streams Kinesis适配器保证按顺序处理所有分片,除非您在处理分片时落后,以便在处理分片之前对其进行修剪。