簡體   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