ListFile 2025.10.2.19¶
バンドル¶
org.apache.nifi | nifi-standard-nar
説明¶
入力ディレクトリからファイルのリストを取得します。リストされた各ファイルについて、そのファイルを表す FlowFile を作成し、 FetchFile と組み合わせて取得できるようにします。このプロセッサーは、 'Input Directory Location' が 'Remote' にセットされている場合、クラスタ内のプライマリ・ノードのみで動作するように設計されています。プライマリ・ノードが変更された場合、新しいプライマリ・ノードはすべてのデータを複製することなく、前のノードが去った場所を引き継ぎます。入力ディレクトリの場所」が「ローカル」の場合、「実行」モードは何でもよく、同期は行われません。GetFile と異なり、このプロセッサーはローカルファイルシステムからデータを削除しません。
入力要件¶
FORBIDDEN
機密動的プロパティをサポート¶
false
プロパティ¶
プロパティ |
説明 |
|---|---|
ファイルフィルター |
指定された正規表現にマッチする名前のファイルのみがピックアップされます。 |
隠しファイルを無視 |
隠しファイルを無視するかどうかを示します。 |
インクルードファイル属性 |
ファイルの最終更新時刻や所有者などの情報を FlowFile 属性として含めるかどうか。使用されているファイルシステムによっては、この情報の収集にコストがかかるため、無効にする必要があります。これは特にリモートファイル共有に当てはまります。 |
入力ディレクトリ |
ファイルを取り出す入力ディレクトリ |
入力ディレクトリの場所 |
入力ディレクトリの場所を指定します。これは、状態をローカルに保存するか、クラスタ全体で保存するかを決定するために使用されます。 |
最大ファイル年齢 |
ファイルが引き出されるために必要な最大年齢。(最終更新日付に従って)この時間より古いファイルは無視されます。 |
最大ファイルサイズ |
プルされるファイルの最大サイズ |
最低ファイル年齢 |
ファイルが引き出されるために必要な最低年齢。(最終更新日付に従って)この期間より若いファイルは無視されます。 |
最小ファイルサイズ |
プルされるために必要なファイルの最小サイズ |
パスフィルター |
サブディレクトリの再帰を true にすると、 指定した正規表現にパスがマッチするサブディレクトリのみがスキャンされます。 |
サブディレクトリの再帰 |
ディレクトリのサブディレクトリのファイルをリストするかどうかを示します。 |
et-initial-listing-target |
初期リストの処理方法を指定します。「エンティティの追跡」戦略で使用されます。 |
et-node-identifier |
設定された値はキャッシュキーに追加され、追跡状態の範囲が LOCAL に設定されている場合に、リスト状態をクラスター全体ではなく NiFi ノードごとに追跡できるようになります。「エンティティの追跡」戦略で使用されます。 |
et-state-cache |
リストされたエンティティは指定されたキャッシュストレージに保存されるため、このプロセッサーは、NiFi 再起動時またはプライマリノードが変更された場合に、リストを再開できます。「エンティティの追跡」戦略では、直近の「追跡時間ウィンドウ」内にリストされているすべてのエンティティの追跡情報が必要です。多数のエンティティをサポートするために、この戦略では管理状態の代わりに DistributedMapCache を使用します。キャッシュキーの形式は「ListedEntities::{processorId}(::{nodeId})」です。ノードごとに列挙されたエンティティを追跡する場合は、状態を個別に管理するためにオプションの「::{nodeId}」部分が追加されます。例:クラスター全体のキャッシュキー =「ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b」、ノードごとのキャッシュキー =「ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3」保存されるキャッシュの内容はGzip圧縮された JSON 文字列です。キャッシュキーは、ターゲットリスティングの構成が変更されると削除されます。「エンティティの追跡」戦略で使用されます。 |
et-time-window |
このプロセッサーが、すでにリストされているエンティティを追跡する期間を指定します。「エンティティの追跡」戦略は、タイムスタンプが指定された時間枠内にあるエンティティを選ぶことができます。例えば、「30 minutes」に設定すると、このプロセッサーが実行されたときに、最近30分のタイムスタンプを持つすべてのエンティティがリスティングの対象となります。リストされたエンティティは「新規/更新」とみなされ、以下の条件のいずれかが満たされた場合にFlowFile が発行されます。1. 既にリストされているエンティティに存在しない、2. キャッシュされたエンティティよりもタイムスタンプが新しい、3. キャッシュされたエンティティとはサイズが異なる。キャッシュされたエンティティのタイムスタンプが指定された時間枠より古くなった場合、そのエンティティはキャッシュされた既にリストされているエンティティから削除されます。「エンティティの追跡」戦略で使用されます。 |
listing-strategy |
新規/更新エンティティの判定方法を指定します。詳しくは各戦略の説明をご覧ください。 |
max-listing-time |
1つのディレクトリのリストにかかる最大時間。「入力ディレクトリ」プロパティで指定されたディレクトリのリスト、またはサブディレクトリのリスト (「再帰」が true にセットされている場合) にこの時間を超える時間がかかる場合、この時間を超える各ディレクトリのリストに対して警告メッセージが生成されます。 |
max-operation-time |
1回のディスク操作にかかると予想される最大時間。ディスク操作にこの時間を超える時間がかかると、操作のたびに警告メッセージが表示されます。 |
max-performance-metrics |
Track Performance' プロパティが 'true' にセットされている場合、このプロパティは、パフォーマンスメトリクスを保持すべきファイルの最大数を示します。このプロパティの値を小さくするとヒープ使用率が低くなり、値を大きくするとディスクアクセス操作がどのように実行されているかをより正確に把握することができます。 |
record-writer |
リストの作成に使用するRecord Writerを指定します。指定しない場合は、リストされたエンティティごとに FlowFile が1つ作成されます。Record Writerを指定すると、個々の FlowFiles に属性を追加する代わりに、すべてのエンティティが単一の FlowFile に書き込まれます。 |
target-system-timestamp-precision |
ターゲットシステムでのタイムスタンプ精度を指定します。このプロセッサーは、エンティティのタイムスタンプを使用してリストを決定するため、正しいタイムスタンプ精度を使用することが重要です。 |
track-performance |
プロセッサーがディスクアクセス操作のパフォーマンスを追跡するかどうか。trueの場合、ディスクへのアクセスはすべて記録され、アクセスされたファイル、取得された情報、かかった時間などが記録されます。このログは、 DEBUG レベルで定期的に記録されます。データ量の上限は設定されますが、このオプションでもかなりの量のヒープを消費する可能性があります ('Maximum Number of Files to Track' プロパティによって制御されます) が、パフォーマンスが低下している場合のトラブルシューティングの目的には非常に便利です。 |
状態管理¶
スコープ |
説明 |
|---|---|
LOCAL |
ファイルのリストをパフォーマンスした後、最も新しいファイルのタイムスタンプが保存されます。これにより、次回 Processor を実行したときに、この日付以降に追加または変更されたファイルのみがリストされます。状態がローカル・スコープで保存されるかクラスタ・スコープで保存されるかは、 <Input Directory Location> プロパティの値によって決まります。 |
CLUSTER |
ファイルのリストをパフォーマンスした後、最も新しいファイルのタイムスタンプが保存されます。これにより、次回 Processor を実行したときに、この日付以降に追加または変更されたファイルのみがリストされます。状態がローカル・スコープで保存されるかクラスタ・スコープで保存されるかは、 <Input Directory Location> プロパティの値によって決まります。 |
リレーションシップ¶
名前 |
説明 |
|---|---|
success |
受信したすべての FlowFiles は成功にルーティングされます。 |
属性の書き込み¶
名前 |
説明 |
|---|---|
filename |
ファイルシステムから読み込まれたファイル名。 |
path |
パスは、入力ディレクトリプロパティと比較したファイルシステム上のファイルのディレクトリの相対パスにセットされます。例えば、入力ディレクトリが/tmpにセットされている場合、/tmpからピックアップされたファイルのパス属性は"/"に設定されます。Recurse Subdirectoriesプロパティがtrueにセットされ、ファイルが/tmp/abc/1/2/3からピックアップされる場合、パス属性は "abc/1/2/3/"にセットされます。 |
absolute.path |
absolute.pathには、ファイルシステム上のファイルのディレクトリの絶対パスがセットされます。例えば、Input Directoryプロパティが/tmpにセットされている場合、/tmpからピックアップされたファイルはパス属性が"/tmp/"にセットされます。Recurse Subdirectoriesプロパティがtrueにセットされ、ファイルが/tmp/abc/1/2/3からピックアップされる場合、パス属性は"/tmp/abc/1/2/3/"にセットされます。 |
file.owner |
ファイルシステムでファイルを所有するユーザー |
file.group |
ファイルシステムでファイルを所有するグループ |
file.size |
ファイルシステム内のファイルのバイト数 |
file.permissions |
ファイルシステム内のファイルのパーミッション。これはオーナーが3文字、グループが3文字、その他のユーザーが3文字という形式です。例えば rw-rw-r-- |
file.lastModifiedTime |
ファイルシステム内のファイルが最後に更新されたときのタイムスタンプを 'yyyy-MM-dd'T'HH:mm:ssZ' として返します。 |
file.lastAccessTime |
ファイルシステム内のファイルが最後にアクセスされた時のタイムスタンプを 'yyyy-MM-dd'T'HH:mm:ssZ' として返します。 |
file.creationTime |
ファイルシステム内のファイルが作成された時のタイムスタンプを 'yyyy-MM-dd'T'HH:mm:ssZ' とします。 |