ListFile 2025.5.31.15¶
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 |
Legen Sie fest, wie das erste Freigabeangebot behandelt werden soll. Wird von der Strategie „Tracking Entities“ verwendet. |
et-node-identifier |
Der konfigurierte Wert wird an den Cache-Schlüssel angehängt, sodass der Listing-Status pro NiFi-Knoten und nicht clusterweit verfolgt werden kann, wenn der Tracking-Status auf LOCAL skaliert ist. Wird von der Strategie „Tracking Entities“ verwendet. |
et-state-cache |
Freigegebene Entitäten werden im angegebenen Cache-Speicher gespeichert, sodass dieser Prozessor die Freigabe bei einem Neustart von NiFi oder bei einem Wechsel des primären Knotens wieder aufnehmen kann. „Tracking Entities“-Strategie erfordert Tracking-Informationen von allen aufgelisteten Entitäten innerhalb des letzten „Tracking Time Window“. Um eine große Anzahl von Entitäten zu unterstützen, verwendet die Strategie DistributedMapCache anstelle eines verwalteten Zustands. Das Format des Cache-Schlüssels ist „ListedEntities: :{processorId}(::{nodeId})“. Wenn es pro Knoten aufgelistete Entitäten verfolgt, dann wird der optionale Teil „::{nodeId}“ hinzugefügt, um den Status separat zu verwalten. Beispiel: Clusterweiter Cache-Schlüssel = „ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b“, Cache-Schlüssel pro Knoten = „ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3“ Der gespeicherte Cache-Inhalt ist eine Gzipped JSON-Zeichenkette. Der Cache-Schlüssel wird gelöscht, wenn die Konfiguration der Zielliste geändert wird. Wird von der Strategie „Tracking Entities“ verwendet. |
et-time-window |
Geben Sie an, wie lange dieser Prozessor bereits gelistete Entitäten verfolgen soll. Die Strategie „Tracking Entities“ kann jede Entität auswählen, deren Zeitstempel innerhalb des angegebenen Zeitfensters liegt. Wenn Sie z. B. „30 Minuten“ einstellen, wird jede Entität, deren Zeitstempel in den letzten 30 Minuten liegt, das Ziel des Freigabeangebots sein, wenn dieser Prozessor läuft. Ein gelistete Entität gilt als „neu/aktualisiert“ und ein FlowFile wird ausgegeben, wenn eine der folgenden Bedingungen erfüllt ist: 1. Sie ist nicht in den bereits gelisteten Entitäten vorhanden, 2. Sie hat einen neueren Zeitstempel als die zwischengespeicherte Entität, 3. Sie hat eine andere Größe als die zwischengespeicherte Entität. Wenn der Zeitstempel einer zwischengespeicherten Entität älter ist als das angegebene Zeitfenster, wird diese Entität aus den zwischengespeicherten, bereits gelisteten Entitäten entfernt. Wird von der Strategie „Tracking Entities“ 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 |
---|---|
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. |
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. |
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“ |