ListFile 2025.10.2.19¶
Bundle¶
org.apache.nifi | nifi-standard-nar
Beschreibung¶
Ruft eine Liste der Dateien aus dem Eingabeverzeichnis ab. Für jede aufgelistete Datei wird ein FlowFile erstellt, das die Datei repräsentiert, sodass sie in Verbindung mit FetchFile abgerufen werden kann. Dieser Prozessor ist so konzipiert, dass er nur auf dem primären Knoten in einem Cluster ausgeführt wird, wenn „Input Directory Location“ auf „Remote“ gesetzt ist. Wenn sich der primäre Knoten ändert, macht der neue Primary Node dort weiter, wo der vorherige Knoten aufgehört hat, ohne alle Daten zu duplizieren. Wenn „Input Directory Location“ „Local“ ist, kann der „Execution“-Modus beliebig sein, und die Synchronisierung findet nicht statt. Im Gegensatz zu GetFile löscht dieser Prozessor keine Daten aus dem lokalen Dateisystem.
Eingabeanforderung¶
FORBIDDEN
Unterstützt sensible dynamische Eigenschaften¶
false
Eigenschaften¶
Eigenschaft |
Beschreibung |
|---|---|
File Filter |
Nur Dateien, deren Namen mit dem angegebenen regulären Ausdruck übereinstimmen, werden berücksichtigt. |
Ignore Hidden Files |
Gibt an, ob versteckte Dateien ignoriert werden sollen oder nicht |
Include File Attributes |
Ob Informationen wie die Last Modified Time und der Owner der Datei als FlowFile-Attribute aufgenommen werden sollen oder nicht. Je nach verwendetem Dateisystem kann das Sammeln dieser Informationen sehr aufwendig sein und sollte daher deaktiviert werden. Dies gilt insbesondere für Freigaben von Remote-Dateien. |
Input Directory |
Das Verzeichnis, aus dem Dateien abgerufen werden sollen |
Input Directory Location |
Gibt an, wo sich das Eingabeverzeichnis befindet. Dies wird verwendet, um zu bestimmen, ob der Status lokal oder clusterweit gespeichert werden soll. |
Maximum File Age |
Das maximale Alter, das eine Datei haben darf, um abgerufen zu werden; alle Dateien, die älter sind als dieser Zeitraum (gemäß dem Datum der letzten Änderung), werden ignoriert. |
Maximum File Size |
Die maximale Größe, die eine Datei haben darf, um abgerufen zu werden |
Minimum File Age |
Das Mindestalter, das eine Datei haben muss, um abgerufen zu werden; alle Dateien, die jünger sind als dieser Zeitraum (gemäß dem Datum der letzten Änderung), werden ignoriert. |
Minimum File Size |
Die Mindestgröße, die eine Datei haben muss, um abgerufen zu werden |
Path Filter |
Wenn Recurse Subdirectories „true“ ist, werden nur die Unterverzeichnisse durchsucht, deren Pfad mit dem angegebenen regulären Ausdruck übereinstimmt |
Recurse Subdirectories |
Gibt an, ob Dateien aus Unterverzeichnissen des Verzeichnisses aufgelistet werden sollen. |
et-initial-listing-target |
Specify how initial listing should be handled. Used by ‚Tracking Entities’strategy. |
et-node-identifier |
The configured value will be appended to the cache key so that listing state can be tracked per NiFi node rather than cluster wide when tracking state is scoped to LOCAL. Used by ‚Tracking Entities’strategy. |
et-state-cache |
Listed entities are stored in the specified cache storage so that this processor can resume listing across NiFi restart or in case of primary node change. ‚Tracking Entities’strategy require tracking information of all listed entities within the last ‚Tracking Time Window‘. To support large number of entities, the strategy uses DistributedMapCache instead of managed state. Cache key format is ‚ListedEntities::{processorId}(::{nodeId})‘. If it tracks per node listed entities, then the optional ‚::{nodeId}‘ part is added to manage state separately. E.g. cluster wide cache key =‘ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b‘, per node cache key =‘ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3‘ The stored cache content is Gzipped JSON string. The cache key will be deleted when target listing configuration is changed. Used by ‚Tracking Entities’strategy. |
et-time-window |
Specify how long this processor should track already-listed entities. ‚Tracking Entities’strategy can pick any entity whose timestamp is inside the specified time window. For example, if set to ‚30 minutes‘, any entity having timestamp in recent 30 minutes will be the listing target when this processor runs. A listed entity is considered ‚new/updated‘ and a FlowFile is emitted if one of following condition meets: 1. does not exist in the already-listed entities, 2. has newer timestamp than the cached entity, 3. has different size than the cached entity. If a cached entity ‚s timestamp becomes older than specified time window, that entity will be removed from the cached already-listed entities. Used by’Tracking Entities’strategy. |
listing-strategy |
Legen Sie fest, wie neue/aktualisierte Entitäten ermittelt werden sollen. Weitere Informationen finden Sie in den Beschreibungen der einzelnen Strategien. |
max-listing-time |
Die maximale Zeit, die für die Auflistung eines einzelnen Verzeichnisses voraussichtlich benötigt wird. Wenn das Freigabeangebot für Verzeichnisses, das durch die Eigenschaft „Input Directory“ (Eingabeverzeichnis) angegeben ist, oder Freigabeangebot eines Unterverzeichnisses (wenn „Recurse“ auf „true“ gesetzt ist) länger als diese Zeit dauert, wird für jedes Verzeichnis, das diese Zeit überschreitet, eine Warnmeldung generiert. |
max-operation-time |
Die maximale Zeit, die eine einzelne Festplattenoperation voraussichtlich dauern wird. Wenn eine Festplattenoperation länger als diese Zeitspanne dauert, wird für jede Operation, die diese Zeitspanne überschreitet, eine Warnung ausgegeben. |
max-performance-metrics |
Wenn die Eigenschaft „Track Performance“ auf „true“ gesetzt ist, gibt diese Eigenschaft die maximale Anzahl von Dateien an, deren Leistungskennzahlen beibehalten werden sollen. Ein kleinerer Wert für diese Eigenschaft führt zu einer geringeren Auslastung des Heaps, während ein größerer Wert einen genaueren Einblick in die Leistung der Festplattenzugriffsoperationen ermöglicht |
record-writer |
Gibt den Record Writer an, der zum Erstellen der Liste verwendet werden soll. Wenn nicht angegeben, wird für jede aufgelistete Entität ein FlowFile erstellt. Wenn der Record Writer angegeben ist, werden alle Entitäten in ein einziges FlowFile geschrieben, anstatt Attribute zu einzelnen FlowFiles hinzuzufügen. |
target-system-timestamp-precision |
Geben Sie die Zeitstempelgenauigkeit auf dem Zielsystem an. Da dieser Prozessor den Zeitstempel von Entitäten verwendet, um zu entscheiden, welche aufgelistet werden sollen, ist es wichtig, die richtige Zeitstempelgenauigkeit zu verwenden. |
track-performance |
Ob der Prozessor die Leistung von Festplattenzugriffen verfolgen soll oder nicht. Bei „true“ werden alle Zugriffe auf die Festplatte aufgezeichnet, einschließlich der Datei, auf die zugegriffen wird, der Informationen, die abgerufen werden, und der Dauer des Zugriffs. Dies wird dann in regelmäßigen Abständen auf der DEBUG-Ebene protokolliert. Obwohl die Datenmenge begrenzt ist, kann diese Option dennoch eine erhebliche Menge an Heap-Speicher verbrauchen (gesteuert durch die Eigenschaft „Maximum Number of Files to Track“). Sie kann jedoch sehr nützlich für die Fehlerbehebung sein, wenn die Leistung beeinträchtigt ist. |
Statusmanagement¶
Bereiche |
Beschreibung |
|---|---|
LOCAL |
Nach dem Auflisten der Dateien wird der Zeitstempel der neuesten Datei gespeichert. Dadurch kann der Prozessor bei der nächsten Ausführung nur Dateien auflisten, die nach diesem Datum hinzugefügt oder geändert wurden. Ob der Status mit einem lokalen oder einem Cluster-Bereich gespeichert wird, hängt vom Wert der Eigenschaft <Input Directory Location> ab. |
CLUSTER |
Nach dem Auflisten der Dateien wird der Zeitstempel der neuesten Datei gespeichert. Dadurch kann der Prozessor bei der nächsten Ausführung nur Dateien auflisten, die nach diesem Datum hinzugefügt oder geändert wurden. Ob der Status mit einem lokalen oder einem Cluster-Bereich gespeichert wird, hängt vom Wert der Eigenschaft <Input Directory Location> ab. |
Beziehungen¶
Name |
Beschreibung |
|---|---|
success |
Alle FlowFiles, die empfangen werden, werden an die Beziehung „success“ weitergeleitet. |
Schreibt Attribute¶
Name |
Beschreibung |
|---|---|
filename |
Der Name der Datei, die aus dem Dateisystem gelesen wurde. |
Pfad |
Der Pfad wird auf den relativen Pfad des Dateiverzeichnisses im Dateisystem gesetzt, bezogen auf die Eigenschaft „Input Directory“. Wenn als Eingabeverzeichnis beispielsweise /tmp eingestellt ist, wird das Pfadattribut für Dateien, die aus /tmp geholt werden, auf „/“ gesetzt. Wenn die Eigenschaft Recurse Subdirectories auf „true“ gesetzt ist und eine Datei aus /tmp/abc/1/2/3 abgeholt wird, dann wird das Pfadattribut auf „abc/1/2/3/“ gesetzt. |
absolute.path |
Der „absolute.path“ wird auf den absoluten Pfad des Verzeichnisses der Datei im Dateisystem gesetzt. Wenn beispielsweise die Input Directory auf /tmp eingestellt ist, wird das Pfadattribut für Dateien, die aus /tmp abgerufen werden, auf „/tmp/“ gesetzt. Wenn die Eigenschaft „Recurse Subdirectories“ auf „true“ gesetzt ist und eine Datei aus /tmp/abc/1/2/3 abgeholt wird, dann wird das Pfadattribut auf „/tmp/abc/1/2/3/“ gesetzt. |
file.owner |
Der Benutzer, dem die Datei im Dateisystem gehört |
file.group |
Die Gruppe, der die Datei im Dateisystem gehört |
file.size |
Die Anzahl der Bytes in der Datei im Dateisystem |
file.permissions |
Die Berechtigungen für die Datei im Dateisystem. Dies wird als 3 Zeichen für den Eigentümer, 3 für die Gruppe und 3 für andere Benutzer formatiert. Zum Beispiel rw-rw-r– |
file.lastModifiedTime |
Der Zeitstempel, wann die Datei im Dateisystem zuletzt geändert wurde als „yyyy-MM-dd’T’HH: mm:ssZ“ |
file.lastAccessTime |
Der Zeitstempel des letzten Zugriffs auf die Datei im Dateisystem als „yyyy-MM-dd’T’HH:mm:ssZ“ |
file.creationTime |
Der Zeitstempel, wann die Datei im Dateisystem erstellt wurde als „yyyy-MM-dd’T’HH:mm:ssZ“ |