2016-07-17 13 views
0

一部のNiFiプロセッサでダイナミックアトリビュートが使用できない理由は何ですか?私は自分のワークフローの1つでFetchFileプロセッサを使用しており、最後のステップでそれを使用できるようにするためには、フロー全体を通していくつかのデータを渡す必要があります。しかし、FetchFileは、動的属性を許可しないことによって、FetchFileを破棄します。私はそれを行う別の方法があるのだろうか? NiFiは特定のプロセッサで動的属性を許可しないのはなぜですか?NiFi fetchFileプロセッサでダイナミックアトリビュートが使用できない

私の流れがExecuteScript

のようなものである - 私はマークできるように、いくつかのメタデータを送信したい>マーク・ワークフローを完全

- ファイル - > FetchFile-> SendtoS3を書く>カスタムプロセッサ - > EvaluateJSonワークフローは完了しました。私はそのデータを属性として渡していますが、FetchFileで破損しています。

+0

UpdateAttributeプロセッサを使用して任意の動的属性を追加しようとしましたか? – James

+0

私の財産はコネクションを流れるダイナミックなものなので、できませんでした。 –

答えて

3

プロセッサのユーザー定義プロパティとフローファイル属性の2つの概念があります。

ユーザー定義のプロパティを使用すると、プロセッサは、事前に定義できなかった内容の入力をユーザーから受け取ります。たとえば、JSONパスがユーザー定義のプロパティで指定されている場合はEvaluateJsonPath、すべてのユーザー定義のプロパティがQueryパラメータとしてSolrに渡された場合はPutSolrContentStreamにあります。

FlowFile属性は、各データとともに渡されるキーと値のペアのマップです。これらの属性は、通常、プロセッサがフローファイルを生成または変更したとき、またはUpdateAttributeなどのプロセッサを使用して操作できるときに作成されます。

各プロセッサは、ユーザー定義のプロパティとその使用方法を決定する必要があります。 UpdateAttributeは、ユーザー定義のプロパティが新しいキー/値のペアとして各フローファイルに追加されるプロセッサですが、すべてのプロセッサがそれを行うのは意味がありません。

+0

お返事ありがとうございます。私は、プロセッサが新しい属性を追加する必要があるかもしれないユースケースがあるかもしれないと考えていました。ファイルの一部のコンテンツ(フェッチファイルで取得)に基づいて新しい属性を追加するという要件があったとしたら、今のところそれを行う方法はありません。それとも? –

+0

UpdateAttributeプロセッサを使用して、カスタム属性をフローファイルに追加できます。その後、これらの属性を後で使用することができます。 – James

+0

あなたが扱っているファイルの種類に応じて、ExtractTextを使ってフローファイルの内容からテキストを抽出し、それを属性に持ち込むことができます。 –

関連する問題