Nifi - 将根 json 元素拆分为不同的流文件
Nifi - splitting root json elements into different flowfiles
我有一个数据源正在发送 json 格式的消息,其中包含各种键值对。每条消息中包含哪些密钥是不一致的。但是,我需要将每个单独的键值对拆分到它自己的流文件中,并能够提取键名
这样做的原因是我需要使用键名执行 table 查找,以生成新的数据格式,包括值
例如,如果我收到这样的消息:
{
"key1": 123,
"Key2": 4234,
"Key3": 789
}
我希望输出是三个独立的流文件
{
"key1": 123
}
{
"Key2": 4234
}
{
"Key3": 789
}
我还需要根据这些单独的流文件了解如何提取密钥的名称
对了,
你需要一个震动变压器
您的流程将如下所示:
我的 jolt 设置它的地方:
震动规格:
[
{
"operation": "shift",
"spec": {
"*": {
"$": "[#2].Key",
"@": "[#2].Value"
}
}
}
]
N
**接下来将输出拆分为 $.*.
并使用 EvaluateJson 评估 Key 和 Value,然后您可以根据需要使用 Lookup 中的属性。
这将是 Jolt Trans 的输出:
[ {
"Key" : "key1",
"Value" : 123
}, {
"Key" : "Key2",
"Value" : 4234
}, {
"Key" : "Key3",
"Value" : 789
} ]
我有一个数据源正在发送 json 格式的消息,其中包含各种键值对。每条消息中包含哪些密钥是不一致的。但是,我需要将每个单独的键值对拆分到它自己的流文件中,并能够提取键名
这样做的原因是我需要使用键名执行 table 查找,以生成新的数据格式,包括值
例如,如果我收到这样的消息:
{
"key1": 123,
"Key2": 4234,
"Key3": 789
}
我希望输出是三个独立的流文件
{
"key1": 123
}
{
"Key2": 4234
}
{
"Key3": 789
}
我还需要根据这些单独的流文件了解如何提取密钥的名称
对了,
你需要一个震动变压器
您的流程将如下所示:
我的 jolt 设置它的地方:
震动规格:
[
{
"operation": "shift",
"spec": {
"*": {
"$": "[#2].Key",
"@": "[#2].Value"
}
}
}
]
N
**接下来将输出拆分为 $.*.
并使用 EvaluateJson 评估 Key 和 Value,然后您可以根据需要使用 Lookup 中的属性。
这将是 Jolt Trans 的输出:
[ {
"Key" : "key1",
"Value" : 123
}, {
"Key" : "Key2",
"Value" : 4234
}, {
"Key" : "Key3",
"Value" : 789
} ]