kafka流处理的关键概念

本文概述

  • 时间
  • 状态
  • 流表对偶
  • 时间窗
用户应了解以下有关流处理的概念:
kafka流处理的关键概念

文章图片
时间这是必不可少的,也是最令人困惑的概念。在流处理中,大多数操作都依赖时间。因此,对于这种流应用程序,通常的时间观念是典型的任务。
Kafka Stream处理涉及以下时间概念:
  1. 事件时间:事件发生的时间以及最初创建记录的时间。因此,事件时间在流数据的处理期间很重要。
  2. 日志追加时间:事件到达的时间,以便代理存储。
  3. 处理时间:流处理应用程序接收事件以应用某些操作的时间。时间可以是毫秒,天或小时。在这里,根据每个流处理应用程序恰巧何时读取事件,将不同的时间戳分配给同一事件。同样,同一应用程序中两个线程的时间戳可能不同。因此,处理时间非常不可靠,并且最好避免。
状态流处理应用程序中维护着不同的状态。
状态是:
  1. 内部或本地状态:只能由特定的流处理应用程序的实例访问的状态。内部状态由应用程序内的嵌入式内存数据库管理和维护。尽管本地状态非常快,但是内存大小有限。
  2. 外部状态:这是在外部数据存储区(例如NoSQL数据库)中维护的状态。与内部状态不同,它提供了几乎无限的内存大小。同样,可以从不同的应用程序或它们的实例中访问它。但是,它带来了额外的延迟和复杂性,这使得某些应用程序可以避免。
流表对偶表是由主键唯一标识的记录的集合。触发查询以检查特定时间点的数据状态。表格不包含历史记录,特别是除非我们设计了历史记录。另一方面,流包含更改的历史记录。流是事件的字符串,其中每个事件都会导致更改。因此,表和流是同一枚硬币的两侧。因此,要将表转换为流,用户需要捕获修改表的命令。诸如插入,更新和删除之类的命令将被捕获并存储到流中。另外,如果用户要将流转换为表,则需要转换流包含的所有更改。这种转换过程也称为实现流。因此,我们可以具有将流更改为表以及将表更改为流的双重过程。
时间窗【kafka流处理的关键概念】时间窗口一词是指将总时间分成几部分。因此,在流上有一些操作取决于时间窗口。这样的操作称为窗口操作。例如,对在两个流上执行的加入操作进行窗口化。尽管人们很少在乎其操作所需的窗口类型。

    推荐阅读