ListFile 2025.5.31.15

Bundle

org.apache.nifi | nifi-standard-nar

Description

Récupère une liste de fichiers dans le répertoire d’entrée. Pour chaque fichier répertorié, créez un FlowFile qui représente le fichier de manière à ce qu’il puisse être recherché en conjonction avec FetchFile. Ce processeur est conçu pour fonctionner uniquement sur le nœud principal d’un cluster lorsque l’emplacement du répertoire d’entrée est réglé sur « distant ». Si le nœud principal change, le nouveau nœud principal reprendra là où le nœud précédent s’est arrêté sans dupliquer toutes les données. Lorsque l’emplacement du répertoire d’entrée est « Local », le mode d’exécution peut être quelconque et la synchronisation n’a pas lieu. Contrairement à GetFile, ce processeur ne supprime aucune donnée du système de fichiers local.

Balises

file, filesystem, get, ingest, list, source

Exigences en matière d’entrées

FORBIDDEN

Prend en charge les propriétés dynamiques sensibles

false

Propriétés

Propriété

Description

Filtre du fichier

Seuls les fichiers dont le nom correspond à l’expression régulière donnée seront pris en compte

Ignorer les fichiers cachés

Indique si les fichiers cachés doivent être ignorés ou non

Inclure les attributs de fichier

Inclure ou non des informations telles que l’heure de la dernière modification du fichier et le propriétaire dans les attributs du FlowFile. En fonction du système de fichiers utilisé, la collecte de ces informations peut s’avérer coûteuse et doit donc être désactivée. C’est particulièrement vrai pour les fichiers distants partagés.

Répertoire d’entrée

Le répertoire d’entrée à partir duquel les fichiers doivent être extraits

Emplacement du répertoire d’entrée

Spécifie l’emplacement du répertoire d’entrée. Permet de déterminer si l’état doit être stocké localement ou dans le cluster.

Âge maximum du fichier

L’âge maximum d’un fichier pour qu’il puisse être extrait ; tout fichier plus ancien que cette durée (en fonction de la date de la dernière modification) sera ignoré

Taille maximale du fichier

Taille maximale d’un fichier pour qu’il puisse être extrait

Âge minimum du fichier

L’âge minimum qu’un fichier doit avoir pour être extrait ; tout fichier plus jeune que cette durée (en fonction de la date de la dernière modification) sera ignoré

Taille minimale du fichier

La taille minimale que doit avoir un fichier pour être extrait

Filtre du chemin

Si l’option Sous-répertoires récursifs est vraie, seuls les sous-répertoires dont le chemin correspond à l’expression régulière donnée seront analysés

Sous-répertoires récursifs

Indique s’il faut répertorier les fichiers des sous-répertoires du répertoire

et-initial-listing-target

Indiquez comment le listing initial doit être traité. Utilisé par la stratégie « Entités de suivi ».

et-node-identifier

La valeur configurée sera ajoutée à la clé du cache afin que l’état du listing puisse être suivi par nœud NiFi plutôt qu’à l’échelle du cluster lorsque le suivi de l’état est scopé sur LOCAL. Utilisé par la stratégie « Entités de suivi ».

et-state-cache

Les entités répertoriées sont stockées dans le stockage en cache spécifié afin que ce processeur puisse reprendre le listing lors du redémarrage de NiFi ou en cas de changement de nœud principal. la stratégie « Entités de suivi » requiert les informations de suivi de toutes les entités de la liste au cours de la dernière « fenêtre de suivi ». Pour prendre en charge un grand nombre d’entités, la stratégie utilise DistributedMapCache au lieu de l’état géré. Le format de la clé de cache est “ListedEntities::{processorId}(::{nodeId})”. S’il s’agit d’entités répertoriées par nœud, la partie facultative « ::{nodeId} » est ajoutée pour gérer l’état séparément. Par exemple, clé de cache à l’échelle du clustering = “ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b”, clé de cache par nœud = “ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3” Le contenu de cache stocké est une chaîne JSON compressée avec Gzip. La clé de cache sera supprimée lorsque la configuration du listing cible sera modifiée. Utilisé par la stratégie « Entités de suivi ».

et-time-window

Indiquez pendant combien de temps ce processeur doit suivre les entités déjà inscrites sur la liste. La stratégie « Suivi des entités » permet de sélectionner toute entité dont l’horodatage se situe à l’intérieur de la fenêtre temporelle spécifiée. Par exemple, si le paramètre est fixé à « 30 minutes », toute entité dont l’horodatage se situe dans les 30 dernières minutes sera la cible du listing lors de l’exécution de ce processeur. Une entité de la liste est considérée comme « nouvelle/mise à jour » et un FlowFile est émis si l’une des conditions suivantes est remplie : 1. n’existe pas dans les entités déjà répertoriées, 2. a un horodatage plus récent que celui de l’entité mise en cache, 3. a une taille différente de celle de l’entité mise en cache. Si l’horodatage d’une entité mise en cache devient plus ancien que la fenêtre temporelle spécifiée, cette entité sera retirée de la liste des entités déjà mises en cache. Utilisé par la stratégie « Entités de suivi ».

listing-strategy

