Flink笔记(十三):Flink中Time 和 Window 介绍

1.Time

  在 Flink 的流式处理中,会涉及到时间的不同概念
在这里插入图片描述
Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间。

Ingestion Time:是数据进入 Flink 的时间

Processing Time:被算子处理时的时间。默认的时间属性就是Processing Time。


我们来举个Time时间的例子↓↓↓

例如: 现在系统产生了一条日志,日志内容如下:

2020-02-11 15:15:06.218 INFO kernel:NMI watchdog: BUG: soft lockup
在这里插入图片描述
      对于业务需求来说,如果我们要统计 1min 内的故障日志个数,那么这三个时间中哪个时间是最有意义的?       答案显然是 EventTime,因为我们要根据日志的生成时间进行统计


2.Window

2.1 Window概念

      Streaming流式计算是一种被设计用于处理无限数据集的数据处理引擎,而无限数据集是指一种不断增长的无限的数据集。而 Window 是一种切割无限数据集为有限块进行处理的手段。

      1.没有 Window 操作之前,我们对数据的处理是:来一条计算一条。
      2.有了 Window 操作之后,我们便可以使用 Window 操作,将无界的数据流通过划分窗口,把某段时间的数据当做有界的数据流,然后对这部分有界的数据流进行计算。

      Window是无限数据流处理的核心,Window 可以将一个无限的 stream 流拆分成有限大小的"buckets"桶,我们可以在这些桶上做计算操作。

2.2 Window 类型划分

Window 可以分成两类:

1.CountWindow:按照指定的数据条数生成一个Window,与时间无关


2.TimeWindow:按照时间生成Window

对于 TimeWindow,可以根据窗口实现原理的不同分成三类:1.滚动窗口(Tumbling Window)2.滑动窗口(Sliding Window)3.会话窗口(Session Window)

2.2.1 滚动窗口

概念:
       将数据依据固定的窗口长度,对数据进行切片。通常用来计算窗口滚动一次,在窗口中的数据。

2.2.2 滑动窗口

2.2.3 会话窗口

发布了252 篇原创文章 · 获赞 45 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/lzb348110175/article/details/104263221