龙空技术网

Apache Flink 零基础入门(五):Time&Window 深度解析

InfoQ 1970

前言:

此时姐妹们对“apachec”可能比较着重,看官们都想要了解一些“apachec”的相关内容。那么小编同时在网上收集了一些对于“apachec””的相关内容,希望各位老铁们能喜欢,姐妹们快快来了解一下吧!

本文是 Apache Flink 零基础入门系列文章的第五篇,重点为大家梳理一下 Flink 处理有限流的核心组件 Window,主要内容包括:为什么要有 Window; Window 中的三个核心组件 WindowAssigner、Trigger 和 Evictor;Window 中怎么处理乱序数据,乱序数据是否允许延迟,以及怎么处理迟到的数据;整个 Window 的数据流程,以及 Window 中怎么保证 Exactly Once 语义。

1. Window & Time 介绍

Apache Flink(以下简称 Flink) 是一个天然支持无限流数据处理的分布式计算框架,在 Flink 中 Window 可以将无限流切分成有限流,是处理有限流的核心组件,现在 Flink 中 Window 可以是时间驱动的(Time Window),也可以是数据驱动的(Count Window)。

下面的代码是在 Flink 中使用 Window 的两个示例

2. Window API 使用

从第一部分我们已经知道 Window 的一些基本概念,以及相关 API,下面我们以一个实际例子来看看怎么使用 Window 相关的 API。

代码来自 flink-examples:

上面的例子中我们首先会对每条数据进行时间抽取,然后进行 keyby,接着依次调用 window(),evictor(), trigger() 以及 maxBy()。下面我们重点来看 window(), evictor() 和 trigger() 这几个方法。

2.1 WindowAssigner, Evictor 以及 Trigger

点击“了解更多”阅读原文,以及系列文章(一)到(四)篇

标签: #apachec