1

我正在尝试将从 Cloudrail.Box 接收的传感器读数作为 JSON 有效负载存储到 Azure SQL 数据库中。我当前使用的边缘函数根据设定的频率分批输出消息(如下所示)。{ “Temp_V_Raw”:0.789,“Pressure_V_Raw”:0.006,“Temp_C”:23.67,“Pressure_Bar”:1.8450718792014,“时间戳”:1617990070392,“日期”:“2021 年 4 月 9 日星期五 19:41:10 GMT+0200 )" }

如何将其以表格格式存储在 Azure SQL 数据库中?

4

1 回答 1

1

我建议您创建一个存储过程来处理 json 数据,然后通过存储过程将 JSON 数据传递到 Azure SQL 数据库。

参考存储过程示例:

CREATE TABLE dbo.SystemRecord(
    RecordedDateTime        datetime2(0) NOT NULL,
    RecordedDateTimeLocal   datetime2(0) NOT NULL,
    CpuPctProcessorTime     smallint     NOT NULL,
    MemAvailGbytes          smallint     NOT NULL
)

CREATE PROCEDURE dbo.InsertSystemRecordData
 
@json NVARCHAR(max)

AS
BEGIN
 
INSERT INTO dbo.SystemRecord (
  [RecordedDateTime]
, [RecordedDateTimeLocal]
, [CpuPctProcessorTime]
, [MemAvailGbytes])
 
    SELECT
        RecordedDateTime
       ,RecordedDateTimeLocal
       ,CpuPctProcessorTime
       ,MemAvailGbytes
    FROM OPENJSON(@json)
    WITH (
      RecordedDateTime      DATETIME2(0) '$.dateTime'
    , RecordedDateTimeLocal DATETIME2(0) '$.dateTimeLocal'
    , CpuPctProcessorTime   SMALLINT     '$.cpuPctProcessorTime'
    , MemAvailGbytes        SMALLINT     '$.memAvailGbytes'
    ) AS jsonValues
 
END

EXEC dbo.InsertSystemRecordData @json ='{"dateTime":"2018-03-19T15:15:40.222Z","dateTimeLocal":"2018-03-19T11:15:40.222Z","cpuPctProcessorTime":"0","memAvailGbytes":"28"}'

您可以参考这些链接:

  1. 将 json_value 传递给存储过程
  2. 如何将 JSON 数据插入 SQL Server 数据库

HTH。

于 2021-04-10T13:35:22.980 回答