UpdateAttribute doesn’t pull from a database, it uses static or dynamic attribute values and supports NiFi Expression Language. In your original message, you didn’t mention any database interaction, so I thought you were just trying to accomplish "I wanted to add some attributes to a FlowFile while not altering the contents of that FlowFile”, which is indeed what UpdateAttribute does.
If you need to retrieve those values from a database, as Joey mentions, the LookupService is the right tool. With your prior setup, the distributed map cache is as secure as the NiFi configuration — if using secured NiFi, the communication between that node and any other is over TLS, and within the node it’s a memory access. A big part of the NiFi philosophy is the same as the Unix philosophy — each tool should do one job very well, and to perform complicated tasks, chain those tools together. This helps with provenance reporting, usage reporting, debugging, flow development lifecycle, maintenance, etc. A processor which retrieves attributes from a database and updates the incoming flowfile with them is certainly useful in the use case you describe, but is not a generic pattern. There’s no intent to discourage custom development, and whatever makes your flow work is fine. Just explaining why you likely won’t see a solution like that in the NiFi bundled components. Andy LoPresto [email protected] [email protected] PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4 BACE 3C6E F65B 2F7D EF69 > On Jan 4, 2018, at 4:07 PM, Brett Ryan <[email protected]> wrote: > > Thanks Andy, how would update attribute be able to get the value from sql? > > Consider a flow where a piece of information needs to be obtained from a DB > but i do not want the contents of the current FF to be altered, using > ExecuteSQL anywhere prior would not be possible due to replacing the FF > contents. > > What I had was two seperate flows, one that updates an oauth key in a db > keeping it fresh, the main flow would then read the db just before an > invokehttp. > > I was originally using a distributed map cache but had concerns that it might > not be secure and was also advised the cache server has been known to go down. > >> On 5 Jan 2018, at 04:01, Joey Frazee <[email protected]> wrote: >> >> Andy, Brett, >> >> Taking a quick glance at the code it looks like it's enriching attributes >> from a database according to a query. >> >> If that's correct, there's a LookupAttribute processor that delegates >> lookups to a "LookupService" and adds attributes without altering content. >> There are a variety of these LookupServices included. I think what you >> implemented would make sense as a LookupService and then you could just >> configure the processor to use that. It could also be used with LookupRecord >> then too so there'd be a double payoff. >> >> -joey >> >>> On Jan 4, 2018, 8:44 AM -0800, Andy LoPresto <[email protected]>, wrote: >>> Hi Brett, >>> >>> It’s great that you found it easy to write a new processor for Apache NiFi. >>> It is probably an indicator that we need to improve >>> education/evangelism/documentation, however, that you did not find >>> UpdateAttribute [1], which should do exactly what you were looking for. >>> >>> [1] >>> https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.4.0/org.apache.nifi.processors.attributes.UpdateAttribute/index.html >>> >>> Andy LoPresto >>> [email protected] >>> [email protected] >>> PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4 BACE 3C6E F65B 2F7D EF69 >>> >>>> On Jan 4, 2018, at 7:03 AM, Brett Ryan <[email protected]> wrote: >>>> >>>> Hi all, having used NiFi for a couple days I wanted to add some attributes >>>> to a FlowFile while not altering the contents of that FlowFile. >>>> >>>> I had suggestions to use a script processor but that just sounded like a >>>> hack which could become a nuisance to replicate. >>>> >>>> Anyway, I figured I'd write a processor to do this, anyone interested you >>>> can find it here. >>>> >>>> https://github.com/brettryan/nifi-drunken-bundle >>>> >>>> Feel free to do with it what you please. >>>> >>>> I've published to maven central but it will take a day to appear in the >>>> search. >>>> >>>> <dependency> >>>> <groupId>com.drunkendev</groupId> >>>> <artifactId>nifi-drunken-nar</artifactId> >>>> <version>1.0.0</version> >>>> <type>nar</type> >>>> </dependency> >>>> <dependency> >>>> <groupId>com.drunkendev</groupId> >>>> <artifactId>nifi-drunken-processors</artifactId> >>>> <version>1.0.0</version> >>>> </dependency> >>>> <dependency> >>>> <groupId>com.drunkendev</groupId> >>>> <artifactId>nifi-drunken-bundle</artifactId> >>>> <version>1.0.0</version> >>>> <type>pom</type> >>>> </dependency> >>>> >>>
signature.asc
Description: Message signed with OpenPGP using GPGMail
