TRIM_HORIZON vs LATEST

Ida*_*mit 12 amazon-web-services amazon-kinesis aws-sdk amazon-kcl

我无法在正式文档中找到检查点之间的AWS Kinesis任何明确引用,TRIM_HORIZON以及检查点之间的任何引用LATEST.

你能证实我的理论:

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

  • LATEST- 如果应用程序名称是新的,那么我将读取在订阅流之后添加的流中的所有记录.否则,应用程序的名称已经使用,我会阅读的邮件我的最后一道关卡.

  • TRIM_HORIZON和之间的区别LATEST仅在于应用程序名称是新的.

Kre*_*ase 9

GetShardIterator文档(与我使用Kinesis的经验一致)中:

在请求中,可以指定碎片迭代器类型AT_TIMESTAMP从任意时间点读记录,TRIM_HORIZON造成ShardIterator以点的碎片在系统中最后一个未修剪记录(碎片最早的数据记录),或LATEST使您总是会读取分片中的最新数据。

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


Sur*_*nti 6

AT_TIMESTAMP

-从特定时间戳记

TRIM_HORIZON

-Kinesis流中的所有可用消息(与Kafka中最早的消息相同)

最新

-来自最新消息

  • “来自最新消息”是什么意思?相反的顺序?您能对此进行扩展吗? (2认同)
  • 不是相反的顺序,而是跳过消息从“现在”开始并向前推进(这个想法是流不断接收新数据,您可以使用它作为一种追赶机制,但代价是数据丢失) (2认同)
  • 最新消息是指刚刚进入 Kinesis 的当前消息。因此消费者开始使用该消息中的消息以及进入 Kinesis 的任何未来消息 (2认同)