Skip to main content

Properties File Lookup Augmentation of Data Flow in Apache NiFi

A really cool technologist contacted me on LinkedIn and asked an interesting question
Tim,
How do I read values from a properties file and use them in my flow. I want to update/inject an attribute with this value.
If you don't want to use the Variable Registry, but want to inject a value from a properties file how to do it. You could run some REST server and read it or does some file reading hack. But we have a great service to do this very easily!
In my UpdateAttribute (or in your regular attributes already), I have an attribute named, keytofind. This contains a lookup key such as an integer or a string key. We will find that value in the properties value and give you that in an attribute of your choosing.
We have a Controller Service to handle this for you. It reads from your specified properties file. Make sure Apache NiFi has permissions to that path and can read the file.

PropertiesFileLookupService
We lookup the key specified in the “keytofind”. It returns a value that you specify as an extra attribute, mine is “updatedvalue”.
This is my properties file:
  1. -rwxrwxrwx 1 tspann staff 67 Oct 4 09:15 lookup.properties
  2.  
  3. stuff1=value1
  4. stuff2=value2
  5. stuff3=value other
  6. tim=spann
  7. nifi=cool
In this example, we are using the LookupAttribute processor. You can also use the LookupRecord processor depending on your needs.
Resources: