Exécuter SQL
Exécuter SQL (t_execute_sql) exécute des requêtes SQL sur une base de
données externe au milieu d'un pipeline : mise à jour de lignes, appel de
procédure, lecture d'enrichissement… Les valeurs du flux d'entrée alimentent la
requête via des placeholders.
| Ports | |
|---|---|
| Entrées | 1 flux (in), optionnel : fournit les valeurs des placeholders |
| Sorties | 1 flux (out) : les résultats de la requête, ou le flux d'entrée enrichi |
Connexion et moteurs
La brick s'appuie sur une connexion base de données du projet (voir Créer une connexion). Moteurs supportés : PostgreSQL, SQL Server, MySQL et Snowflake. Comme pour toute connexion, chaque environnement du projet porte ses propres identifiants.
Placeholders
Dans la requête, {colonne} (ou {{colonne}}) référence la valeur d'une
colonne du flux d'entrée :
UPDATE clients SET statut = {statut} WHERE id = {client_id}
Les valeurs sont transmises comme paramètres liés, jamais interpolées dans le texte SQL, ce qui neutralise les injections via les données amont.
Modes d'exécution
Mode (execution_mode) | Comportement |
|---|---|
Requête unique (single) | Exécute la requête une fois. Les placeholders sont alimentés par la première ligne du flux (s'il y en a un). |
Une requête par ligne (per_row) | Exécute la requête pour chaque ligne du flux, avec ses valeurs. |
Requêtes multiples (batch) | Le champ SQL contient une requête par ligne de texte (les lignes -- sont ignorées) ; chacune est exécutée une fois. |
Paramètres
| Paramètre | Défaut | Description |
|---|---|---|
sql_query | — | La ou les requêtes SQL (requis). |
return_results | false | Si activé, la sortie contient les résultats de la requête (SELECT). Sinon, le flux d'entrée est retransmis. |
error_handling | Continuer | En cas d'erreur : Continuer (marquer l'erreur), Ignorer la ligne (mode par ligne) ou Arrêter le traitement. |
success_column | — | Nom d'une colonne ajoutée avec le statut de succès (vide = désactivé). |
error_column | — | Nom d'une colonne ajoutée avec le message d'erreur (vide = désactivé). |
connection_timeout | 30 | Timeout de connexion en secondes. |
Détails selon le mode :
- par ligne + résultats : chaque ligne de résultat est fusionnée avec la ligne d'entrée qui a produit la requête ;
- batch + résultats : les résultats de toutes les requêtes sont empilés,
avec une colonne
_query_indexindiquant la requête d'origine.
Cette brick exécute du SQL sur une base externe, y compris des écritures
(UPDATE, INSERT, appels de procédures). Pour de simples lectures en début de
pipeline, préférez un extracteur
Base de données ; pour
charger le flux en fin de pipeline, un loader
Base de données.