2016-12-19 3 views
1

私はかなり大きなフローを持っています。これはcsvをとり、最終的にはavro、jsonを介してSQLステートメントに変換します。 5GBのファイルの場合、flowfile_repo(処理中)は最大24 GB、content_repoは18 GBになりました。NiFi-1.0 - content_repo&flowfile_repo

  • content_repo最大18ギガバイト
  • flowfile_repo最大26ギガバイト

は、私はN個のファイルを処理する必要がありますどのくらいのスペースを予測する方法はありますか? なぜそんなに多くのスペースが必要ですか?

答えて

3

フローファイルレポは、デフォルトで2分ごとにチェックポイントが設定され、すべてのフローファイルの状態とすべてのフローファイルの属性が保存されます。したがって、実際には、フローファイルがいくつ通過されているか、いくつの属性が変更されているか、フローファイルごとにいくつの属性が書き込まれているかによって異なります。

コンテンツレポはコンテンツクレームを格納しており、各コンテンツクレームは1つ以上のフローファイルの内容を含んでいます。定期的に実行されるクリーンアップスレッドがあり、コンテンツの要求をクリーンアップできるかどうかを判断します。これは、アーカイブを有効にしているかどうかに基づいています。無効にすると、アクティブなフローファイルがその要求のコンテンツを参照していないときに、コンテンツ要求をクリーンアップすることができます。

フローファイルの内容もコピーオンライトパターンに従います。つまり、内容が不変であり、プロセッサが内容を変更したときに実際に新しいコピーを書き込んでいることを意味します。したがって、5GBのフローファイルがあり、それがReplaceTextのようなコンテンツを変更したプロセッサを通過した場合、コンテンツリポジトリに別の5GBが書き込まれ、アーカイブに関する上記のロジックに基づいてオリジナルのものが削除されますフローファイルはそのコンテンツを参照します。

あなたはより多くの情報に興味がある場合は、このすべては、ここでどのように機能するかについての深さにドキュメントがある:

https://nifi.apache.org/docs/nifi-docs/html/nifi-in-depth.html