当前位置: 首页 > 面试题库 >

查询中的Azure Stream Analytics'TimeStamp By'在工作中不起作用,但在测试中效果很好

袁鸿达
2023-03-14
问题内容

我正在从事一个物联网项目。我有一个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流分析上使用“测试”功能时得到的结果:

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

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

谢谢你的帮助。


问题答案:

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



 类似资料:
  • 我在Hibernate4.0.1中遇到了本地查询问题。我有查询工作在数据库控制台,但不是在应用程序。我有: 名为“case”的表有两列指向同一个表--名为“cost”的表,其列为“value”。我的查询如下所示: 有人提到,'value'不是列的专有名称。这是真的,事实上这个列不是名为'value',而是有点不同。我的严格合同禁止发布任何关于代码的信息。我必须尽可能地释义它,所以我在fly中重命名

  • 这是html文件 当我在浏览器中运行这个时,请求不会被发送(我在后端的跟踪球中看不到任何东西),url工作正常,如果在浏览器和邮递员中使用,这是邮递员请求和响应的截图

  • 我有一些 在量角器中,我们搜索并找到元素,检查文本是否符合我们的期望,然后对该元素调用。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。 IE 11是否支持点击

  • 我变得非常困惑,我试图通过laravels query builder运行一个应该可以工作的查询,但它会抛出奇怪的错误。

  • 问题内容: 我有一个响应迅速的网页。它利用媒体查询。 但是在iframe中加载的同一页面无法正常工作。 例如,考虑到我的网页,当屏幕宽度小于640px时,我将背景色设置为红色。 因此,当我在新标签页中加载该窗口并使浏览器宽度小于640px时,背景颜色变为红色。 但是,在以320 * 480尺寸的iframe加载时,同一窗口没有红色的背景色。 如何使媒体查询在iframe中工作? 问题答案: 以这种

  • 问题内容: 我正在尝试从名为user_enrole的表中删除所有记录。 我认为查询的语法没有错,但这给了我错误提示 #1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的’* FROM user_enrole’附近使用正确的语法 我已经仔细检查了我的语法,但我无法找出问题出在哪里,请有人指出。 是由于该表与使用表之间的关系而发生的还是什么? 问题答案: 您无需在删