转换Apache Nifi中的ExecuteSQL记录



我是Nifi的新手,所以在学习这方面也很欠缺。我有一个任务要从executeSQL获取数据,记录返回如下:

[{
"PKG_HA_01_ON":2.0,
"PKG_HA_03_ON":28.0,
"PKG_HA_04_ON":7.0,
"PKG_HA_05_ON":0.0,
"PKG_HA_06_ON":1.0,
"PKG_HA_09_ON":5.0
},
{
"PKG_HA_01_ON":8.02905,
"PKG_HA_03_ON":57.29038333333333,
"PKG_HA_04_ON":2.2858666666666663,
"PKG_HA_05_ON":60.0,
"PKG_HA_06_ON":12.291533333333332,
"PKG_HA_09_ON":12.3363
}]

这是联合查询的结果。现在,我想转换成这个:

[{
"machine":"PKG_HA_01_ON",
"counter":2.0,
"duration":8.02905
},
{
"machine":"PKG_HA_03_ON",
"counter":28.0,
"duration":57.29038333333333
}]

我研究过JoltTransformJSON,但仍然坚持使用它。那么,实现所需JSON的最佳方法是什么呢?

提前感谢!!!

您可以将shift转换连续应用为

[
{
"operation": "shift",
"spec": {
"*": {
"@PKG_HA_01_ON": "PKG_HA_01_ON.&",
"@PKG_HA_03_ON": "PKG_HA_03_ON.&"
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"$": "&.machine",
"@(1,&.0)": "&.counter",
"@(1,&.1)": "&.duration"
}
}
},
{
"operation": "shift",
"spec": {
"*": ""
}
}
]

在第一步中将结果集限制为两个键(PKG_HA_01/3_ON(,同时分别确定键01的值,然后在添加machine元素时将这些编号的键转换为您的键(分别为counterduration(,并在最后一步删除键名。

最新更新