CSVReader¶
Description¶
Analyse les données au format CSV et renvoie chaque ligne du fichier CSV sous la forme d’un enregistrement distinct. Ce lecteur permet de déduire un schéma sur la base de la première ligne du site CSV, si une ligne d’en-tête est présente, ou de fournir un schéma explicite pour l’interprétation des valeurs. Pour plus de documentation, voir l’utilisation du Controller Service.
Propriétés¶
Dans la liste ci-dessous, les propriétés requises sont signalées par un astérisque (*). Les autres propriétés sont considérées comme facultatives. La table indique également les valeurs par défaut et précise si une propriété prend en charge le langage d’expression NiFi.
Nom d’affichage |
Nom d’API |
Valeur par défaut |
Valeurs autorisées |
Description |
---|---|---|---|---|
Format CSV * |
Format CSV |
custom |
|
Spécifie le format des données CSV ou précise si un formatage personnalisé doit être utilisé. |
Marqueur de commentaire |
Marqueur de commentaire |
Caractère utilisé pour indiquer le début d’un commentaire. Toute ligne commençant par ce commentaire sera ignorée. |
||
Format de date |
Format de date |
Spécifie le format à utiliser lors de la lecture/écriture des champs de date. S’ils ne sont pas spécifiés, les champs Date seront considérés comme étant le nombre de millisecondes écoulées depuis l’époque (minuit, 1er janvier 1970 GMT). Si elle est spécifiée, la valeur doit correspondre au format Java java.time.format.DateTimeFormatter (par exemple, jj/MM/aaaa pour un mois à deux chiffres, suivi d’un jour à deux chiffres, suivi d’une année à quatre chiffres, tous séparés par des caractères “/”, comme dans 01/01/2017). |
||
Caractère d’échappement * |
Caractère d’échappement |
Le caractère qui est utilisé pour les caractères d’échappement qui auraient autrement une signification spécifique pour l’analyseur CSV. Si la propriété a été spécifiée via la langue d’expression mais que l’expression est évaluée à un caractère d’échappement non valide à l’exécution, elle sera ignorée et le caractère d’échappement par défaut sera utilisé. Le paramètre « chaîne vide » signifie qu’aucun caractère d’échappement ne doit être utilisé. |
||
Chaîne null |
Chaîne null |
Spécifie une chaîne qui, si elle est présente en tant que valeur dans CSV, doit être considérée comme un champ null au lieu d’utiliser la valeur littérale. |
||
Caractère guillemet * |
Caractère guillemet |
« |
Le caractère utilisé pour mettre les valeurs entre guillemets afin d’éviter l’utilisation de caractères d’échappement. Si la propriété a été spécifiée via la langue d’expression mais que l’expression est évaluée à un caractère de citation invalide à l’environnement d’exécution, elle sera ignorée et le caractère de citation par défaut sera utilisé. |
|
Séparateur d’enregistrements * |
Séparateur d’enregistrements |
n |
Spécifie les caractères à utiliser pour séparer les enregistrements CSV |
|
Traiter la première ligne comme un en-tête * |
Sauter la ligne d’en-tête |
false |
|
Indique si la première ligne de CSV doit être considérée comme un en-tête ou comme un enregistrement. Si la stratégie d’accès au schéma indique que les colonnes doivent être définies dans l’en-tête, cette propriété sera ignorée, car l’en-tête doit toujours être présent et ne sera pas traité comme un enregistrement. Dans le cas contraire, si true, la première ligne des données CSV ne sera pas traitée comme un enregistrement et si false, la première ligne sera interprétée comme un enregistrement. |
Format de l’heure |
Format de l’heure |
Spécifie le format à utiliser lors de la lecture/écriture des champs Time. S’ils ne sont pas spécifiés, les champs Time seront considérés comme étant le nombre de millisecondes depuis l’époque (minuit, 1er janvier 1970 GMT). Si elle est spécifiée, la valeur doit correspondre au format Java java.time.format.DateTimeFormatter (par exemple, HH:mm:ss pour une heure à deux chiffres au format 24 heures, suivie d’une minute à deux chiffres, suivie d’une seconde à deux chiffres, le tout séparé par des caractères :, comme dans 18:04:15). |
||
Timestamp Format |
Timestamp Format |
Spécifie le format à utiliser lors de la lecture/écriture des champs horodatage. S’ils ne sont pas spécifiés, les champs d’horodatage seront considérés comme étant le nombre de millisecondes depuis l’époque (minuit, 1er janvier 1970 GMT). Si elle est spécifiée, la valeur doit correspondre au format Java java.time.format.DateTimeFormatter (par exemple, jj/MM/aaaa HH:mm:ss pour un mois à deux chiffres, suivi d’un jour à deux chiffres, suivi d’une année à quatre chiffres, tous séparés par des caractères / ; puis suivi d’une heure à deux chiffres au format 24 heures, suivie d’une minute à deux chiffres, suivie d’une seconde à deux chiffres, tous séparés par des caractères :, comme dans 01/01/2017 18:04:15). |
||
Champs de rognage * |
Champs de rognage |
true |
|
Suppression ou non des espaces blancs au début et à la fin des champs |
Rognage guillemet double * |
Rognage Guillemet double |
true |
|
Si les guillemets doubles de début et de fin doivent être rognés ou non. Par exemple : avec le paramètre trim, la chaîne test sera interprétée comme test, sans le paramètre trim, elle sera interprétée comme test. Si le paramètre est false, cela signifie que la conformité avec RFC-4180 est totale. La valeur par défaut est true, avec rognage. |
Séparateur de valeurs * |
Séparateur de valeurs |
, |
Caractère utilisé pour séparer les valeurs/champs dans un enregistrement CSV. Si la propriété a été spécifiée via la langue d’expression mais que l’expression est évaluée à un séparateur de valeur invalide à l’environnement d’exécution, elle sera ignorée et le séparateur de valeur par défaut sera utilisé. |
|
Analyseur CSV * |
csv-reader-csv-parser |
commons-csv |
|
Spécifie l’analyseur syntaxique à utiliser pour lire les enregistrements CSV. NOTE : différents analyseurs peuvent prendre en charge différents sous-ensembles de fonctionnalités et peuvent également présenter différents niveaux de performance. |
Autoriser les noms d’en-tête en double |
csvutils-allow-duplicate-header-names |
true |
|
Si les noms d’en-têtes en double sont autorisés. Les noms d’en-têtes sont sensibles à la casse, par exemple name et Name sont traités comme des champs distincts. Le traitement des noms d’en-têtes en double est spécifique à l’analyseur CSV (le cas échéant) :* Apache Commons CSV - les en-têtes dupliqués entraîneront un déplacement des données de la colonne vers la droite, avec la création de nouveaux champs pour unknown_field_index_X, où X est le numéro d’index de la colonne CSV* Jackson CSV - les en-têtes dupliqués seront dédupliqués, la valeur du champ étant celle de la colonne CSV dupliquée la plus à droite* FastCSV - les en-têtes dupliqués seront dédupliqués, la valeur du champ étant celle de la colonne CSV dupliquée la plus à gauche |
Jeu de caractères * |
csvutils-character-set |
UTF-8 |
Le codage des caractères utilisé pour encoder/décoder le fichier CSV |
|
Ignorer les noms des colonnes de l’en-tête CSV |
ignore-csv-header |
false |
|
Si la première ligne d’un CSV est un en-tête et que le schéma configuré ne correspond pas aux champs nommés dans la ligne d’en-tête, cette option détermine la manière dont le lecteur interprétera les champs. Si cette propriété est true, les noms des champs mappés à chaque colonne sont déterminés uniquement par le schéma configuré et tous les champs ne figurant pas dans le schéma sont ignorés. Si cette propriété est false, les noms des champs figurant dans l’en-tête de CSV seront utilisés comme noms des champs. |
Stratégie d’accès au schéma * |
schema-access-strategy |
infer-schema |
|
Indique comment obtenir le schéma à utiliser pour interpréter les données. |
Branche du schéma |
schema-branch |
Spécifie le nom de la branche à utiliser lors de la recherche du schéma dans la propriété Schema Registry. Si le registre de schémas choisi ne prend pas en charge la ramification, cette valeur sera ignorée. |
||
Nom de schéma |
schema-name |
${schema.name} |
Spécifie le nom du schéma à rechercher dans la propriété Schema Registry |
|
Lecteur de référence de schéma * |
schema-reference-reader |
Mise en œuvre du service responsable de la lecture des attributs ou du contenu de FlowFile pour déterminer l’identifiant de référence du schéma |
||
Registre des schémas |
schema-registry |
Spécifie le Controller Service à utiliser pour le registre des schémas |
||
Texte du schéma |
schema-text |
${avro.schema} |
Le texte d’un schéma formaté par Avro |
|
Version du schéma |
schema-version |
Spécifie la version du schéma à rechercher dans le registre des schémas. Si elle n’est pas spécifiée, c’est la dernière version du schéma qui sera récupérée. |
Gestion de l’État¶
Ce composant ne stocke pas d’état.
Restreint¶
Cette composante n’est pas limitée.
Considérations relatives aux ressources du système¶
Ce composant ne précise pas les ressources du système à prendre en compte.