您的位置:首页 > 运维架构 > Apache

云星数据---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)的数据信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