Member since
09-04-2019
62
Posts
17
Kudos Received
11
Solutions
My Accepted Solutions
| Title | Views | Posted |
|---|---|---|
| 1791 | 10-30-2023 06:50 AM | |
| 15942 | 02-27-2023 09:25 AM | |
| 3676 | 07-07-2022 09:17 AM | |
| 3049 | 01-26-2022 06:25 AM | |
| 4383 | 01-25-2022 06:19 AM |
07-07-2022
06:51 AM
I can only assume that at one point you upgraded to 1.16? If so you should: Do the below commands from within your databse_repository directory mv nifi-identity-providers.trace.db.migration_backup nifi-identity-providers.trace.db
mv nifi-identity-providers.mv.db.migration_backup nifi-identity-providers.mv.db
mv nifi-flow-audit.trace.db.migration_backup nifi-flow-audit.trace.db
mv nifi-flow-audit.mv.db.migration_backup nifi-flow-audit.mv.db And remove flow.json.gz in the same place you have your flow.xml.gz
... View more
02-05-2022
04:52 PM
Those parentheses on your search would be considered special characters ina. regular expression unless escaped. I can get this to work using this: Active: active \(running\)
... View more
01-26-2022
06:25 AM
Hello, Most likely because on your CSV Reader you have: Treat First Line as Header = false ( default ) Change that to true
... View more
01-25-2022
11:27 AM
1 Kudo
@zhangliang to accomplish that i would use UpdateRecord Since your data is csv and structured we can use record manipulation to accomplish this. First I would treat all your values as string and build an avro schema to use: {
"type":"record",
"name":"nifiRecord",
"namespace":"org.apache.nifi",
"fields":[
{"name":"test_a","type":["null","string"]},
{"name":"test_b","type":["null","string"]},
{"name":"test_c","type":["null","string"]},
{"name":"test_d","type":["null","string"]},
{"name":"test_e","type":["null","string"]}
]
} Then I would configure my UpdateRecord to use a CSV Reader and a CSV Writer I would configure the CSV Reader like this: Use schema text property Schema Text = Put your avro schema there Value Separator = | And the CSV Writer leave everything default except: Value Separator = | Finally the UpdateRecord processor will need 2 user fields. In this case we want to update the fields "test_c" and "test_d" And then we can use Record path manipulation and in particular for this use case the substringBefore function to only give us everything before the DOT "." Here is what you should configure: This will then take an input like this: test_a|test_b|test_c|test_d|test_e
a|b|3.0|4.0|5.0
a|b|3.0|4.0|5.0
a|b|3.0|4.0|5.0 and produce an output like this: test_a|test_b|test_c|test_d|test_e
a|b|3|4|5.0
a|b|3|4|5.0
a|b|3|4|5.0
... View more
01-25-2022
06:19 AM
1 Kudo
I wonder what java version you have on your Windows machine? NiFi supports java 8 and 11
... View more
01-24-2022
11:52 AM
1 Kudo
First confirm if the NiFi JVM is running search your logs for the word "UI is available" If it is then I would look at your systems firewall windows defender? If you do not see that log entry I would focus on why NiFi JVM is not coming up
... View more
01-24-2022
11:44 AM
Old post but for awareness: As reported here: UUID Logical type is now included under Apache Parquet 1.12 https://issues.apache.org/jira/browse/PARQUET-1827 Apache NiFi will use apache Parquet 1.12 starting from Apache NiFi 1.14
... View more
01-21-2022
09:46 AM
1 Kudo
Without knowing how the FTP directory is populated, you might have an issue with the ListFTP state and might consider changing its its Listing Strategy, However assuming that is no issue and you want to only perform an action based on any file with a naming structure like this: xxxx-xxxx-xxxx-xxxx-20220121110000-xxxx-xxxx.csv and only if it is older than two hours from "now" I would run the output of your ListFTP to an UpdateAttribute and add these 2 properties: property name fileTime value ${filename:getDelimitedField(5,'-'):trim():toDate('yyyyMMddHHmmss'):toNumber()} property name timeNow value ${now():toNumber():minus(7200000)} Then route that to a RouteOnAttribute and add a new property: property name value 2 hours old ${fileTime:le(${timeNow})} Then you can drag that connection to follow on processing and the unmatched connection to other processing or terminate it. Explanation: filelName ${filename:getDelimitedField(5,'-'):trim():toDate('yyyyMMddHHmmss'):toNumber()} This grabs the time out of your filename and converts it to a Date object so it can be converted to its epoch representation timeNow ${now():toNumber():minus(7200000)} Sets a value 2 hours ago from current time ${fileTime:le(${timeNow})} If attribute fileName is less than or equal to timeNow it means that it is 2 hours old.
... View more
01-20-2022
12:05 PM
1 Kudo
I understand the issue EvaluateXPath does not take in an attribute syntax and fails at validation since it is validating for a valid Xpath path. I wonder if there is a way to use QueryRecord instead.
... View more