Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]

Support Questions

Find answers, ask questions, and share your expertise
Announcements
Share your experience with Cloudera on G2 and get a $25 Amazon Gift card.
Hi, I'm CLEO! Something exciting is coming to the Community. Stay Tuned!

JSON file with operation values ADD/MODIFY based on this I need to send JSON data to INSERT or UPDATE

avatar
Contributor

My file:

"ws:Operation": "ADD",
"ws:Supervisor_Name": {
"ws:PriorValue": "",
"content": "Dr. Leah Thaler"

 

In above example i need to send the content:Dr. Leah Thaler to insert 

My file:

"ws:Operation": "MODIFY",
"ws:Supervisor_Name": {
"ws:PriorValue": "",
"content": "Dr. Leah Thal"

In above example i need to send the content:Dr. Leah Thaler to update.

Database is Oracle - the flow: Getfile-> EvaluateJSONPath -> send the data to two tables using AttributesToJSON for flatten JSON -> ConvertJSONSQL to Putsql. 

 

Note: I dont want to write AVRO schema. So we build this flow 

2020-03-23 09_48_22-NiFi Flow.png

2 ACCEPTED SOLUTIONS

avatar
Super Guru

After you get all the attributes you want,  you check them with RouteOnAttribute.  In that proc click + and set update / inserts equal to matches you want.  You use regex in the value for each. For example insert  is ${operation.equals('add')}. After RouteOnAttribute is configured, drag update to the update query proc, and insert to the insert query proc.

View solution in original post

avatar
Contributor

Thanks @stevenmatison . worked perfectly.. 

View solution in original post

2 REPLIES 2

avatar
Super Guru

After you get all the attributes you want,  you check them with RouteOnAttribute.  In that proc click + and set update / inserts equal to matches you want.  You use regex in the value for each. For example insert  is ${operation.equals('add')}. After RouteOnAttribute is configured, drag update to the update query proc, and insert to the insert query proc.

avatar
Contributor

Thanks @stevenmatison . worked perfectly..