PutSQL 2025.10.2.19¶
Bundle¶
org.apache.nifi | nifi-standard-nar
Description¶
Executes a SQL UPDATE or INSERT command. The content of an incoming FlowFile is expected to be the SQL command to execute. The SQL command may use the ? to escape parameters. In this case, the parameters to use must exist as FlowFile attributes with the naming convention sql.args. N.type and sql.args. N.value, where N is a positive integer. The sql.args. N.type is expected to be a number indicating the JDBC Type. The content of the FlowFile is expected to be in UTF-8 format.
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 |
If true, when a FlowFile is consumed by this Processor, the Processor will first check the fragment.identifier and fragment.count attributes of that FlowFile. If the fragment.count value is greater than 1, the Processor will not process any FlowFile with that fragment.identifier until all are available; at that point, it will process all FlowFiles with that fragment.identifier as a single transaction, in the order specified by the FlowFiles “fragment.index attributes. This Provides atomicity of those SQL statements. Once any statement of this transaction throws exception when executing, this transaction will be rolled back. When transaction rollback happened, none of these FlowFiles would be routed to’success “. If the <Rollback On Failure> is set true, these FlowFiles will stay in the input relationship. When the <Rollback On Failure> is set false,, if any of these FlowFiles will be routed to” retry “, all of these FlowFiles will be routed to” retry “.Otherwise, they will be routed to” failure”. If this value is false, these attributes will be ignored and the updates will occur independent of one another. |
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 |
Specify how to handle error. By default (false), if an error occurs while processing a FlowFile, the FlowFile will be routed to “failure” or “retry” relationship based on error type, and processor can continue with next FlowFile. Instead, you may want to rollback currently processed FlowFiles and stop further processing immediately. In that case, you can do so by enabling this “Rollback On Failure” property. If enabled, failed FlowFiles will stay in the input relationship without penalizing it and being processed repeatedly until it gets processed successfully or removed by other means. It is important to set adequate “Yield Duration” to avoid retrying too frequently. |
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. |