PutSQL 2025.10.2.19

Bundle

org.apache.nifi | nifi-standard-nar

Description

Exécute une commande SQL UPDATE ou INSERT. Le contenu d’un FlowFile entrant est censé être la commande SQL à exécuter. La commande SQL peut utiliser le caractère ? pour échapper les paramètres. Dans ce cas, les paramètres à utiliser doivent exister sous la forme d’attributs FlowFile avec la convention de dénomination sql.args. N.type et sql.args. N.value, où N est un entier positif. Le N.type sql.args. doit être un nombre indiquant le type JDBC. Le contenu du FlowFile doit être au format UTF-8.

Balises

database, insert, put, rdbms, relational, sql, 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

Batch Size

Le nombre préféré de FlowFiles à mettre dans la base de données en une seule transaction

JDBC Connection Pool

Spécifie le Connection Pool JDBC à utiliser pour convertir le message JSON en instruction SQL. Le Connection Pool est nécessaire pour déterminer les types de colonnes de base de données appropriés.

Obtain Generated Keys

Si c’est le cas, toute clé générée automatiquement par la base de données sera ajoutée au FlowFile qui l’a générée à l’aide de l’attribut sql.generate.key. Cela peut entraîner un léger ralentissement des performances et n’est pas pris en charge par toutes les bases de données.

Support Fragmented Transactions

Si « true », lorsqu’un FlowFile est consommé par ce processeur, le processeur vérifiera d’abord les attributs fragment.identifier et fragment.count de ce FlowFile. Si la valeur fragment.count est supérieure à 1, le processeur ne traitera aucun FlowFile avec ce fragment.identifier jusqu’à ce que tous soient disponibles ; à ce stade, il traitera tous les FlowFiles avec ce fragment.identifier comme une transaction unique, dans l’ordre spécifié par les attributs “fragment.index” des FlowFiles. Fournit une atomicité de ces instructions SQL. Une fois qu’une instruction de cette transaction lève une exception lors de l’exécution, la transaction sera annulée. Lorsque la transaction a été annulée, aucun de ces FlowFiles sera routé vers “success”. Si le <Rollback On Failure> est défini comme « true », ces FlowFiles resteront dans la relation d’entrée. Lorsque le <Rollback On Failure> est défini comme « false », si l’un de ces FlowFiles est routé vers “retry”, l’ensemble des FlowFiles sera routé vers “retry”. Sinon, ils seront routés vers “failure”. Si cette valeur est false, ces attributs seront ignorés et les mises à jour se feront indépendamment les unes des autres.

Transaction Timeout

Si la propriété <Support Fragmented Transactions> est définie sur “true”, spécifie combien de temps attendre que tous les FlowFiles pour un attribut fragment.identifier particulier arrivent avant de simplement transférer tous les FlowFiles ayant cet identifiant vers la relation “failure”.

database-session-autocommit

Le mode de validation automatique à définir sur la connexion à la base de données utilisée. Si cette propriété est définie sur “false”, l’opération ou les opérations seront explicitement validées ou annulées (en fonction respectivement du succès ou de l’échec) ; si elle est définie sur “true”, le pilote/la base de données gère la validation/l’annulation.

putsql-sql-statement

L’instruction SQL à exécuter. L’instruction peut être vide, être une valeur constante ou être construite à partir d’attributs à l’aide de l’Expression Language. Si cette propriété est spécifiée, elle sera utilisée quel que soit le contenu des FlowFiles entrants. Si cette propriété est vide, le contenu des FlowFile entrants doit contenir une instruction SQL valide, qui sera envoyée par le processeur à la base de données.

rollback-on-failure

Spécifiez comment traiter l’erreur. Par défaut (false), si une erreur survient lors du traitement d’un FlowFile, le FlowFile sera routé vers une relation “failure” or “retry” en fonction du type d’erreur, et le processeur continuera avec le FlowFile suivant. Au lieu de cela, vous pouvez souhaiter revenir en arrière sur les FlowFiles actuellement traités et arrêter immédiatement tout traitement supplémentaire. Dans ce cas, activez la propriété “Rollback On Failure”. Si cette option est activée, les FlowFiles ayant échoué resteront dans la relation d’entrée sans être pénalisés et seront traités à plusieurs reprises jusqu’à ce qu’ils soient traités avec succès ou supprimés par d’autres moyens. Il est important de définir une “Yield Duration” adéquate pour éviter de réessayer trop fréquemment.

Relations

Nom

Description

failure

Un FlowFile est routé vers cette relation si la base de données ne peut pas être mise à jour et qu’une nouvelle tentative d’opération est vouée à l’échec, par exemple en raison d’une requête non valide ou d’une violation de la contrainte d’intégrité

retry

Un FlowFile est routé vers cette relation si la base de données ne peut pas être mise à jour, mais une nouvelle tentative de l’opération peut être couronnée de succès

success

Un FlowFile est routé vers cette relation après la mise à jour réussie de la base de données.

Écrit les attributs

Nom

Description

sql.generated.key

Si la base de données a généré une clé pour une instruction INSERT et que la propriété Obtain Generated Keys est définie sur “true”, cet attribut sera ajouté pour indiquer la clé générée, si possible. Cette fonctionnalité n’est pas prise en charge par tous les fournisseurs de bases de données.