• Flink Window那些事——Window小分类(Window Assinger类型)


    1、Window Assinger是干啥的
    当你决定stream是否keyby之后,window是没有构建的,你还需要指定一个window Assinger用于定义元素如何分配到窗口中。

    2、window Assinger如何指定?
    Keyedstream:window(WindowAssigner)
    non-keyed streams :windowAll(WindowAssigner)
    window Assinger的作用:负责将每个传入的元素分配给一个或多个窗口

    有了window Assinger,才会创建出各种形式的window来覆盖我们所需的各种场景,所以不用过多关注window本身的分类,关注window Assinger的分类即可。

    Count-based window: 根据元素个数对数据流进行分组切片
    Tumbling CountWindow(翻滚窗口)
    Sliding CountWindow(滑动窗口)

    Time-based window: 根据时间对数据流进行分组切片
    Tumbling Window
    Sliding Window
    Session Window

    注意:Time-based window [start,end)

    3、Tumbling Windows-翻滚窗口
    3.1、定义:将数据依据固定的窗口长度对数据进行切片

    3.2、特点:
    时间对齐
    窗口长度固定
    event无重叠

    3.3、适用场景:
    BI统计(计算各个时间段的指标)

    3.4、Tumbling Windows的使用
    对齐方式:默认是aligned with epoch(整点、整分、整秒等),可以通过offset参数改变对齐方式

    4、Sliding Windows-滑动窗口
    4.1、定义:是固定窗口的更广义的一种形式。滑动窗口由固定的窗口长度和滑动间隔组成

    4.2、特点:
    时间对齐
    窗口长度固定
    event有重叠

    4.3、适用场景:
    监控场景,对最近一个时间段内的统计(求某接口最近5min的失败率来决定是否要报警)

    4.4、Sliding Windows的使用
    对齐方式:默认是aligned with epoch(整点、整分、整秒等),可以通过offset参数改变对齐方式。

    5、Session Windows
    5.1、定义:
    类似于web应用的session,即一段时间没有接受到新数据就会生成新的窗口(固定gap/gap fun)

    5.2、特点:
    时间无对齐
    event不重叠
    没有固定开始和结束时间

    5.3、适用场景:
    线上用户行为分析

    5.4、Session Windows的使用
    5.4.1、Gap
    固定gap
    动态gap(函数):实现SessionWindowTimeGapExtractor

    5.4.2、特殊处理方式
    session window operator为每个到达的event创建一个新窗口,如果它们之间的距离比定义的间隔更近,则将窗口合并在一起

    为了能够合并, session window operator需要合并触发器和合并窗口函数,例如ReduceFunction、AggregateFunction或ProcessWindowFunction (FoldFunction不能合并)

    6、Global Windows
    6.1、定义:有相同key的所有元素分配给相同的单个全局窗口

    6.2、必须指定自定义触发器否则没有任何意义

    6.3、注意:不要跟Non-keyed Window搞混,两个不同的角度

  • 相关阅读:
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业01
    学期总结
    C语言I博客作业08
    C语言I博客作业07
  • 原文地址:https://www.cnblogs.com/linjiqin/p/12589714.html
Copyright © 2020-2023  润新知