I've run into a use case for adding EL support into the Attribute Name itself
in UpdateAttribute. Looking for thoughts on other approaches, pros/cons of
doing this.
I'm generically extracting data from a database. Right now I have ~30 tables,
but that number could be anything, just think big enough to be a pain to put
into RouteOnAttribute and handle individually. Each table has a varying number
of columns. In my destination system I have some trailing metadata columns in
the tables about when the data was loaded, what the FlowFile UUID was, etc... I
provide the values for these columns using UpdateAttribute and providing a
value. As part of my extraction code I've tacked on the column count as an
attribute so that I know my metadata columns are ${fieldcount} + 1, +2, +3,
etc...
Now my downstream processors are expecting a sql.args.##.value attribute for
loading the data. Unfortunately, the column number for these trailing columns
shifts from table to table. I'm experimenting with allowing UpdateAttribute to
evaluate EL, where the Attribute Name might be: "sql.args.${fieldcount}.value".
https://github.com/patricker/nifi/commit/3f640c20f70956e4ddbe5741c25a422b3ed90357
Thoughts?
Thanks,
Peter