0

新しいアイテムで常に更新される Json ファイルがあります。Nifi を使用して、この 1 つの Json ファイルからコンテンツをライブ抽出し、たとえば CSV にできる出力ファイルを作成して、それを Excel で分析できるようにするフローを作成したいと考えています。私は Nifi を初めて使用するので、このイベントのプロセス フローを提案してもらえますか? 私を始めさせるものは何でも役に立ちます。

4

1 に答える 1

3

このフローで実行する操作は多数ありますが、それぞれに取り組むためのいくつかのアプローチを提供できます。

  • 更新された JSON ファイルを取得する: ファイルを継続的に取得するには (ファイルが変更されている場合)、FetchFile プロパティの "Completion Strategy" を "None" に設定して、FetchFile プロセッサに接続された ListFile プロセッサを使用できます。これにより、JSON ファイルがファイル システムに保持されます。JSON ファイルが継続的に再生成される場合は、戦略として「移動」または「削除」を使用できます。

  • JSON 値の抽出 (変更時にファイルのコンテンツが置き換えられる場合): 探している値が同じ場所 (つまり、常に同じ JSONPath 式) にある場合は、EvaluateJsonPath を使用して、値を属性に。(CSV に変換するために) 値をコンテンツに戻すには、ReplaceText (式言語を使用) を使用して属性をコンテンツに戻すことができます。

  • JSON 値の抽出 (新しいアイテムがドキュメントに挿入された場合): アイテムが配列の一部である場合、SplitJson を使用して、ドキュメント内の各要素のフロー ファイルを生成できます。すでに見た要素を無視する可能性が高いため、これにはより複雑な処理が必要になります。ReplaceText (上記参照) を使用して特定の値をコンテンツに配置し、Put/FetchDistributedMapCache を使用して、配列要素が既に処理されているかどうかを確認できます。

  • 出力 CSV: CSV フィールドとして必要な属性を含むフロー ファイルごとに、ReplaceText を使用して CSV の行を生成できます。その後、MergeContent を使用して完全な CSV ファイルを作成できます。これにはヘッダーがないことに注意してください。最後の ReplaceText を使用してヘッダー行を挿入し、その後に受信コンテンツを挿入できます。次に、PutFile は CSV ファイルをディスクに書き込みます。

于 2016-03-16T17:32:57.643 に答える