【问题标题】:Kinesis: What is the direction in which data is read from a Shard when using LATEST vs TRIM_HORIZONKinesis:使用 LATEST 与 TRIM_HORIZON 时从分片读取数据的方向是什么
【发布时间】:2017-07-10 22:14:36
【问题描述】:

在适用于 Kinesis 的 AWS API 中,分片迭代器具有参数 ShardIteratorType,它接受以下值之一:

AT_SEQUENCE_NUMBER、AFTER_SEQUENCE_NUMBER、AT_TIMESTAMP、TRIM_HORIZON、 最新

然而,这方面的 AWS 文档写得非常糟糕,因此我的问题是,这对于理解 Kinesis 的工作原理至关重要: 使用上面列出的每个迭代器类型时,读取数据的方向是什么?

是从当前指针处的记录中读取的数据,指向插入在当前记录之前的记录;还是从当前指针处的记录中读取的数据指向插入当前记录之后插入的记录?

【问题讨论】:

    标签: amazon-web-services amazon-kinesis


    【解决方案1】:

    读取分片迭代器apidocs

    我们可以看到 LATEST 从流的开头开始并向后工作,您获得最新记录并返回到最旧的记录。

    TRIM_HORIZON 的工作方向相反,您会获取最旧的数据并继续使用最新的数据。

    AT_SEQUENCE_NUMBER、AFTER_SEQUENCE_NUMBER 和 AT_TIMESTAMP 基于从流中已知位置开始并按顺序移动的概念。按顺序至少基于 sequence number docs,我相信这意味着朝着修剪方向移动。即,至少到最大的序列号。

    我希望其中的一些帮助,LASTEST 和 TRIM_HORIZON 基于这些文档对我有意义,但是我完全同意 AFTER/AT_SEQUENCE 数字有点令人困惑。如果有人对此有很好的编辑,请发表评论。

    【讨论】:

    • “我们可以看到 LATEST 从流的头部开始并向后工作,您获得最新记录并返回到最旧的记录。”对支持此声明的文档有任何引用吗?
    • 如果您阅读第三段docs.aws.amazon.com/kinesis/latest/APIReference/…,它描述了 LATEST 如何为您提供最新批次。可能有一个地方更明确地说明了这一点。
    猜你喜欢
    • 2018-09-18
    • 2019-10-24
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多