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

Database Type for generating statements specific to a particular service or vendor. The Generic Type supports most cases but selecting a specific type enables optimal processing or additional features.

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

Specifies the Controller Service to use for writing results to a FlowFile. The Record Writer should use Inherit Schema to emulate the inferred schema behavior, i.e. an explicit schema need not be defined in the writer, and will be supplied by the same logic used to infer the schema from the column types. If Create Table Strategy is set “Create If Not Exists”, the Record Writer “s output format must match the Record Reader’s format in order for the data to be placed in the created table location. Note that this property is only used if “Update Field Names” is set to true and the field names do not all match the column names exactly. If no update is needed for any field names (or “Update Field Names” is false), the Record Writer is not used and instead the input FlowFile is routed to success or failure without 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

This property indicates whether to update the output schema such that the field names are set to the exact column names from the specified table. This should be used if the incoming record field names may not match the table “s column names in terms of upper- and lower-case. For example, this property should be set to true if the output FlowFile is destined for Oracle e.g., which expects the field names to match the column names exactly. NOTE: The value of the’Translate Field Names” property is ignored when updating field names; instead they are updated to match the column name as returned by the database.

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”.