在 NiFi 中将两个 JSON 流文件合并在一起

meh*_*meh 5 apache-nifi

我想通过相同的指定属性合并两个包含 JSON 对象的流文件...

流程1:

attribute:    
xuuid = 123456

content:
{
"sname":"jack",
"id":"00001",
"state":"NY"
}
Run Code Online (Sandbox Code Playgroud)

流程2:

attribute:    
xuuid = 123456

content:
{
"country":"US",
"date":"1983"
}
Run Code Online (Sandbox Code Playgroud)

我希望在单个输出流中出现这种形式的数据:

期望流:

attribute:    
xuuid = 123456

content:
{
"sname":"jack",
"id":"00001",
"state":"NY",
"country":"US",
"date":"1983"
}
Run Code Online (Sandbox Code Playgroud)

我怎么玩这个?MergeContent 处理器还是 MergeRecord?我认为 mergeecord 可以处理它,但我对此感到困惑。

Up_*_*One 5

是的 MergeContent 可以为您做到这一点。

我使用EvalJson --> MergeContent --> AttributesToJson

我在这里发布了一个模板,你可以用来玩。 Apache NiFi 合并 Json 模板

MergeContent必须有这样的设置:“将所有属性”,“2 entires的NUM”,“分隔符的策略是文本”


Bry*_*nde 4

您要求的是流连接,这不是 NiFi 真正做的事情,类似的问题和答案在这里:

/sf/answers/3003645501/

合并处理器用于逐个合并数据片段,而不是执行流式连接。例如,如果您有许多小的 json 消息,您可能需要使用 MergeContent 或 MergeRecord 将数千条消息合并到一个流文件中,然后再写入 HDFS。