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.

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

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“

Siehe auch: