云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战003-Flink基于流的window操作001
2017-11-20 14:33
916 查看
一、流处理的基本概念
1.stream和window
1.源源不断的数据流是无法进行统计工作的,因为数据流没有边界,就无法统计到底有多少数据经过了这个流。 也无法统计数据流中的最大值,最小值,平均值,累加值等信息。 2.如果在数据流上,截取固定大小的一部分,这部分是可以进行统计的。 截取方式主要有两种, 1.根据时间进行截取(time-driven-window),比如每1分钟统计一次或每10分钟统计一次。 2.根据数据进行截取(data-driven-window),比如每5个数据统计一次或每50个数据统计一次。 3.图中上面是time-window,下面是count-window。
2.time
1.事件时间(Event Time):事件在它的生产设备上发生的时间 2.提取时间是(Ingestion time):事件进入Flink的时间 3.处理时间(Processing Time):执行对应Operation设备的系统时间
二、time-window理论
1.车流通过红绿灯的场景
1.红绿灯路口会有汽车通过,一共会有多少汽车通过,无法计算。因为车流源源不断,计算没有边界。 2.统计每15秒钟通过红路灯的汽车数量,第一个15秒为2辆,第二个15秒为3辆,第三个15秒为1辆。。。
2.车流通过红绿灯的计算
1.每15秒统计一次,一共有多少汽车通过红路灯。新数据和原来数据一起统计。 2.第一个15秒为2辆,第二个15秒为2+3=5辆,第三个15秒为2+3+1=6辆。。。
3.其中的tumbling-window (无重叠数据)
1.每分钟统计一次,这一分钟内一共有多少汽车通过红绿灯。 2.第一分钟的为8辆,第二分钟为22辆,第三分钟为27辆。。。这样,1个小时内会有60个tumbling window。
4.其中的sliding-window (有重叠数据)
1.每30秒统计一次,1分钟内通过汽车数量。(30秒窗口滑动时间,1分钟窗口大小时间) 2.第一个1分钟通过8辆,第二个1分钟通过15辆,第三个1分钟通过22辆。。。 3.window出现了重合。这样,1个小时内会有120个window。 4.如果窗口的滑动时间和窗口的大小时间相等,那么sliding-window就变成了tumbling-window 也就是说将每30秒统计一次,统计1分钟通过汽车数量,改成.每1分钟统计一次,1分钟内通过汽车数量。
5.现实的交通场景中的多time-window
1.城市当中有多个红绿灯路口,每个红绿灯路口处都能形成车流。 2.flink可以用多个时间窗口去统计多条车流信息。 3.图中有3条车流信息,用3个窗口去统计,形成了 (sensorId, carCnt)的数据信息。
相关文章推荐
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战005-Flink基于流的window操作003
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战004-Flink基于流的window操作002
- 【云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战001-Flink基于流的wordcount示例001
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战009-DataStream与MySql自定义sink和source(Java版)001
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战011-DataStream与MySql自定义sink和source(Java版)003
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战008-DataStream与MySql自定义sink和source(Scala版)003
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战006-DataStream与MySql自定义sink和source(Scala版)001
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战010-DataStream与MySql自定义sink和source(Java版)002
- 云星数据---Apache Flink实战系列(精品版)】:Flink其他操作及内容002-Flink基于流的windowAndFunction操作001
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战007-DataStream与MySql自定义sink和source(Scala版)002
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战002-Flink基于流的wordcount示例002
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战013-Flink在流处理中常见的sink和source002
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战012-Flink在流处理中常见的sink和source001
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战001--DateSet实用API详解001
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战005--DateSet实用API详解005
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战002--DateSet实用API详解002
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战010--DateSet实用API详解010
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战017--DateSet实用API详解017
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战025--DateSet实用API详解025
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战020--DateSet实用API详解020