我想使用流分析将数据从 IoT 中心传输到 Cosmos DB 和存储表。储物 table 没问题。但是,我的流分析在事件日志中显示以下数据转换错误:
“输出记录不包含用作分区键属性的“deviceId”列(区分大小写)。默认情况下,Azure 流分析会无限期地重试写入事件,直到写入成功。请考虑选择“删除输出错误策略”跳过此类错误,这样错误就不会阻止作业进度。写入 [0] 个批处理后遇到错误。”
deviceId 是我的 Cosmos 数据库中的分区键。我可以看到数据正确地进入流分析。以下是输入示例:
[{"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}}]
My SQL API查询如下,ColdStorageSmartFridge是存储表,HotStorageSmartFridge是cosmosdb:
SELECT
deviceId,
dateStamp as time,
temperature
INTO
[ColdStorageSmartFridge]
FROM
[IoTHubSmartFridge]
SELECT
deviceId,
dateStamp,
temperature
INTO
[HotStorageSmartFridge]
FROM
[IoTHubSmartFridge]
我花了整个下午的时间来解决这个问题,但没能成功。我错过了什么?
最佳答案
看来您的分区键可能区分大小写。以前,Azure 流分析将不同字段的大小写为小写。虽然这不是预期的行为,但我们不想在服务中引入重大更改,因此在“compatibility level 1.1”下发布了修复程序。
您能否尝试将工作兼容级别更改为 1.1,并告诉我是否可以解决您的问题。
我们将在不久的将来更改默认的兼容级别。
关于azure - 使用流分析将数据从 IoT 中心传输到 Cosmos DB 会出现分区错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55384850/