[TOC]一、键控状态的使用import java.util import com.lilinchao.flink.window.SensorReading import org.apache.flink.api.common.functions.{ReduceFunction, RichReduceFunction} import org.apache.flink.api.common....
[TOC]前言 在传统的批处理中,数据是划分为块分片去完成的,然后每一个Task去处理一个分片。当分片执行完成后,把输出聚合起来就是最终的结果。在这个过程当中,对于state的需求还是比较小的。 对于流计算而言,对State有非常高的要求,因为在流系统中输入是一个无限制的流,会运行很长一段时间,甚至运行几天或者几个月都不会停机。在这个过程当中,就需要将状态数据很好的管...
前言版本:Flink 1.10.1示例数据0001,1550116440000 0001,1550116441000 0001,1550116442000 0001,1550116443000 0001,1550116444000 0001,1550116445000 0001,1550116446000 0001,1550116450000 0001,1550116451000 0001,...
[TOC]前言版本:Flink 1.10.1示例数据sensor_1,1547718199,35.8 sensor_6,1547718201,15.4 sensor_7,1547718202,6.7 sensor_10,1547718205,38.1 sensor_1,1547718206,32 sensor_1,1547718208,36.2 sensor_1,1547718210,29....
[TOC]一、乱序数据的影响我们知道,流处理从事件产生,到流经source,再到operator,中间是有一个过程和时间的,虽然大部分情况下,流到operator的数据都是按照事件产生的时间顺序来的,但是也不排除由于网络、分布式等原因,导致乱序的产生,所谓乱序,就是指 Flink 接收到的事件的先后顺序不是严格按照事件的Event Time顺序排列的。那么此时出现一个问题,一旦出现乱序,如果...
[TOC]前言在流处理中,时间是一个非常核心的概念,是整个系统的基石。我们经常会遇到这样的需求:给定一个时间窗口,比如一个小时,统计时间窗口内的数据指标。那如何界定哪些数据将进入这个窗口呢?在窗口的定义之前,首先需要确定一个作业使用什么样的时间语义。本节将介绍Flink的Event Time、Processing Time和Ingestion Time三种时间语义。一、概念在Flink的流式...
[TOC]一、概念window function 定义了要对窗口中收集的数据做的计算操作,主要可以分为两类:增量聚合函数(incremental aggregation functions)每条数据到来就进行计算,保持一个简单的状态。典型的增量聚合函数有 ReduceFunction, AggregateFunction。全窗口函数(full window functions)先把窗口所有数...
[TOC]前言使用版本Flink 1.10.1JDK 1.8数据准备sensor_1,1547718199,35.8 sensor_6,1547718201,15.4 sensor_7,1547718202,6.7 sensor_10,1547718205,38.1 sensor_1,1547718206,32 sensor_1,1547718208,36.2 sensor_1,154771...
[TOC]一、窗口(window) 概念streaming流式计算是一种被设计用于处理无限数据集的数据处理引擎无限数据集是指一种不断增长的本质上无限的数据集窗口(window)是一种切割无限数据为有限块进行处理的手段Window是无限数据流处理的核心,Window将一个无限的stream拆分成有限大小的”buckets”桶,我们可以在这些桶上做计算操作Flink认为Batch是Streami...