Member since
04-27-2022
18
Posts
3
Kudos Received
0
Solutions
09-08-2023
09:45 AM
It is with all data attempted. It's a dynamic process, where the flowfile contents are mapped by an earlier QueryRecord processor to match the column names of the underlying table. I have no access to the SQL, which is part of the problem, and this same process IS working against Postgres with no difference in the Avro file contents or destination table structure. The postgres processor is configured the same with the exception of the Database type and DBCP controller service. And the error implies that the SQL is being generated incorrectly - feels like something is being left out somewhere. Unfortunately, there does not seem to be a way to see the SQL NiFi is generating before sending to Oracle. I think the Oracle version on the other end is 19 - I know the JDBC driver is on the NiFi side. But that also has not changed, and this same processor is still working on our 1.15 instance. (I went to check the AVRO reader config - not much to it. It is just using the one embedded in the AVRO content.) And - for as much additional information as it provides (which isn't much), this is the complete bulletin. I do not have access to see if there was additional logging. PutDatabaseRecord[id=8e509290-6652-385d-83e1-8e4788ae4086] Failed to put Records to database for FlowFile[filename=file_crmanalyticsam_useram_userpvo-batch792591341-20230907_230017.csv]. Routing to failure.: java.sql.BatchUpdateException: ORA-00936: missing expression
... View more
09-07-2023
05:21 PM
I'm hoping someone might have a suggestion here. A PutDatabaseRecord processor which was working properly under 1.15 started generating java.sql.BatchUpdateException: ORA-00936: missing expression on a 1.18 cluster. I'm using the Oracle12+ database type and the incoming flowfile format is Avro - so there should be no Schema inference happening. It's strange, since that error usually indicates a structural problem with the SQL itself. So, I'm concerned that there is a defect in the 1.18 version of PutDatabaseRecord. But, maybe there is something I can change about the source data or in the properties of the processor which will workaround this issue? If anyone has seen something like this or has some suggestions I could try, I would appreciate it. Thanks.
... View more
Labels:
- Labels:
-
Apache NiFi
08-08-2023
12:01 PM
Yep! Had moved on to that after your response and written up a JIRA for my team to build the needed tool. Thanks again for the response. My plan is the below > Find all the processors which may have state, then check if each has state, and if so, clear it. Find processors of used types which can contain state: e.g., QueryDatabaseTableRecord For each, pull the state by the ID and check if it has any stored state if totalEntryCount of cluster or local state is non-zero If so, call the clear state endpoint Query URL: /nifi-api/flow/search-results?q=QueryDatabaseTableRecord Pull Processor State: /nifi-api/processors/41584e33-adc6-171d-0000-0000581caccb/state Clear Processor State: POST /nifi-api/processors/41584e33-adc6-171d-0000-0000581caccb/state/clear-requests
... View more
08-08-2023
09:47 AM
Thanks for the response. TL;DR: It's complicated. 😄 I don't think my operations team will be a fan of shutting things down and purging files and/or zookeeper nodes. But, this is good to know for when we have an important reason to purge state.
... View more
08-08-2023
08:54 AM
Sure. I had to make some extract it from a larger PG and make some adjustments due to key code being in a parameter. But the remainder of the parameters are really placeholders for your environment information. The main complication might be that I used a few external controller services that you will have to replace. But their names in the externalControllerServices JSON should help you replace them.
... View more
08-07-2023
08:40 AM
FWIW - I did set up a monitoring mechanism for bulletins. I have not really made a way to automatically associate the bulletins back to the flowfiles, but I have utilized the cluster-level Controller Services for this. Under Reporting Task Controller Services: DBCPConnectionPool for the database connection DatabaseRecordSink pointed at a table matching the internal BULLETINS data structure Under Reporting Tasks: QueryNiFiReportingTask which pulls from BULLETINS and structures into a record matching the table used by the above DatabaseRecordSink. The reporting task is set to run every 5 minutes, so that it captures each set of bulletins before it cycles out of the in-memory data structures. I then have other components reporting on records in that table for tracking by our other tools. (And the flowfile ID is part of the bulletins structure - so it might be linkable back to whatever is stuck in the upstream connection.
... View more
08-04-2023
03:09 PM
@apk132 I had something like this recently, but it was a result of a configuration error on the processor itself, and not anything to do with the flowfile. Are you able to post the contents of the bulletin from the Bulletin Board screen?
... View more
08-04-2023
03:06 PM
Good afternoon! In planning out how we reset an environment when we have a refresh of one of our source systems, I need to ensure that any stateful processors (like QueryDatabaseTableRecord) have their state cleared so that they pick up all new records. Is there a way to find all processors storing state? Or, even better, to just destroy the state of all processors on the NiFi instance? Thanks.
... View more
Labels:
- Labels:
-
Apache NiFi
-
Cloudera DataFlow (CDF)
11-02-2022
11:51 AM
Disappointing, but what I was starting to suspect after going through CM's console. Is there general guidance on including those types of files to the NiFi nodes?
... View more
10-31-2022
09:53 AM
Good morning,
I was hoping someone would know if there is a supported method for installing additional libraries onto the NiFi nodes from Cloudera Manager. For example, I need to include the Oracle JDBC driver JAR on each server so it can be referenced in the controller services.
I know I can load files onto the servers via server deployment tools, but I was hoping there was a way to deploy additional library files to the cluster via the manager tool as part of the configuration. (Especially as these files may need to be updated over time, and I would rather not run the scripts which impact the server at a lower level.)
Thanks.
... View more
Labels: