繁体   English   中英

Azure Stream Analytics作业会截断数据

[英]Azure Stream Analytics job truncates data

我的Azure IoT中心和Azure流分析工作遇到一个非常奇怪的问题。

长话短说:我配置了一个Azure IoT中心实例,以从Raspberry PI 3上获取一些天气数据,该树上装有传感器; 然后,我配置了一个Azure Stream Analytics作业,以从IoT中心获取数据并将其放入DocumentDB集合中-在配置阶段,我将sensorId设置为分区键。 在运行了将近3天的工作后,我又购买了一些传感器(具有不同的ID)并将其添加到Raspberry PI中-数据正在收集并发送到Azure IoT中心,而所有3个附加传感器均无任何问题(已选中使用设备资源管理器进行传输)。

现在出现了一个奇怪的部分-只有第一个传感器发送的数据(本身运行将近3天的数据)正在通过Analytics(分析)作业并发送到DocumentDB-在门户中,我看到我有很多Input事件,但是我看到0个输出事件(尽管数据正在通过)。

为了排除任何其他问题,我编写了一个小型控制台应用程序,可以“侦听” IoT中心以接收传入消息,实际上,所有传感器都将数据发送到IoT中心。

用于分析作业的查询如下:

    SELECT
    sensorId,
    avg(humidity) as avghumidity,
    avg(temperatureFromHumidity) as avgtemperatureFromHumidity,
    avg(objectTemperature) as avgobjectTemperature,
    avg(temperatureFromIr) as avgtemperatureFromIr,
    avg(pressure) as avgpressure,
    avg(lux) as avglux,
    System.TimeStamp AS executionTime
INTO
    [XXX-document-db]
FROM
    [home-meteo] TIMESTAMP BY currentTime
GROUP BY 
    sensorId,
    TumblingWindow(second, 30)

我已经看到其他问题,在某种程度上相似,但可以接受的答案是,Microsoft存在一个错误。

有什么办法可以调试这个东西?

谢谢。

我的糟糕。...偶然发现了问题-在documentdb中,我仅从一个传感器看到记录,而从其他2个传感器看不到,并且不明白为什么,但是在查看了我在分析控制台中编写的查询之后,我意识到那只是我的错。

场景是这样的:我将documentdb的作业输出配置为具有executeTime字段作为行键,但是对于所有3个传感器,该值都相同,并且我想象在第一次插入DocumentDB后,其他两个传感器提供了某种错误(我不熟悉DocumentDB-我知道SQL Server),这就是我认为发生的情况。

我更改查询,并将另一个字段用作行键,一切正常。 希望我足够清楚。

没错,ASA中的DocDb输出基于指定的DocumentId列执行基于补丁(合并)的upsert(插入或替换)。 干杯!

暂无
暂无

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

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