何ができるか

  1. Attribute を生成、もしくは編集することができる。
  2. Attribute を保持し、再使用することができる。

どんな時に使うか

○Attribute の生成、編集

ぶっちゃけどこでも使う。
文字列操作から ifElse 文で複数候補から条件別に格納したりと割となんでもござれ。
小さなシステムじゃなきゃ大体使ってるんじゃ?あとエラー時のメッセージとか一旦 Attribute に格納したりで使ったりとか…。
下記 URL の専用語を用いて色々できる。
Apache NiFi Expression Language Guide

○Attribute の保持

NiFi というのは基本データフローで DB とか持たしてデータを保持させるようなシステムじゃ使わない、らしい。自分じゃうまく説明できない。
ただ例えば認証情報などを毎回取得しに行くのってなんかアレだよねって時に使う。というかうちはそれで使うかもってことで調査した。
とはいえど、一つのプロセッサが保持するもので、複数の UpdateAttribute で共有じゃないからぶっちゃけ使いづらい。

どう設定するか

○Attribute の設定、編集

割とそのまま。初期値の状態でプロパティタグ画面の右上、+マークをクリックすると Attribute 名(key) → その中身(value) を入力可能。Attribute 名はつけ直す場合は再度作り直す必要があるため注意。
Delete Attributes Expression っていう欄に Attribute 名を入れると削除することも可能。複数削除したいときはカンマ区切り。例:[hogehoge,test,higehige]
というかそもそも削除する機会がないと思う。ふと思ったが後述する保持側で使うものかも。

○Attribute の保持

Store State という欄を初期値から Store state locally に変更する必要がある。
この状態で前述のように Attribute を設定すると、そのプロセッサが処理を行った際、その時の値を保持してくれるようになる。それらはそのプロセッサを右クリックし、view state という項目をクリックすると見れる。何も保持していないともちろん何も表示されない。
また残りのプロパティである Stateful Variables Initial Value という欄は、初めての処理のときの初期値を表す。Attribute が複数あろうと全てその値が初期値に入る。

わからないこと

そんなにない。強いて言えば保持方法に関してはもう少し調査するともっと有用な使い方があるかもなー。

結局そこそこ詳しく書いたような…というかもう日和ってログじゃなくても良くね?とも思ったり。おやすみ。