将D2C消息存储在Azure SQL数据库中



我正在尝试将从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(CEST(";}

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

我建议您创建一个存储过程来处理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。

最新更新