Support Questions

Find answers, ask questions, and share your expertise
Announcements
Check out our newest addition to the community, the Cloudera Data Analytics (CDA) group hub.

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

Explorer

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

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

Explorer

Thanks @stevenmatison . worked perfectly.. 

View solution in original post

2 REPLIES 2

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.

Explorer

Thanks @stevenmatison . worked perfectly.. 

Take a Tour of the Community
Don't have an account?
Your experience may be limited. Sign in to explore more.