Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NiFi: Merge an Attribute into the Flow-file's JSON Content (without overwriting the entire flowfile)

I have a flow that creates some new attributes / content. I want to take an attribute from the flow files, and add it into the JSON content of the file.

I can use AttributesToJSON, but that just overwrites the file content.

A sample of my flow is here:

enter image description here

The UpdateAttribute adds current time to the attribute list, and then the AttributestoJSON adds an attribute to the actual JSON, but it also overwrites the entire flow file content. I've tried to remedy this with MergeRecord, but I can't the two files to merge back together (using CurrentTime as a Correlation Attribute Name).

Is there a better to go about this? The MergeRecord just comes up with an error. (Also not sure how to configure the RecordReader/Writer, because I want to keep everything in JSON).

like image 572
papelr Avatar asked Nov 07 '18 21:11

papelr


1 Answers

Use UpdateRecord and add a property where the name is the field you want to update like "/currentTime" and the value is the expression language reference to the attribute like ${currentTime}, assuming you set currentTime in UpdateAttribute.

like image 151
Bryan Bende Avatar answered Oct 01 '22 23:10

Bryan Bende