个性化阅读
专注于IT技术分析

kafka流处理的关键概念

本文概述

用户应了解以下有关流处理的概念:

时间

这是必不可少的,也是最令人困惑的概念。在流处理中,大多数操作都依赖时间。因此,对于这种流应用程序,通常的时间观念是典型的任务。

Kafka Stream处理涉及以下时间概念:

  1. 事件时间:事件发生的时间以及最初创建记录的时间。因此,事件时间在流数据的处理期间很重要。
  2. 日志追加时间:事件到达的时间,以便代理存储。
  3. 处理时间:流处理应用程序接收事件以应用某些操作的时间。时间可以是毫秒,天或小时。在这里,根据每个流处理应用程序恰巧何时读取事件,将不同的时间戳分配给同一事件。同样,同一应用程序中两个线程的时间戳可能不同。因此,处理时间非常不可靠,并且最好避免。

状态

流处理应用程序中维护着不同的状态。

状态是:

  1. 内部或本地状态:只能由特定的流处理应用程序的实例访问的状态。内部状态由应用程序内的嵌入式内存数据库管理和维护。尽管本地状态非常快,但是内存大小有限。
  2. 外部状态:这是在外部数据存储区(例如NoSQL数据库)中维护的状态。与内部状态不同,它提供了几乎无限的内存大小。同样,可以从不同的应用程序或它们的实例中访问它。但是,它带来了额外的延迟和复杂性,这使得某些应用程序可以避免。

流表对偶

表是由主键唯一标识的记录的集合。触发查询以检查特定时间点的数据状态。表格不包含历史记录,特别是除非我们设计了历史记录。另一方面,流包含更改的历史记录。流是事件的字符串,其中每个事件都会导致更改。因此,表和流是同一枚硬币的两侧。因此,要将表转换为流,用户需要捕获修改表的命令。诸如插入,更新和删除之类的命令将被捕获并存储到流中。另外,如果用户要将流转换为表,则需要转换流包含的所有更改。这种转换过程也称为实现流。因此,我们可以具有将流更改为表以及将表更改为流的双重过程。

时间窗

时间窗口一词是指将总时间分成几部分。因此,在流上有一些操作取决于时间窗口。这样的操作称为窗口操作。例如,对在两个流上执行的加入操作进行窗口化。尽管人们很少在乎其操作所需的窗口类型。


赞(1)
未经允许不得转载:srcmini » kafka流处理的关键概念

评论 抢沙发

评论前必须登录!