【问题标题】:AWS Kinesis read from pastAWS Kinesis 从过去读取
【发布时间】:2016-06-27 21:34:12
【问题描述】:
我们如何从 AWS Kinesis 流中读取时间回溯?
使用 AWS Kinesis 流,可以发送事件流,消费者应用程序可以读取事件。 Kinesis Stream 工作程序从最后一个检查点获取记录并将它们传递给 IRecordProcessor#processRecords。
但是,如果我需要读取回溯到过去的记录,例如从 2 小时前开始处理记录,我该如何配置我的 kinesis worker 来获取这些记录?
【问题讨论】:
标签:
amazon-web-services
amazon-kinesis
【解决方案1】:
您可以使用有关 Shard 迭代器的不同设置再次启动您的 kinesis 消费者(或不同的消费者)。
看这里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 应用程序,则需要先删除这些检查点。