zoukankan      html  css  js  c++  java
  • Flink| 第一个窗口触发时间

     窗口的第一个时间窗口是如何定义的呢?查看源码:

    滑动窗口:

     

     

     

     

     这里的offset是用来指定时间戳的时区的,timestamp(1970年1月1号的毫秒数,默认是格林威治0时区的时间),北京时间是东八区,我们的时间比他们早8h,如果要跟他们标准时间统一的话offset应该是 -8;但在国内无所谓的,默认offset = 0。这里的windowSize是slide,上一步传进来的值(即windowSize 是滑动步长)

    如果watermark = 1s, 窗口大小15s,步长5s;

    比如第一个进来的事件时间的时间戳为1547718199 :

        1547718199 - (1547718199 + 5) % 5 = 1547718195
    即第一个window: [195, 210),但实际中到200的时间已经关了

     lastStart最近的一次起点,lastStart = 195,for循环追加了好几个window:195 > 199 - 15 = 184  ---> windows.add (195, 210)

                                                                                 190(195-5) > 184   ----> (190,205) 

                          185 > 184              -------> (185,200)

    [195, 210)、[200, 215)、[205, 220)

    滚动步长源码:

     直接195开始,210结束。而滑动窗口,如上是195开始,200就第一个结束啦;

  • 相关阅读:
    c++的输入流基础知识
    用英文加优先级来解读C的声明
    django 用imagefiled访问图片
    关于Django中的表单验证
    c#语言的一些复习
    IIS发布的网站用localhost可以访问,改成IP就无法访问的解决方案 .
    首次关于IIS配置遇到的一些问题
    常见dos操作
    vs2012中对于entity framework的使用
    几个知识点
  • 原文地址:https://www.cnblogs.com/shengyang17/p/12539925.html
Copyright © 2011-2022 走看看