UpdateDatabaseTable 2025.10.2.19

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 un traitement optimal ou des fonctionnalités 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 service de contrôleur à utiliser pour écrire des résultats dans un FlowFile. Le scripteur d’enregistrements doit utiliser Inherit Schema (Hériter du schéma) pour émuler le comportement de schéma déduit, c’est-à-dire qu’un schéma explicite ne doit pas être défini dans le rédacteur et sera fourni par la même logique que celle utilisée pour déduire le schéma à partir des types de colonnes. Si la stratégie de table de création est définie sur « Create If Not Exists (Créer si n’existe pas) », le format de sortie du rédacteur d’enregistrements doit correspondre au format du lecteur d’enregistrements pour que les données soient placées dans l’emplacement de table créé. Notez que cette propriété n’est utilisée que si « Update Field Names (Mettre à jour les noms de champs » est défini sur true et que les noms de champs ne correspondent pas tous aux noms de colonnes exactement. Si aucune mise à jour n’est nécessaire pour les noms de champs (ou si « Update Field Names (Mettre à jour les noms de champs » est faux), le générateur d’enregistrements n’est pas utilisé et l’entrée FlowFile est acheminée vers la relation success (réussite) ou failure (échec) 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 afin que les noms de champs correspondent exactement aux noms de colonnes de la table spécifiée. Cette fonction doit être utilisée si les noms des champs d’enregistrement entrants 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 la sortie FlowFile est destiné à Oracle, par exemple, qui s’attend à ce que les noms des champs correspondent exactement aux noms des colonnes. NOTE : La valeur de la propriété « Translate Field Names (Traduire les noms de champs) » est ignorée lors de la mise à jour des noms de champs ; au lieu de cela, ils sont mis à jour pour correspondre au nom de colonne tel que 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”.