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 |
Geben Sie an, wie das erstmalige Freigabeangebot behandelt werden soll. Wird von der „Entitäten verfolgen“-Strategie verwendet. |
et-node-identifier |
Der konfigurierte Wert wird an den Cacheschlüssel angehängt, sodass der Status des Freigabeangebots per NiFi-Knoten und nicht clusterweit verfolgt werden kann, wenn der Verfolgungsstatus auf LOCAL beschränkt ist. Wird von der „Entitäten verfolgen“-Strategie verwendet. |
et-state-cache |
Die aufgelisteten Entitäten werden im angegebenen Cachespeicher gespeichert, sodass dieser Prozessor das Freigabeangebot über den NiFi-Neustart hinweg oder im Falle einer Änderung des Primärknotens fortsetzen kann. Die Strategie „Entitäten verfolgen“ erfordert Verfolgungsinformationen zu allen aufgelisteten Entitäten innerhalb des letzten Zeitfensters zur Verfolgung. Um eine große Anzahl von Entitäten zu unterstützen, verwendet die Strategie DistributedMapCache anstelle von verwaltetem Status. Das Format des Cacheschlüssels ist ‚ListedEntities::{processorId}(::{nodeId})‘. Wenn die aufgelisteten Entitäten pro Knoten verfolgt werden, wird der optionale Teil ‚::{nodeId}‘ hinzugefügt, um den Status separat zu verwalten. Beispiel: Clusterweiter Cache-Schlüssel =‘ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b‘, pro Knoten-Cacheschlüssel =‘ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3‘ Der Inhalt des gespeicherten Cache ist eine Gzipped JSON-Zeichenfolge. Der Cacheschlüssel wird gelöscht, wenn die Konfiguration des Ziel-Freigabeangebots geändert wird. Wird von der „Entitäten verfolgen“-Strategie verwendet. |
et-time-window |
Geben Sie an, wie lange dieser Prozessor bereits aufgelistete Entitäten verfolgen soll. Die Strategie „Entitäten verfolgen“ kann jede Entität auswählen, deren Zeitstempel innerhalb des angegebenen Zeitfensters liegt. Werden z. B. „30 Minuten“ eingestellt, wird jede Entität, deren Zeitstempel in den letzten 30 Minuten liegt, zum Ziel des Freigabeangebots, wenn dieser Prozessor ausgeführt wird. Eine aufgelistete Entität gilt als „neu/aktualisiert“ und wird als FlowFile ausgegeben, wenn eine der folgenden Bedingungen erfüllt ist: 1. existiert nicht in den bereits aufgelisteten Entitäten, 2. hat einen neueren Zeitstempel als die zwischengespeicherte Entität, 3. hat eine andere Größe als die zwischengespeicherte Entität. Wenn der Zeitstempel einer zwischengespeicherten Entität älter wird als das angegebene Zeitfenster, wird diese Entität aus den zwischengespeicherten, bereits aufgelisteten Entitäten entfernt. Wird von der „Entitäten verfolgen“-Strategie verwendet. |
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“ |