【问题标题】:OutputDataConversionError.TypeConversionError writing to Azure SQL DB using Stream Analytics from IoT HubOutputDataConversionError.TypeConversionError 使用来自 IoT 中心的流分析写入 Azure SQL DB
【发布时间】:2019-12-06 08:36:19
【问题描述】:

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

我遇到了一个输入字段的问题,它是一个日期/时间对象“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,以及更改流分析作业的兼容性级别,但均无济于事。

使用流分析中的数据转储测试查询也不会产生错误。

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

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

【问题讨论】:

  • 这个博客stackoverflow.com/questions/56267217/… 有帮助吗?
  • 我已经将目标列设置为“datetime2”,并且根据该帖子测试了传入的值,SQL DB 很乐意将其转换为有效的 datetime2 项。这就是我迷路的原因!

标签: azure-sql-database azure-iot-hub azure-stream-analytics


【解决方案1】:

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

在通过查看详细日志进行进一步调查时,似乎另一个对于目标 SQL DB 字段来说太长的值(即会被截断)是失败的实际根源。解决此问题即可消除错误。

【讨论】:

  • 您可以接受它作为答案。这可能对其他社区成员有益。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
  • 2018-05-09
  • 2021-11-17
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多