当前位置:   article > 正文

云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战003-Flink基于流的window操作001

flink流处理api详解与编程实战003

一、流处理的基本概念

1.stream和window

1.源源不断的数据流是无法进行统计工作的,因为数据流没有边界,就无法统计到底有多少数据经过了这个流。
  也无法统计数据流中的最大值,最小值,平均值,累加值等信息。
2.如果在数据流上,截取固定大小的一部分,这部分是可以进行统计的。 截取方式主要有两种,
  1.根据时间进行截取(time-driven-window),比如每1分钟统计一次或每10分钟统计一次。
  2.根据数据进行截取(data-driven-window),比如每5个数据统计一次或每50个数据统计一次。
3.图中上面是time-window,下面是count-window
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.time

这里写图片描述

1.事件时间(Event Time):事件在它的生产设备上发生的时间 
2.提取时间是(Ingestion time):事件进入Flink的时间
3.处理时间(Processing Time):执行对应Operation设备的系统时间
  • 1
  • 2
  • 3

二、time-window理论

1.车流通过红绿灯的场景

1.红绿灯路口会有汽车通过,一共会有多少汽车通过,无法计算。因为车流源源不断,计算没有边界。
2.统计每15秒钟通过红路灯的汽车数量,第一个15秒为2辆,第二个15秒为3辆,第三个15秒为1辆。。。
  • 1
  • 2

2.车流通过红绿灯的计算

1.每15秒统计一次,一共有多少汽车通过红路灯。新数据和原来数据一起统计。
2.第一个15秒为2辆,第二个15秒为2+3=5辆,第三个15秒为2+3+1=6辆。。。
  • 1
  • 2

3.其中的tumbling-window (无重叠数据)

1.每分钟统计一次,这一分钟内一共有多少汽车通过红绿灯。
2.第一分钟的为8辆,第二分钟为22辆,第三分钟为27辆。。。这样,1个小时内会有60个tumbling window
  • 1
  • 2

4.其中的sliding-window (有重叠数据)

1.30秒统计一次,1分钟内通过汽车数量。(30秒窗口滑动时间,1分钟窗口大小时间)
2.第一个1分钟通过8辆,第二个1分钟通过15辆,第三个1分钟通过22辆。。。
3.window出现了重合。这样,1个小时内会有120window4.如果窗口的滑动时间和窗口的大小时间相等,那么sliding-window就变成了tumbling-window
  也就是说将每30秒统计一次,统计1分钟通过汽车数量,改成.每1分钟统计一次,1分钟内通过汽车数量。
  • 1
  • 2
  • 3
  • 4
  • 5

5.现实的交通场景中的多time-window

1.城市当中有多个红绿灯路口,每个红绿灯路口处都能形成车流。
2.flink可以用多个时间窗口去统计多条车流信息。
3.图中有3条车流信息,用3个窗口去统计,形成了 (sensorId, carCnt)的数据信息。
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/745417
推荐阅读
相关标签
  

闽ICP备14008679号