AWS Kinesis 如何从过去读取数据?

3

如何从 AWS Kinesis 流中读取早期的记录?
使用 AWS Kinesis 流,可以发送事件流,消费者应用程序可以读取这些事件。Kinesis 流工作程序获取记录并将它们传递给 IRecordProcessor#processRecords 从最后一个检查点开始处理。
然而,如果我需要读取过去的记录,比如两个小时之前的记录,该如何配置我的 kinesis 工作程序以获取这些记录呢?

1个回答

4

您可以使用不同的设置重新启动(或另一个)Kinesis消费者,以获取有关Shard迭代器的不同设置。 请参阅此处的GetShardIterator 通常的设置是LATEST或TRIM_HORIZON(最旧的):

{
   "ShardId": "ShardId",
   "ShardIteratorType": "LATEST",
   "StreamName": "StreamName",
}

但是你可以将其更改为特定时间(从过去的24小时内)

{
   "ShardId": "ShardId",
   "ShardIteratorType": "AT_TIMESTAMP",
   "StreamName": "StreamName",
   "Timestamp": 2016-06-29T19:58:46.480-00:00
}

需要记住的是通常Kinesis消费者会在DynamoDB表中保存其检查点,因此如果您正在使用相同的Kinesis应用程序,则需要首先删除这些检查点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接