答案 0 :(得分:2)
决定性的答案是检查后备存储或索引以查看是否已经插入了记录(DynamoDB,Redshift,RDS等)。最佳做法是将数据存储区与Kinesis处理器实例分开,这样您只需要检查一个位置。有几种方法可以做到这一点,这可能是另一个问题的主题。
如果您正在使用KCL,那么它会自己处理分片,并且您不需要处理它们。使用KCL,您的实例消耗的分片可能会随时间而变化,因此我不建议创建一个依赖于始终从同一分片中接收数据的实例的系统。
要回答这个问题,如果从分片中消耗了一次唯一记录并且(无论出于何种原因)再次出现,那么它将是第二次来自同一个分片,因为它的分区键将会没有改变。
注意:通常只有在第一次为该记录批次交货失败时才会再次收到记录。