UpdateDatabaseTable 2025.5.31.15

Bundle

org.apache.nifi | nifi-standard-nar

Description

Ce processeur utilise une connexion JDBC et des enregistrements entrants pour générer toutes les modifications des tables de la base de données nécessaires à la prise en charge des enregistrements entrants. Il attend une structure d’enregistrement “plate”, c’est-à-dire qu’aucun des champs de niveau supérieur ne comporte de champs imbriqués destinés à devenir eux-mêmes des colonnes.

Balises

alter, database, jdbc, metadata, table, update

Exigences en matière d’entrées

REQUIRED

Prend en charge les propriétés dynamiques sensibles

false

Propriétés

Propriété

Description

Column Name Translation Pattern

Le nom de la colonne sera normalisé à l’aide de l’expression régulière suivante

Column Name Translation Strategy

La stratégie utilisée pour normaliser le nom des colonnes de la table. Le nom de la colonne sera mis en majuscules afin d’assurer une correspondance insensible à la casse, quelle que soit la stratégie

Database Dialect Service

Le composant Database Dialect Service permettant de générer des instructions spécifiques pour un service ou un fournisseur particulier.

db-type

Type de base de données pour générer des instructions spécifiques à un service ou à un fournisseur particulier. Le type générique prend en charge la plupart des cas, mais la sélection d’un type spécifique permet d’optimiser le traitement ou d’offrir des fonctions supplémentaires.

record-reader

Le service de lecture des fichiers de flux entrants. Le lecteur n’est utilisé que pour déterminer le schéma des enregistrements, les enregistrements proprement dits ne seront pas traités.

updatedatabasetable-catalog-name

Le nom du catalogue que l’instruction doit mettre à jour. Cela peut ne pas s’appliquer à la base de données que vous mettez à jour. Dans ce cas, laissez le champ vide. Notez que si la propriété est définie et que la base de données est sensible à la casse, le nom du catalogue doit correspondre exactement au nom du catalogue de la base de données.

updatedatabasetable-create-table

Indique comment traiter la table cible lorsqu’elle n’existe pas (la créer, échouer, par exemple).

updatedatabasetable-dbcp-service

Le Controller Service qui est utilisé pour obtenir la (les) connexion(s) à la base de données

updatedatabasetable-primary-keys

Une liste de noms de champs d’enregistrement séparés par des virgules qui identifie de manière unique une ligne dans la base de données. Cette propriété n’est utilisée que si la table spécifiée doit être créée, auquel cas les champs de clé primaire seront utilisés pour spécifier les clés primaires de la table nouvellement créée. IMPORTANT : les champs de la clé principale doivent correspondre exactement aux noms des champs de l’enregistrement, sauf si l’option “identificateurs de colonne cités” est fausse et que la base de données autorise les noms de colonne insensibles à la casse. Dans la pratique, il est préférable de spécifier des champs de clé primaire correspondant exactement aux noms des champs de l’enregistrement, qui deviendront les noms des colonnes de la table créée.

updatedatabasetable-query-timeout

Définit le nombre de secondes pendant lesquelles le pilote attendra l’exécution d’une requête. Une valeur de 0 signifie qu’il n’y a pas de délai d’expiration. NOTE : les valeurs non nulles peuvent ne pas être prises en charge par le pilote.

updatedatabasetable-quoted-column-identifiers

En activant cette option, tous les noms de colonnes seront mis entre guillemets, ce qui vous permettra d’utiliser des mots réservés comme noms de colonnes dans vos tables et/ou de forcer les noms des champs d’enregistrement à correspondre exactement aux noms de colonnes.

updatedatabasetable-quoted-table-identifiers

En activant cette option, le nom de la table sera cité pour permettre l’utilisation de caractères spéciaux dans le nom de la table et/ou pour forcer la valeur de la propriété Table Name à correspondre exactement au nom de la table cible.

updatedatabasetable-record-writer

