「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
ファーストステップ @ Windows。
インストール †
ダウンロードする。 †
- 以下からダウンロード(Windowsならzipファイル形式のもの)
- 最新の、nifi-toolkitではない方をダウンロード。
(nifi-toolkitは多分色々なツールが同梱されてる)
インストールする。 †
任意のパスに解凍すればイイらしい。とりあえず、Cドラ直下に解凍。
(JMeterっぽい。ZIP64の可能性があるので解凍ツールに注意)。
起動する。 †
binフォルダ以下の「run-nifi.bat」バッチを管理者実行。
(これもまたJMeterっぽい。設定ファイルなどは取り合えずスルー)。
- 必要に応じて、Java のランタイム (JRE)のインストールや、パス設定を行う。
- 必要に応じて、confフォルダ以下のnifi.propertiesでポート番号を変更する。
(私の環境で、Docker for windowsが8080を使用していてUnauthorizedでハマった。
故に、nifi.propertiesのnifi.web.http.portで、ポート番号を8081に変更。)
もっと簡単な利用 †
画面にアクセスする。 †
以下の辺りを理解しつつ、次へ進む。
Processorを追加する。 †
- Processorの追加により、データフローを作成を開始する。
- Processorについては、コチラを参照。
追加する。 †
- ヘッダのComponentToolBar?のProcessorアイコンを方眼紙風のキャンバスにD&D。
- 追加するProcessorを選択できるダイアログが表示される。
- Processorを選択して[Add]ボタンを押下(必要に応じて[Filter]可能)
- ここでは、ファースト・ステップにお似合いのProcessorを追加する。
- [GetFile? Processor]
- [LogAttributes? Processor]
設定する。 †
- Processorをダブルクリック(若しくは、右クリック -> configure)で設定を行う。
- [GetFile? Processor]の設定を、[Property]タブから行う。
- ポイント
- 太字のプロパティは必須のプロパティ
- 必須プロパティが構成されるまで、Processorは開始できない。
- 設定値
- Input Directory : ./data-in
- [LogAttributes? Processor]の設定を、[Settings]タブから行う。
- ポイント
末端のProcessorになるので、FlowFile?の処理が完了した場合、
データを削除することを考慮する必要がある。
- 設定値
- Automatically Terminate Relationships : checked to [success]
使い方を確認する。 †
Processorを右クリックし[View usage]を選択すると、Processorのヘルプが表示される。
Connectionで接続する。 †
- この状態で以下のようになっている。
問題がある場合は、warningマークが表示される。
- 接続が無いため、warningマークが表示される。
接続する †
Connectionで接続する場合、以下のように操作する。
設定する †
するとダイアログが表示されるので[Settings]タブから設定する。
- Connectionに名前を付ける
[Name] : hogehoge
- Dataの有効期限とQueueの設定
- [FlowFile? Expiration] : 既定値
- [Back Pressure Object Threshold] : 既定値
- [Back Pressure Data Size Threshold] : 既定値
- キューの優先順位の設定
1つ以上のPrioritizerを設定し、
1つ目のPrioritizerで優先順位が同じだった場合、
2つ目のPrioritizerで優先順位が再評価される。
- [Selected Prioritizers] :
- FirstInFirstOutPrioritizer?
- NewestFlowFileFirstPrioritizer?
- ここまでの設定で、Processorは停止状態になる。
Processorを起動しデータフローを実行する。 †
- ぞれぞれ、Processorを選択してOperatorの再生ボタンを押下する。
- すると、以下の状態になり、データフローを実行できる。
- この状態で、data-inフォルダにファイルを放り込むと確実に処理されていることを確認できるのだが、
LogAttribute? 1.6.0 の仕様が No description provided. のため、最後まで流れたのかどうかを全く確認できない。
- そこで急遽、PutFile?というProcessorを追加して、以下のように設定して動かしてみる。
- Processor
Directory : ./data-out
- Connection
Automatically Terminate Relationships : checked to [failure] and [success]
- すると、data-inフォルダに放り込んだファイルがdata-outフォルダに出力されることを確認できる。
分岐、分割・集約、変換・処理辺りの利用 †
ユース・ケースの検討 †
Processorを確認すると、以下のようなユース・ケースを評価しようと考えた。
# | データの取込 | 分割・集約 | 変換 | 分割・集約 | データの配信 |
| GetFile? | SplitText? | CompressContent? | MergeContent? | PutFile? |
ConvertCharacterSet? |
Processorを追加する。 †
追加する。 †
- GetFile?:既存の流用
- SplitText?:分岐
- CompressContent?変換
- ConvertCharacterSet?:変換
- MergeContent?:合流
- PutFile?:既存の流用
設定する。 †
使い方を確認する。 †
Connectionで接続する。 †
接続する †
設定する †
Processorを起動しデータフローを実行する。 †
参考 †