Amazon web services 修剪地平线vs最新版本

Amazon web services 修剪地平线vs最新版本,amazon-web-services,aws-sdk,amazon-kinesis,amazon-kcl,Amazon Web Services,Aws Sdk,Amazon Kinesis,Amazon Kcl,我在AWS Kinesis的正式文档中找不到TRIM_HORIZON和检查点之间的任何明确的参考,也找不到最新的和检查点之间的任何参考 你能证实我的理论吗 TRIM_HORIZON-如果应用程序名称是新的,那么我将读取流中所有可用的记录。否则,应用程序名称已被使用,然后我将从上次检查点读取 LATEST-如果应用程序名称是新的,那么我将读取流中在我订阅流之后添加的所有记录。否则,应用程序名称已被使用,我将从上次检查点读取消息 只有在应用程序名称是新的情况下,TRIM_HORIZON和LATES

我在AWS Kinesis的正式文档中找不到
TRIM_HORIZON
和检查点之间的任何明确的参考,也找不到
最新的
和检查点之间的任何参考

你能证实我的理论吗

  • TRIM_HORIZON
    -如果应用程序名称是新的,那么我将读取流中所有可用的记录。否则,应用程序名称已被使用,然后我将从上次检查点读取

  • LATEST
    -如果应用程序名称是新的,那么我将读取流中在我订阅流之后添加的所有记录。否则,应用程序名称已被使用,我将从上次检查点读取消息

  • 只有在应用程序名称是新的情况下,
    TRIM_HORIZON
    LATEST
    之间才有区别。

来自(这与我使用动觉的经验相符):

在请求中,您可以指定碎片迭代器类型
AT_TIMESTAMP
从任意时间点读取记录,
TRIM_HORIZON
使碎片迭代器指向系统中碎片中最后一条未经修剪的记录(碎片中最早的数据记录),或
LATEST
,以便始终读取碎片中的最新数据

基本上,区别在于您是想从最旧的记录开始(
TRIM_HORIZON
),还是从“立即”开始(
LATEST
-跳过最新检查点和现在之间的数据)

时间戳

--从特定时间戳

修剪地平线

--动觉流中的所有可用消息从一开始就开始(与卡夫卡中最早的消息相同)

最近的


--从最新的消息,即刚刚进入Kinesis/Kafka的当前消息和从那时起在Words上传入的所有消息来看,问题清楚地询问了这些选项与检查点的关系。但是,现有的答案中没有一个能够解决检查点问题

Justin Pfifer对这个问题的权威回答出现在GitHub期刊上

最相关的部分是

如果存在,KCL将始终使用租赁表中的价值。重要的是要记住,Kinesis本身并不跟踪消费者的地位。跟踪由租赁表提供。租赁KCL服务器的双重职责。它们提供互斥和位置跟踪。因此,为了实现互斥,需要创建租约,并且为了满足位置跟踪,必须选择初始值


(我加了强调。)

这似乎不正确
TRIM_HORIZON
将读取最旧的,无论是否“已处理”。什么是“来自最新消息”?倒序?你能对此进行扩展吗?不是相反的顺序,而是跳过消息,从“现在”开始向前移动(想法是流不断接收新数据,你可以用它作为一种追赶机制,以牺牲数据丢失为代价)。最新消息意味着刚刚进入动觉的当前消息。因此,消费者开始消费该消息中的消息以及将来传入的任何消息Kinesis@Krease当你说数据丢失的费用时,这是否意味着只有在我们最初设置事件源映射的时候,或者如果您将太多数据推送到dynamo/kinesis中,并且lambda处理缓慢,并且在设置事件源映射后只通过跳过进入流的未处理记录来拾取最新记录,那么即使在之后,数据丢失也会发生?@iamprem-只是一种跳过记录的机制——假设你的处理远远落后(即一个小时),你可以跳过那个小时(丢失记录),然后开始处理最近的记录。这在数据最近性比数据完整性更重要的情况下非常有用。这两个答案都不能清楚地说明这是否仅在您第一次创建源映射时起作用,或者您丢失了最新处于稳定状态的数据。