Aller au contenu principal

Nœud Snowflake

Le nœud Snowflake (type DATABASE_SNOWFLAKE) exécute des requêtes SQL sur un entrepôt Snowflake directement depuis un flux. Il sert à interroger ou alimenter des tables Snowflake (SELECT, INSERT, UPDATE, DELETE, etc.), à enrichir le contexte avec des données analytiques avant un traitement métier, et à intégrer l'entrepôt de données sans passer par une API intermédiaire.

Paramètres​

ParamètreTypeObligatoireDéfautDescription
AppApp❌—Application associée au nœud. Voir Apps.
Requête SQL (query)String✅—Requête SQL avec templating Handlebars. Éditeur dédié Snowflake.
Binds (binds)Liste (jsonpath)❌—Valeurs liées à la requête, évaluées depuis le contexte (jsonpath / expressions).
Compte (account)String✅—Identifiant de compte Snowflake.
AuthentificationCredential / Clé privée✅—Clé privée (username + private key + passphrase optionnelle) ou credential Ecosystem (PRIVATE_KEY, OAUTH2, CUSTOM).
Paramètres Snowflake (parameters)Clé-valeur❌—Paramètres passés à Snowflake (ex. MULTI_STATEMENT_COUNT pour plusieurs instructions).
Exécution asynchrone (asyncExec)Booléen❌—Si activé, la requête est soumise sans attendre les lignes de résultat.
Clé de sortie (outputKey)String❌snowflakeResultClé du contexte pour le résultat.
Stopper le flux en cas d'échecBooléen❌trueArrêt du flux en cas d'erreur SQL ou de connexion.

Onglet Requête​

  • Saisissez la requête SQL dans l'éditeur (coloration syntaxique Snowflake).
  • Ajoutez des binds dans l'ordre d'apparition dans la requête.
  • Si MULTI_STATEMENT_COUNT est supérieur à 1, les binds ne sont pas supportés (comportement Snowflake multi-instructions).

Onglet Authentification​

Deux modes :

Clé privée (PRIVATE_KEY)

  • Account : identifiant du compte Snowflake
  • Username : utilisateur Snowflake
  • Private key : clé privée (PEM)
  • Passphrase : optionnelle si la clé est chiffrée

Credential (CREDENTIALS)

Onglet Paramètres​

  • outputKey : nom de la variable de sortie dans le contexte
  • asyncExec : soumission asynchrone (sans récupération immédiate des lignes)
  • parameters : paires clé-valeur Snowflake (ex. MULTI_STATEMENT_COUNT = 2)
  • Stopper l'exécution du flux en cas d'échec : comportement en cas d'erreur
Secrets et binds

Stockez les clés privées et passphrases dans des dictionnaires (valeurs masquées). Privilégiez les binds aux concaténations dans le SQL, et activez asyncExec uniquement si le nœud suivant n'a pas besoin immédiatement des lignes.

Entrée​

Le nœud reçoit les valeurs du contexte du flux via des binds (jsonpath / expressions), évalués à l'exécution dans l'ordre d'apparition dans la requête. Les valeurs dynamiques sont également injectées via le templating Handlebars dans la requête SQL.

Sortie​

Le résultat est stocké dans context.<outputKey> (défaut snowflakeResult) :

CasStructure
Une seule instruction{ rows, queryId }
Plusieurs instructionsTableau de { rows, queryId }
  • rows : lignes retournées par la requête
  • queryId : identifiant Snowflake de l'exécution (utile pour le support et le débogage)

Exemple de résultat pour outputKey: "snowflakeResult" (une seule instruction) :

{
"snowflakeResult": {
"rows": [
{ "order_id": 1001, "total": 249.9, "status": "PAID" },
{ "order_id": 1002, "total": 89.5, "status": "PAID" }
],
"queryId": "0192a3b4-5c6d-7e8f-9a0b-1c2d3e4f5a6b"
}
}

Le résultat est consommable dans les nœuds suivants via {{snowflakeResult.rows}}, {{snowflakeResult.queryId}}, ou {{snowflakeResult.rows[0].order_id}} — par exemple dans un nœud Envoyer un e-mail ou une boucle ForEach qui itère sur rows.

Erreurs​

En cas d'erreur SQL ou de connexion, le nœud échoue et stoppe l'exécution du flux (option Stopper le flux en cas d'échec, défaut true). Pour gérer proprement l'échec, ajoutez un nœud On Error au flux.

Voir aussi : Bonnes pratiques — Gestion des erreurs.

Limites​

  • Si MULTI_STATEMENT_COUNT est supérieur à 1, les binds ne sont pas supportés (comportement Snowflake multi-instructions).

Exemple​

Interroger des données et les utiliser dans la suite du flux :

  1. Un déclencheur démarre le flux.
  2. Le nœud Snowflake exécute la requête SQL configurée dans l'onglet Requête.
  3. Le résultat est disponible via {{snowflakeResult.rows}} — par exemple une boucle ForEach itère sur rows, ou un nœud Envoyer un e-mail utilise {{snowflakeResult.rows[0].order_id}}.

Voir aussi​