Spécifie le Controller Service à utiliser pour écrire les résultats dans un FlowFile. Le Record Writer doit utiliser Inherit Schema pour émuler le comportement du schéma déduit, c’est-à-dire qu’un schéma explicite n’a pas besoin d’être défini dans le Rédacteur d’enregistrements, et sera fourni par la même logique que celle utilisée pour déduire le schéma à partir des types de colonnes. Si Create Table Strategy est défini sur “Create If Not Exists”, le format de sortie du Record Writer doit correspondre à celui du Record Reader afin que les données puissent être insérées à l’emplacement de la table créée. Notez que cette propriété est utilisée uniquement si “Update Field Names” est défini sur true et si les noms de champs ne correspondent pas tous exactement aux noms de colonnes. Si aucune mise à jour n’est nécessaire pour les noms de champs (ou si “Update Field Names” est défini sur false), le Record Writer n’est pas utilisé et le FlowFile d’entrée est routé vers success ou failure sans modification.

updatedatabasetable-schema-name

Le nom du schéma de la base de données auquel la table appartient. Cela peut ne pas s’appliquer à la base de données que vous mettez à jour. Dans ce cas, laissez le champ vide. Notez que si la propriété est définie et que la base de données est sensible à la casse, le nom du schéma doit correspondre exactement au nom du schéma de la base de données.

updatedatabasetable-table-name

Le nom de la table de base de données à mettre à jour. Si la table n’existe pas, elle sera créée ou une erreur sera générée, en fonction de la valeur de la propriété Create Table.

updatedatabasetable-translate-field-names

Si la valeur est “vrai”, le Processeur tentera de traduire les noms de champ en noms de colonne correspondants pour la table spécifiée, afin de déterminer si le nom de champ existe en tant que colonne dans la table cible. NOTE : si la table cible n’existe pas et doit être créée, cette propriété est ignorée et les noms des champs seront utilisés tels quels. S’il est faux, les noms des champs doivent correspondre exactement aux noms des colonnes, sinon la colonne peut ne pas être trouvée et une erreur peut être signalée, indiquant que la colonne existe déjà.

updatedatabasetable-update-field-names

Cette propriété indique s’il faut mettre à jour le schéma de sortie de manière à ce que les noms de champ soient ensemble avec les noms de colonne exacts de la table spécifiée. Cette option doit être utilisée si les noms des champs de l’enregistrement entrant peuvent ne pas correspondre aux noms des colonnes de la table en termes de majuscules et de minuscules. Par exemple, cette propriété doit être définie sur true si le FlowFile de sortie est destiné à Oracle, qui s’attend par exemple à ce que les noms de champs correspondent exactement aux noms de colonnes. NOTE : la valeur de la propriété “Translate Field Names” est ignorée lors de la mise à jour des noms de champs. Ils sont plutôt mis à jour pour correspondre au nom de colonne renvoyé par la base de données.

Relations

Nom

Description

failure

Un FlowFile contenant les enregistrements routés vers cette relation si l’enregistrement n’a pas pu être transmis à la base de données.

success

Un FlowFile contenant les enregistrements routés vers cette relation après que l’enregistrement a été transmis avec succès à la base de données.

Écrit les attributs

Nom

Description

output.table

Cet attribut est écrit sur les FlowFiles routés vers les relations “success” et “failure”, et contient le nom de la table cible.

output.path

Cet attribut est écrit sur les FlowFiles routés vers les relations “success” et “failure”, et contient le chemin du système de fichiers vers la table (ou vers l’emplacement de la partition si la table est partitionnée).

mime.type

Définit l’attribut mime.type au type MIME spécifié par le Record Writer, uniquement si un Record Writer est spécifié et que la valeur Update Field Names est “true”.

record.count

Définit le nombre d’enregistrements dans le FlowFile, uniquement si un Record Writer est spécifié et si Update Field Names est défini sur “true”.