QueryRecord 2025.5.31.15¶
Bundle¶
org.apache.nifi | nifi-standard-nar
Description¶
Évalue une ou plusieurs requêtes SQL par rapport au contenu d’un FlowFile. Le résultat de la requête SQL devient alors le contenu du FlowFile de sortie. Cela peut être utilisé, par exemple, pour un filtrage spécifique à des champs, une transformation ou un filtrage au niveau des lignes. Les colonnes peuvent être renommées, des calculs simples et des agrégations peuvent être effectués, etc. Le processeur est configuré avec un Controller Service Record Reader et un service Record Writer afin d’offrir une flexibilité dans les formats de données entrants et sortants. Le processeur doit être configuré avec au moins une propriété définie par l’utilisateur. Le nom de la propriété est la relation vers laquelle router les données, et la valeur de la propriété est une instruction SQL SELECT utilisée pour spécifier comment les données d’entrée doivent être transformées/filtrées. L’instruction SQL doit être conforme à la norme ANSI SQL et est gérée par Apache Calcite. Si la transformation échoue, le FlowFile d’origine est routé vers la relation “failure”. Sinon, les données sélectionnées seront routées vers la relation associée. Si le Record Writer choisit d’hériter du schéma à partir de l’enregistrement, il est important de noter que le schéma hérité proviendra du ResultSet, plutôt que l’enregistrement d’entrée. Cela permet à une seule instance du processeur QueryRecord d’avoir plusieurs requêtes, chacune renvoyant un ensemble différent de colonnes et d’agrégations. En revanche, le schéma dérivé n’aura pas de nom de schéma, il est donc important que le Record Writer configuré n’essaie pas d’écrire le nom du schéma en tant qu’attribut lorsqu’il hérite du schéma à partir du Record. Pour plus d’informations, consultez la documentation Utilisation du processeur.
Exigences en matière d’entrées¶
REQUIRED
Prend en charge les propriétés dynamiques sensibles¶
false
Propriétés¶
Propriété |
Description |
---|---|
dbf-default-precision |
Lorsqu’une valeur DECIMAL/NUMBER est écrite sous la forme d’un type logique Avro décimal, une précision spécifique indiquant le nombre de chiffres disponibles est exigée. En général, la précision est définie par la définition du type de données de la colonne ou par les moteurs de base de données par défaut. Toutefois, certains moteurs de base de données peuvent renvoyer une précision non définie (0). La précision décimale par défaut est utilisée pour écrire des nombres dont la précision n’est pas définie. |
dbf-default-scale |
Lorsqu’une valeur DECIMAL/NUMBER est écrite sous la forme d’un type logique Avro décimal, une échelle spécifique indiquant le nombre de chiffres décimaux disponibles est exigée. En général, l’échelle est définie par la définition du type de données de la colonne ou par les moteurs de base de données par défaut. Toutefois, lorsque la précision renvoyée est indéfinie (0), l’échelle peut également être incertaine avec certains moteurs de base de données. L’échelle décimale par défaut est utilisée lors de l’écriture de ces nombres non définis. Si une valeur comporte plus de décimales que l’échelle spécifiée, la valeur sera arrondie à l’unité supérieure, par exemple 1,53 devient 2 avec l’échelle 0, et 1,5 avec l’échelle 1. |
include-zero-record-flowfiles |
Lors de l’exécution de l’instruction SQL sur un FlowFile entrant, si le résultat ne contient aucune donnée, cette propriété spécifie si un FlowFile doit être envoyé ou non à la relation correspondante. |
record-reader |
Spécifie le Controller Service à utiliser pour analyser les données entrantes et déterminer le schéma des données |
record-writer |
Spécifie le Controller Service à utiliser pour écrire les résultats dans un FlowFile. |
Relations¶
Nom |
Description |
---|---|
failure |
Si un FlowFile échoue lors du traitement pour quelque raison que ce soit (par exemple, si l’instruction SQL contient des colonnes absentes des données d’entrée), le FlowFile d’origine sera routé vers cette relation. |
original |
Le FlowFile d’origine est routé vers cette relation. |
Écrit les attributs¶
Nom |
Description |
---|---|
mime.type |
Définit l’attribut mime.type sur le type MIME spécifié par le Record Writer |
record.count |
Le nombre d’enregistrements sélectionnés par la requête. |
QueryRecord.Route |
La relation vers laquelle le FlowFile a été routé |
Cas d’utilisation¶
Filtrez les enregistrements sur la base des valeurs des champs de l’enregistrement |
Keep only specific records |
Conserver uniquement des champs spécifiques dans un enregistrement, lorsque les noms des champs à conserver sont connus |
Routage des données orientées vers l’enregistrement en vue de leur traitement en fonction de leur contenu |