Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-1582

New processor to update attributes with state

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.2.0
    • None
    • None

    Description

      This idea was sparked by a thread on the user list and should allow basic data science:

      I expect that in the future I’ll need something a little more sophisticated but for now my problem is very simple:
      I want to be able to trigger an alert (only once) when an attribute in an incoming stream, for instance, goes over a predefined threshold. The Processor should then trigger (only once again) another trigger when the signal goes back to normal (below threshold). Basically a RouteByAttribute but with memory.

      Thanks
      Claudio

      ------------------------------------------------

      Hello Claudio,

      Your use-case actually could leverage a couple of recently added features to create a really cool open-source processor. The two key features that were added are State Management and the ability to reference processor specific variables in expression language. You can take a look at RouteText to see both in action.

      By utilizing both you can create a processor that is configured with multiple Expression language expressions. There would be dynamic properties which would accept expression language and then store the evaluated value via state management. Then there would be a routing property (that supports expression language) that could simply add an attribute to the flowfile with the evaluated value which would allow it to be used by flowing processors for routing.

      This would allow you to do your use-case where you store the value for the incoming stream and route differently once you go over a threshold. It could even allow more complex use-cases. One instance, I believe, would be possible is to have a running average and standard deviation and route data to different locations based on it's standard deviation.

      You can think of this like an UpdateAttribute with the ability to store and calculate variables using expression language.
      Joe

      Attachments

        Issue Links

          Activity

            People

              jpercivall Joe Percivall
              jpercivall Joe Percivall
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: