有什么方法可以通过流分析作业将原始 JSON 数据传输到 Azure SQL?

Is there any way to reach raw JSON data through Stream Analytics Job into Azure SQL?

我有一些传感器以 JSON 格式的字符串向 Azure IoT 中心发送数据。到目前为止,我通过 Hub Trigger 上的 Function Apps 处理数据。

现在我正在尝试寻找方法,如何通过 Azure 流分析作业将“原始”JSON 数据保存到 Azure SQL 数据库中。问题是没有“原始”数据的设置,SA 总是将输入 JSON 解析(反序列化)到数据字段中。我只想获取“原始”JSON 并将其保存到数据库中。

让我举例说明一下... 原始 JSON(由 IoT 中心捕获)如下所示:

{
"gtwid": "0013A200419F2BAA",
"devid": "0013A200418975CC",
"telemetry": {
  "t1": {
    "id": "a698ab4d2001",
    "avg": 26,
    "max": 26,
    "min": 26
  }
}

当我尝试在 SA 中使用以下查询代码时,我得到了部分想要的结果,但仅针对“遥测”树:

WITH s AS
(
SELECT
        gtwid
      , devid 
      , telemetry.*      
FROM
    [iothub]
)

SELECT gtwid,devid,gtwtime,timestamp,t1 INTO [db] FROM s

它在数据库中产生这个结果:

RecID  gtwid             devid             t1
1      0013A200419F2BAA  0013A200418975CC  {"id":"a698ab4d2001","avg":26,"max":26,"min":26}

我想得到这样的结果:

RecID  JsonValue
1      {"gtwid": "0013A200419F2BAA","devid": "0013A200418975CC","telemetry": {"t1": {"id": "a698ab4d2001","avg": 26,"max": 26,"min": 26}}

请问我该怎么做?

目前无法绕过反序列化。

相反,您可以使用 JavaScript UDF 重新生成原始负载。这显然不是一回事,但它可以根据您的需要提供帮助。