gpt4 book ai didi

azure - Azure 流分析中的跳跃窗口

转载 作者:行者123 更新时间:2023-12-02 23:39:31 28 4
gpt4 key购买 nike

我尝试了解 azure 流分析中的跳跃窗口。我将从 Azure 事件中心获取以下数据:

[
{
"Id": "1",
"SensorData": [
{
"Timestamp": 1603112431,
"Type": "LineCrossing",
"Direction": "forward"
},
{
"Timestamp": 1603112431,
"Type": "LineCrossing",
"Direction": "forward"
}
],
"EventProcessedUtcTime": "2020-10-20T06:35:48.5890814Z",
"PartitionId": 1,
"EventEnqueuedUtcTime": "2020-10-20T06:35:48.3540000Z"
},
{
"Id": "1",
"SensorData": [
{
"Timestamp": 1603112430,
"Type": "LineCrossing",
"Direction": "backward"
}
],
"EventProcessedUtcTime": "2020-10-20T06:35:48.5890814Z",
"PartitionId": 0,
"EventEnqueuedUtcTime": "2020-10-20T06:35:48.2140000Z"
}
]

我的查询如下所示:

SELECT s.Id, COUNT(data.ArrayValue.Direction) as Count
FROM [customers] s TIMESTAMP BY EventEnqueuedUtcTime
CROSS APPLY GetArrayElements(s.SensorData) AS data
WHERE data.ArrayValue.Type = 'LineCrossing'
AND data.ArrayValue.Direction = 'forward'
GROUP BY s.Id, HoppingWindow(second, 3600, 5)

我使用跳跃窗口每 5 秒获取最后一天的所有事件。我对给定 dto 的期望是:Id1 的一行,计数为 2,但我收到的是:Id1 的 720 行(因此 3600 除以 5)计数为 2。

这些事件不应该由 HoppingWindow 函数聚合吗?

最佳答案

我按如下方式构建了您的查询:

with inputValues as (Select input.*, message.ArrayValue as Data from input CROSS APPLY GetArrayElements(input.SensorData) as message)

select inputValues.Id, count(Data.Direction) as Count
into output
from inputValues
where Data.Type = 'LineCrossing' and Data.Direction='forward'
GROUP BY inputValues.Id, HoppingWindow(second, 3600, 5)

我已将输入设置为事件中心,并在 Visual Studio 中使用云输入启动查询。

我用了Windows Client application将消息通过管道传输到事件中心(2. 下图所示),并观察到事件每 5 秒发生一次(1. 下图所示,3. 下图所示)。

也许只需更改我共享的查询以反射(reflect)正确的时间戳,但结果应该符合预期 - 对于过去一小时(3600 秒)到达的所有事件,每 5 秒根据定义的条件计入输出HoppingWindow 函数)。

enter image description here

关于azure - Azure 流分析中的跳跃窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64439893/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com