【问题标题】: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 应用程序,则需要先删除这些检查点。

    【讨论】:

      猜你喜欢
      • 2020-07-02
      • 2021-02-15
      • 2017-08-26
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多