【问题标题】:Azure Stream Analytics timestamp for window end窗口结束的 Azure 流分析时间戳
【发布时间】:2016-09-07 18:55:56
【问题描述】:

我正在运行此查询的 Azure 流分析上运行一些测试作业:

SELECT System.Timestamp AS ts, Collect()
INTO output−queue
FROM input-hub TIMESTAMP BY tapp
GROUP BY HoppingWindow(second , 4 , 2)

事实证明,在某些情况下,窗口结束的时间戳是窗口 slide 参数的倍数,但有时不是。

例如,使用slide = 2,您将获得此窗口关闭时间戳:

2016-08-04T10:36:40.0000000Z
2016-08-04T10:36:42.0000000Z
2016-08-04T10:36:44.0000000Z
2016-08-04T10:36:46.0000000Z
2016-08-04T10:36:48.0000000Z

或者,在slide = 5的情况下:

2016-08-04T14:55:15.0000000Z
2016-08-04T14:55:20.0000000Z
2016-08-04T14:55:25.0000000Z
2016-08-04T14:55:30.0000000Z

即使对于不同的 slide 值(例如 2、3、4、6、...)也是如此。而且,它总是是真的!无论工作何时开始。

有些值(例如 7、11)不遵循此规则。

有人能回答为什么会这样吗?
我想知道 Azure SA 如何决定何时打开第一个窗口。

非常感谢!

【问题讨论】:

    标签: streaming azure-stream-analytics windowing


    【解决方案1】:

    有不同种类的窗口(有关详细信息,请参阅here)。

    首先,窗口开始/结束不取决于作业开始时间。

    TumblingHopping 窗口在逻辑上最好被认为是划分时间线本身。例如,应用 1 分钟 的翻滚窗口将使结果仅出现在 1 分钟的时间值,即 2:00pm2:01pm 等

    请注意,并非每 1 分钟边界必须有窗口结果,而是取决于计算。

    滑动窗口可以在时间轴上的任何点产生输出,与翻滚和跳跃窗口不同,确实依赖于输入事件。考虑滑动窗口的最佳方式是,窗口可以在任何输入事件处结束,并在该事件之前的 slide 时间开始。换句话说,每个事件窗口都将包括在它之前的幻灯片时间或之前发生的所有事件。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 2022-12-08
      • 1970-01-01
      相关资源
      最近更新 更多