使用Stream Analytics将数据从IoT Hub传输到Cosmos DB会产生分区错误

问题描述 投票:0回答:1

我想使用Stream Analytics将数据从IoT Hub传输到Cosmos DB和存储表。存储表很好。但是,我的流分析在活动日志中给出了以下数据转换错误:

“输出记录不包含用作分区键属性的列'deviceId'(区分大小写)。默认情况下,Azure Stream Analytics重试无限期地写入事件,直到写入成功。考虑选择丢弃输出错误策略以跳过此类错误,因此错误不会阻止作业进度。编写[0]批处理后遇到错误。“

deviceId是我的cosmos db中的分区键。我可以看到数据正确地进入流分析。以下是输入示例:

[{"deviceId":1,"dateStamp":"2019-03-27T18:55:43.3546682Z","temperature":6.510664596692969,"EventProcessedUtcTime":"2019-03-27T18:58:41.6172586Z","PartitionId":1,"EventEnqueuedUtcTime":"2019-03-27T18:55:43.3450000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"Simulator","ConnectionDeviceGenerationId":"636891216524279053","EnqueuedTime":"2019-03-27T18:55:43.3370000Z","StreamId":null}},
{"deviceId":1,"dateStamp":"2019-03-27T18:56:43.3809346Z","temperature":5.5680961758215428,"EventProcessedUtcTime":"2019-03-27T18:58:41.6172586Z","PartitionId":1,"EventEnqueuedUtcTime":"2019-03-27T18:56:43.3640000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"Simulator","ConnectionDeviceGenerationId":"636891216524279053","EnqueuedTime":"2019-03-27T18:56:43.3690000Z","StreamId":null}},
{"deviceId":1,"dateStamp":"2019-03-27T18:57:43.4122929Z","temperature":5.07182001605249,"EventProcessedUtcTime":"2019-03-27T18:58:41.6172586Z","PartitionId":1,"EventEnqueuedUtcTime":"2019-03-27T18:57:43.4050000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"Simulator","ConnectionDeviceGenerationId":"636891216524279053","EnqueuedTime":"2019-03-27T18:57:43.4010000Z","StreamId":null}}]

我的SQL API查询如下,ColdStorageSmartFridge是存储表,HotStorageSmartFridge是cosmosdb:

SELECT
    deviceId,
    dateStamp as time,
    temperature
INTO
    [ColdStorageSmartFridge]
FROM
    [IoTHubSmartFridge]

SELECT 
    deviceId,
    dateStamp,
    temperature    
INTO
    [HotStorageSmartFridge]
FROM
    [IoTHubSmartFridge]

我整整一个下午都在研究这个问题而无法让它发挥作用。我错过了什么?

azure azure-cosmosdb azure-iot-hub azure-stream-analytics
1个回答
2
投票

您的分区键似乎区分大小写。以前,Azure Stream Analytics对不同的字段进行了较低的规定。虽然这不是预期的行为,但我们不想在服务中引入重大变化,因此在“compatibility level 1.1”下发布了修复程序。

您是否可以尝试将作业比较级别更改为1.1并告诉我它是否可以解决您的问题。

我们将在不久的将来更改默认的compat级别。

© www.soinside.com 2019 - 2024. All rights reserved.