Azure 流分析自定义 json 输出
azure stream analytics custom json output
我需要将简单的 json 遥测数据包转换为自定义 json 输出。你能帮我实现这个目标吗?
输入流分析
{"Id":80,"deviceId":"10004","temperature":21.94489404790873,"humidity":63.377043919318496}
流分析的输出应该如下
{
"SiteId":[
80
],
"Name":"xxxx", -->hard coded value /reading from reference input
"Address":"xxxxx",-->hard coded value /reading from reference input
"telemetry":{
"temperature":21.94489404790873,
"humidity":63.377043919318496
}
}
}
假设您的参考数据如下所示:
[
{
"id" : 80,
"name" : "xxxx",
"address" : "xxxx"
},
{
"id" : 90,
"name" : "yyyy",
"address" : "yyyy"
}
]
您可以尝试以下查询:
with telemetry as (select i.id, i.temperature, i.humidity, R.address, R.name from input i inner join RefData R on R.Id = i.Id )
select udf.sitefunc(Id), name, address, udf.telemetryfunc(temperature, humidity) as telemetry
into output
from telemetry
您必须添加两个用户定义函数 (UDF) 才能使其正常工作,它们是:
网站功能:
function UDFSample(arg1) {
'use strict';
var sites = [
arg1
];
return sites;
}
和遥测功能:
function UDFSample(arg1, arg2) {
'use strict';
var telemetry = {
temperature : arg1,
humidity : arg2
};
return telemetry;
}
本质上,这两个函数可以帮助您将值转换为所需的 JSON 格式输出。
本地测试输出如下所示 - 但如果您的输出是具有 JSON 序列化的 Blob 存储,您将获得与示例中相同的格式。
我需要将简单的 json 遥测数据包转换为自定义 json 输出。你能帮我实现这个目标吗?
输入流分析
{"Id":80,"deviceId":"10004","temperature":21.94489404790873,"humidity":63.377043919318496}
流分析的输出应该如下
{
"SiteId":[
80
],
"Name":"xxxx", -->hard coded value /reading from reference input
"Address":"xxxxx",-->hard coded value /reading from reference input
"telemetry":{
"temperature":21.94489404790873,
"humidity":63.377043919318496
}
}
}
假设您的参考数据如下所示:
[
{
"id" : 80,
"name" : "xxxx",
"address" : "xxxx"
},
{
"id" : 90,
"name" : "yyyy",
"address" : "yyyy"
}
]
您可以尝试以下查询:
with telemetry as (select i.id, i.temperature, i.humidity, R.address, R.name from input i inner join RefData R on R.Id = i.Id )
select udf.sitefunc(Id), name, address, udf.telemetryfunc(temperature, humidity) as telemetry
into output
from telemetry
您必须添加两个用户定义函数 (UDF) 才能使其正常工作,它们是:
网站功能:
function UDFSample(arg1) {
'use strict';
var sites = [
arg1
];
return sites;
}
和遥测功能:
function UDFSample(arg1, arg2) {
'use strict';
var telemetry = {
temperature : arg1,
humidity : arg2
};
return telemetry;
}
本质上,这两个函数可以帮助您将值转换为所需的 JSON 格式输出。
本地测试输出如下所示 - 但如果您的输出是具有 JSON 序列化的 Blob 存储,您将获得与示例中相同的格式。