Précisez comment déterminer les entités nouvelles/mises à jour. Voir les descriptions de chaque stratégie pour plus de détails.

max-listing-time

Durée maximale prévue pour répertorier un simple répertoire. Si le listing du répertoire spécifié par la propriété « Répertoire d’entrée » ou le listing de tout sous-répertoire (si « Récursif » a la valeur « true ») prend plus de temps, un bulletin d’avertissement sera généré pour chaque listing de répertoire qui dépasse ce temps.

max-operation-time

Durée maximale prévue pour une opération sur un disque. Si une opération de disque prend plus de temps, un bulletin d’avertissement sera généré pour chaque opération dépassant ce délai.

max-performance-metrics

Si la propriété Suivi des performances est réglée sur « true », elle indique le nombre maximum de fichiers dont les performances doivent être conservées. Une valeur plus petite pour cette propriété se traduira par une utilisation moindre du Heap, tandis qu’une valeur plus grande peut fournir des indications plus précises sur la manière dont les opérations d’accès au disque se déroulent

record-writer

Spécifie le Record Writer à utiliser pour créer le listing. Si vous ne le précisez pas, un FlowFile sera créé pour chaque entité inscrite sur la liste. Si le Record Writer est spécifié, toutes les entités seront écrites sur un seul FlowFile au lieu d’ajouter des attributs à des FlowFiles individuels.

target-system-timestamp-precision

Spécifiez la précision de l’horodatage dans le système cible. Étant donné que ce processeur utilise l’horodatage des entités pour décider lesquelles doivent être répertoriées, il est crucial d’utiliser la bonne précision d’horodatage.

track-performance

Indique si le processeur doit ou non suivre les performances des opérations d’accès au disque. Si « true » est défini, tous les accès au disque seront enregistrés, y compris le fichier auquel on accède, ainsi que l’information obtenue et la durée. Elle est ensuite connectée périodiquement à un niveau de journalisation DEBUG. Bien que la quantité de données soit plafonnée, cette option peut toujours consommer une quantité importante de Heap (contrôlée par la propriété Nombre maximal de fichiers à suivre), mais elle peut s’avérer très utile pour le dépannage en cas de dégradation des performances.

Gestion de l’État

Champs d’application

Description

CLUSTER

Après avoir effectué un listing de fichiers, l’horodatage du fichier le plus récent est enregistré. Cela permet au processeur de dresser uniquement la liste des fichiers qui ont été ajoutés ou modifiés après cette date lors de la prochaine exécution du processeur. L’enregistrement de l’état en local ou en cluster dépend de la valeur de la propriété <Emplacement du répertoire d’entrée>.

LOCAL

Après avoir effectué un listing de fichiers, l’horodatage du fichier le plus récent est enregistré. Cela permet au processeur de dresser uniquement la liste des fichiers qui ont été ajoutés ou modifiés après cette date lors de la prochaine exécution du processeur. L’enregistrement de l’état en local ou en cluster dépend de la valeur de la propriété <Emplacement du répertoire d’entrée>.

Relations

Nom

Description

success

Tous les FlowFiles reçus sont routés vers le succès

Écrit les attributs

Nom

Description

filename

Le nom du fichier qui a été lu à partir du système de fichiers.

path

Le chemin est défini comme le chemin relatif du répertoire du fichier sur le système de fichiers par rapport à la propriété Répertoire d’entrée. Par exemple, si le Répertoire d’entrée est défini sur /tmp, les fichiers extraits de /tmp auront l’attribut chemin défini sur « / ». Si la propriété Sous-répertoires récursifs est définie sur ‘true’ et qu’un fichier est récupéré dans /tmp/abc/1/2/3, l’attribut de chemin sera défini sur « abc/1/2/3/ ».

absolute.path

Le paramètre absolute.path est défini sur le chemin absolu du répertoire du fichier sur le système de fichiers. Par exemple, si la propriété Répertoire d’entrée est définie sur /tmp, les fichiers extraits de /tmp auront l’attribut chemin défini sur « /tmp/ ». Si la propriété Sous-répertoires récursifs est définie sur ‘true’ et qu’un fichier est récupéré dans /tmp/abc/1/2/3, l’attribut chemin sera défini sur « /tmp/abc/1/2/3/ ».

file.owner

L’utilisateur propriétaire du fichier dans le système de fichiers

file.group

Le groupe propriétaire du fichier dans le système de fichiers

file.size

Le nombre d’octets du fichier dans le système de fichiers

file.permissions

Les autorisations pour le fichier dans le système de fichiers. Le format est le suivant : 3 caractères pour le propriétaire, 3 pour le groupe et 3 pour les autres utilisateurs. Par exemple, rw-rw-r–

file.lastModifiedTime

L’horodatage de la dernière modification du fichier dans le système de fichiers au format « aaaa-MM-jj’T’HH:mm:ssZ »

file.lastAccessTime

L’horodatage du dernier accès au fichier dans le système de fichiers au format « aaaa-MM-jj’T’HH:mm:ssZ »

file.creationTime

L’horodatage de la création du fichier dans le système de fichiers au format « aaaa-MM-jj’T’HH:mm:ssZ »

Voir aussi :