7

MergeContent プロセッサを使用してディスクにファイルを書き込もうとしていますが、ファイル サイズが 1 行から 806 行まで大きく異なります。Apache NIFi MergeContentプロセッサで対処されているように改行区切り記号を見つけようとして、このプロセスを何度も繰り返しました-区切り記号を改行として設定すると、本当にランダムなサイズのファイルが得られました。

次のロジックに準拠するには、どのパラメーターを設定する必要がありますか?

  1. 単一のビンを確立する
  2. すべてのフローファイルをビンにルーティングします
  3. len(bin)>X またはビンの年齢が Max Bin Age より大きい場合、ビンを解放します。

完全に文書化するために、現在、次の属性を定義しています。 コンテンツ プロセッサの設定をマージする コンテンツ プロセッサの設定をマージする

ご覧のとおり、 https://github.com/apache/nifi/blob/31fba6b3332978ca2f6a1d693f6053d719fb9daa/nifi-nar-bundles/nifi-standard-bundleの構文に従って、「Max Bin Age」を「10 秒」に設定しました。 /nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java#L219 (この値の例を見つけることができた唯一の場所です。ドキュメントは不完全なようですこのパラメーターで)

「エントリの最大数」を 5000 に、「ビンの最大数」を 1 に設定しました。

上記のロジックに従ってレコードを集計するにはどうすればよいですか? また、この時点に到達するすべてのドキュメントで同一であることが保証されている属性を持つ「相関属性名」パラメーターを使用してみましたが、同じことがわかりました

4

2 に答える 2

7

ここで最も重要なことは、実際にはエントリの最小数です。何が起こっているかというと、ビニング アルゴリズムが項目数に関して寛大なアプローチを取っているということです。

特定のロジックについては、物事をそのままにし、次のようにします。

  • エントリの最小数を 5000 に設定
  • 必要に応じて、エントリの最大数を増やします。構成されたままにしておくと、経過時間の間隔がなくなった期間を除いて、正確に 5000 エントリのビンが生成されます。

以下は上記の構成のイメージで、最小ビン サイズと最大ビン サイズは両方とも 5000 で、一度に 1 つのビンのみが処理されます。この場合、ちょうど 20000 個のファイルが 4 つにマージされていることがわかります。

5000 の最小および最大ビン サイズのサンプル実行

于 2016-01-23T01:38:46.530 に答える