• flink widow&window funcion&水印


                        在定义了窗口分配器之后,我们需要为每一个窗口明确的指定计算逻辑,这个就是窗口函数要做的事情,
                        当系统决定一个窗口已经准备好执行之后,这个窗口函数将被用来处理窗口中的每一个元素(可能是
                        分组的)
                        谁可以作为窗口函数来使用:

    function 优点 缺点
    ReduceFunction 更高效,因为在每个窗口中增量地对
    每一个到达的元素执行聚合操作(增量
    聚合)
    场景覆盖不全,无法获取窗口的元
    数据
    AggregateFunction(max/maxBy…)
    FoldFunction(不推荐)
    WindowFunction/AllWindowFuncti
    on(遗留)
    场景覆盖全面,可以拿到窗口的元数
    ;
    相对低效一些,先把属于窗口的
    所有元素都缓存,等到该计算了,
    全部拿出来再计算;
    都可跟reducefunaggfun
    foldfun组合使用
    ProcessWindowFunction/Process
    AllWindowFunction
    ProcessWindowFunction与前三者
    之一组合(混搭)
    兼具高效和场景的覆

    特别提示:在没有专门说明的情况下,凡是带AllAPI就是给Non-keyed window使用的

    ReduceFunction 含义: ReduceFunction定义了如何把两个输入的元素进行合并来生成相同类型的输出元素的过程,Flink使用ReduceFunction来对窗口中的元素进行增量聚合AggregateFunction

    AggregateFunction是ReduceFunction的普适版本,它需要指定三个类型:输入类型(IN)、 累加器类型(ACC)和输出类型(OUT)。
    输入类型是输入流中的元素类型,AggregateFunction有一个方法可以将一个输入元素添加到一个累加器中。该接口还具有创建初始累加器、将两个累加器合并到一个累加器以及从累加器中提取输出(类型为OUT)的方法。 (相当于ReduceFunction自定义函数版本)

    FoldFunction 含义: FoldFunction指定了一个输入元素如何与一个指定输出类型的元素合并的过程,这个FoldFunction 会被每一个加入到窗口中的元素和当前的输出值增量地调用,第一个元素是与一个预定义的类型为输出类型的初始值合并

    WindowFunction/AllWindowFunction(会逐步退出历史舞台)

    ProcessWindowFunction/ProcessAllWindowFunction 含义: ProcessWindowFunction获得一个包含窗口所有元素的可迭代器, 以及一个具有时间和状
    态信息访问权的上下文对象,这使得它比其他窗口函数提供更大的灵活性。这是以性能和资源消耗为代价的,因为元素不能增量地聚合,而是需要在内部缓冲,直到认为窗口可以处理为止。
    •indowFunctionde的升级版,可以跟ReduceFunction /AggregateFunction/FoldFunction结合使用(推荐用法)

    在ProcessWindowFunction中使用每个窗口的状态  含义: ProcessWindowFunction可以与ReduceFunctionAggregateFunctionFoldFunction
    合,以便在元素到达窗口时增量地聚合它们。当窗口关闭时, ProcessWindowFunction将提供聚
    合结果。 ProcessWindowFunction可以在访问附加窗口元信息的同时进行增量计算。






  • 相关阅读:
    MySQL 索引相关
    MySQL 事务操作
    MySQL 分支循环
    详细实例教程!集成华为虚假用户检测,防范虚假恶意流量
    快速集成华为AGC云存储服务-NodeJS
    随心译——无广告的专属实时翻译神器
    如何实现情景式精准触达用户,提高用户活跃与转化?
    快速集成华为AGC-AppLinking服务-iOS平台
    华为联运游戏或应用审核驳回:点击登录进入游戏,未显示欢迎栏
    视频App如何使用无线传输服务获得更好的播放体验
  • 原文地址:https://www.cnblogs.com/yaohaitao/p/11939958.html
Copyright © 2020-2023  润新知