OutputDataConversionError.TypeConversionError 使用 IoT 中心的流分析写入 Azure SQL 数据库

OutputDataConversionError.TypeConversionError writing to Azure SQL DB using Stream Analytics from IoT Hub

我已连接流分析作业以从 IoT 中心获取数据并将其写入 Azure SQL 数据库。

我 运行 遇到了一个输入字段的问题,它是一个 date/time 对象 '2019-07-29T01:29:27.6246594Z',它似乎总是导致 OutputDataConversionError.TypeConversionError-

[11:59:20 AM] Source 'eventssqldb' had 1 occurrences of kind 'OutputDataConversionError.TypeConversionError' between processing times '2019-07-29T01:59:20.7382451Z' and '2019-07-29T01:59:20.7382451Z'.

输入数据样本(sourceeventtime 是问题 - 其他日期时间字段也失败)。

{
    "eventtype":"gamedata",
    "scoretier":4,
    "aistate":"on",
    "sourceeventtime":"2019-07-28T23:59:24.6826565Z",
    "EventProcessedUtcTime":"2019-07-29T00:13:03.4006256Z",
    "PartitionId":1,
    "EventEnqueuedUtcTime":"2019-07-28T23:59:25.7940000Z",
    "IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"testdevice","ConnectionDeviceGenerationId":"636996260331615896","EnqueuedTime":"2019-07-28T23:59:25.7670000Z","StreamId":null}
}

Azure SQL DB 中的目标字段是 datetime2 并且传入的值可以被 Azure SQL DB 使用同一服务器上的查询成功转换。

我尝试了很多不同的技术,包括流分析上的 CAST,以及更改流分析作业的兼容性级别,但都无济于事。

使用流分析中的数据转储测试查询也没有错误。

我将相同的数据写入 Table 存储正常,但需要更改为 Azure SQL 数据库以启用更短的自动 Power BI 刷新周期。

我尝试了多个流分析作业,每次都可以使用 Azure SQL 数据库重新创建。

原来这似乎是 Azure 门户中显示的缓存错误消息。

通过查看详细日志进行进一步调查后发现,另一个对于目标 SQL 数据库字段来说太长的值(即会被截断)是失败的实际来源。解决这个问题消除了错误。