千家信息网

怎么理解Flink1.10中的时间机制

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关怎么理解Flink1.10中的时间机制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、概述这里我们介绍下Flink的另外
千家信息网最后更新 2026年11月01日怎么理解Flink1.10中的时间机制

这篇文章将为大家详细讲解有关怎么理解Flink1.10中的时间机制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

一、概述

这里我们介绍下Flink的另外一个核心概念"Event Time机制"。

二、Flink中的三种时间机制

Flink在流处理程序中支持三种时间的概念,分别是EventTime、ProcessingTime、IngestionTime,Flink流式处理中,绝大部分的业务都会使用EventTime,一般只在EventTime无法使用时,考虑其他时间属性下面分别介绍下。

1.EventTime 事件时间

EventTime是事件发生的时间,在进行Flink流处理程序之前,这个时间就已经能包含在了事件中,并且可以从每个记录中提取事件时间戳。

在EventTime中,时间的进展取决于数据,而不是任何墙上的时钟。EventTime程序必须指定如何生成事件EventTime Watermarks,这是EventTime进展的信号机制。这种Watermarks机制将在下面的小节中进行描述。

假设所有数据都已到达,事件时间操作将按照预期的方式运行,即使在处理无序或延迟的事件或重新处理历史数据时,也会产生正确和一致的结果。例如,每小时事件时间窗口将包含所有记录,这些记录携带属于该小时的事件时间戳,而与它们到达的顺序无关,也与它们被处理的时间无关。

2.ProcessingTime 处理时间

ProcessingTime是指执行相应操作的机器的系统时间,ProcessingTime是Flink默认的时间概念,如需使用其他时间类型需要单独设置。

当流程序在处理时间上运行时,所有基于时间的操作(如时间窗口)将使用运行各个operator的机器的系统时钟。每小时处理时间窗口将包括在系统时钟指示完整小时之间到达特定operator的所有记录。例如,如果一个应用程序在上午9:15开始运行,那么第一个每小时处理时间窗口将包括上午9:15到10:00之间处理的事件,下一个窗口将包括上午10:00到11:00之间处理的事件,依此类推。

3.IngestionTime 摄入时间

IngestionTime是事件进入Flink的时间。在source operator中,每个记录以时间戳的形式获取源的当前时间,基于时间的操作(如时间窗口)引用该时间戳。

IngestionTime概念上位于EventTime和ProcessingTime之间。与ProcessingTime相比,它稍微昂贵一些,但是提供了更可预测的结果。由于IngestionTime使用稳定的时间戳(在源处分配一次),对记录的不同窗口操作将引用相同的时间戳,而在ProcessingTime中,每个窗口操作人员可以将记录分配到不同的窗口(基于本地系统时钟和任何传输延迟)。

与ProcessingTime相比,IngestionTime程序不能处理任何无序事件或延迟数据,但程序不必指定如何生成Watermarks,因为在内部,它自动进行时间戳分配和自动Watermarks生成。

下面是Flink官网中对于时间标识的一张图:

4.设置时间特性

通常,我们在Flink初始化流式运行环境时,就会设置流处理时间特性。这个设置很重要,它决定了数据流的行为方式。(例如:是否需要给事件分配时间戳),以及窗口操作应该使用什么样的时间类型;代码示例:

final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();//Flink默认的是ProcessingTimeenv.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime);// alternatively:// env.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime);// env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);

至此,Flink三种时间机制讲解完毕,上面我们说了EventTime必须要指定如何生成事件时间Watermarks。

关于怎么理解Flink1.10中的时间机制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

时间 事件 处理 机制 程序 小时 数据 运行 之间 时钟 概念 系统 分配 生成 延迟 不同 内容 文章 方式 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技 中智农互联网科技 广州大一互联网络科技有限公司 互联网科技巨头监管 互联网是不是新科技 金诺互联网科技 互联网金融与金融科技 丰台科技园 互联网公司 剑昆互联网络科技有限公司临桂 金融科技与互联网金融相同和不同 互联网金融科技公司干啥的 南山科技园互联网公司有哪些 恒生互联网科技指数跳水 速维有品互联网信息科技(苏州)有限公司 青海科技产业互联网发展 怎样加入科技互联网 上海创道互联网络科技有限公司 上海互联网科技公司ppt 互联网界的黑科技 山东蛋芒互联网科技有限公司 耶加雪菲 互联网科技官网 关于新基建和互联网科技 剑昆互联网络科技有限公司临桂 北京华百购互联网科技有限公司 互联网科技革命什么开始 郑州欣桑互联网科技有限公司 国产互联网科技公司 唐山双旺合互联网科技产业园 第三届互联网大会安防黑科技
0