繁体   English   中英

查询中的 Azure 流分析“TimeStamp By”在工作中不起作用,但在测试中运行良好

[英]Azure Stream Analytics 'TimeStamp By' in query doesn't works on job but works fine on test

我正在做一个物联网项目。 我有一个 Raspberry pi,可将数据发送到 Azure 上的 IoTHub。 该集线器将该数据转发到 Azure 流分析作业。 在我的查询中,我尝试在 1 分钟的 TumblingWindow 中聚合(这里是平均值)所有数据,但作为时间戳,我使用数据中发送的自定义日期时间。

我尝试了很多东西,但似乎没有任何效果。 流作业似乎忽略了我提供的日期时间,只是根据到达时间聚合所有内容。 仅当通过上传 json 文件使用“测试”功能时它才有效。

SELECT
    DateAdd(minute, -1, system.Timestamp) as TumblingWindowStartTime, 
    system.TimeStamp as TumblingWindowEndTime, 
    event.DeviceId as DeviceId, 
    AVG(event.Temperature) as TemperatureAverage,
    Count(*) as MeasurementsCount
INTO
    [input]
FROM
    [output] as event
TIMESTAMP BY MeasuredOn
GROUP BY
    event.DeviceId,
    TumblingWindow(minute, 1)

我发送的数据类型

[
   {
      "Temperature":13.426585352712585,
      "DeviceId":"UlyssesPi",
      "MeasuredOn":"2019-04-09T11:20:30.1027311Z"
   },
   {
      "Temperature":16.81523611620778,
      "DeviceId":"UlyssesPi",
      "MeasuredOn":"2019-04-09T11:20:35.2281002Z"
   },
   ...
]

我期待的是在 Azure Stream Analytics 上使用“测试”功能时得到的结果:

TUMBLINGWINDOWSTARTTIME || TUMBLINGWINDOWENDTIME || DEVICEID || TEMPERATUREAVERAGE || MEASUREMENTSCOUNT
"2019-04-09T11:20:0...     "2019-04-09T11:21:0...   UlyssesPi   14.674093214798454    6
"2019-04-09T11:21:0...     "2019-04-09T11:22:0...   UlyssesPi   18.612186615873217    12
"2019-04-09T11:22:0...     "2019-04-09T11:23:0...   UlyssesPi   12.799415359568199    12

但我得到以下信息:

TUMBLINGWINDOWSTARTTIME || TUMBLINGWINDOWENDTIME || DEVICEID || TEMPERATUREAVERAGE || MEASUREMENTSCOUNT
"2019-04-09 11:22:0...     "2019-04-09 11:23:0...   UlyssesPi   15,4994594331363      30

那么结果怎么会不一样呢? 是我做错了什么吗? 我能做什么?

谢谢你的帮助。

在门户上测试流分析逻辑时,不会应用事件排序策略。 但是,当您在云上运行作业时,会应用事件排序策略。 您需要确保负载中的时间戳准确(并且事件不会很晚到达)。 您还可以配置事件排序策略来定义延迟到达策略(默认为 5 秒)。 您可以在此处了解如何使用这些设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM