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.

Tags

file, filesystem, get, ingest, list, source

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“

Siehe auch: