Objectif et prérequis

Actualisez un produit existant par sa clé sku et ajoutez un produit manquant à une table SQL pédagogique.

Cet exemple utilise des données et paramètres de démonstration. Validez le résultat attendu dans votre propre environnement avant de connecter des destinations de production. Les identifiants demo_* sont illustratifs : sélectionnez vos propres connexions ou sources pédagogiques dans l’éditeur. Le JSON ci-dessous présente la structure des blocs et connexions, pas une archive de flux prête à transférer.

Une connexion à une base SQL pédagogique avec un connecteur pris en charge et des droits de lecture/écriture sur demo_products est nécessaire. L’exemple lui-même n’effectue pas d’écriture SQL.

Données d’entrée pédagogiques

État initial de demo_products :

skunameprice
T01Tea10
C01Coffee20

products.csv

sku;name;price
T01;Tea premium;12.5
J01;Juice;8

Blocs, connexions et paramètres exacts

Schéma explicatifAgrandir ↗14. SQL : ajouter ou actualiser le référentiel produit. Topologie de l’exemple 14 : 3 blocs, 2 connexions. Les identifiants de nœuds et les ports du graphe configuré sont conservés.
Schéma du flux 14

Topologie de l’exemple 14 : 3 blocs, 2 connexions. Les identifiants de nœuds et les ports du graphe configuré sont conservés.

Ajoutez les blocs listés dans le concepteur, ouvrez les propriétés de chacun et définissez ces valeurs. Les noms demo_* désignent les sources et connexions pédagogiques.

BlocParamètre
1
Fichier
src
  • Rôle: source
  • Source: demo_products_upsert
  • Paramètres de lecture:
    • Feuille: CSV
    • Plage: A1:C3
    • La première ligne contient les en-têtes: так
    • Séparateur: ;
2
Formats des nombres et des dates
cast
  • Règles:
      • Type: number
      • Champ: price
      • decimal_in: .
      • thousands_in:
      • extract: ні
      • invalid: error
      • Sortie: number
3
Connexion
sql
  • Rôle: target
  • Connexion: demo_sql
  • Objet externe:
    • Objet: demo_products
    • Méthode d’écriture: upsert
    • Champs clés: sku

Connexions des ports

  • src out → cast in
  • cast out → sql in
Configuration complète du graphe en JSON
{
  "version": 3,
  "nodes": [
    {
      "id": "src",
      "type": "file",
      "label": "src",
      "config": {
        "role": "source",
        "source_id": "demo_products_upsert",
        "options": {
          "sheet": "CSV",
          "range": "A1:C3",
          "header": true,
          "delimiter": ";"
        }
      }
    },
    {
      "id": "cast",
      "type": "number_format",
      "label": "cast",
      "config": {
        "rules": [
          {
            "kind": "number",
            "field": "price",
            "decimal_in": ".",
            "thousands_in": "",
            "extract": false,
            "invalid": "error",
            "output": "number"
          }
        ]
      }
    },
    {
      "id": "sql",
      "type": "connection",
      "label": "sql",
      "config": {
        "role": "target",
        "connection_id": "demo_sql",
        "external": {
          "object": "demo_products",
          "write_mode": "upsert",
          "key_fields": [
            "sku"
          ]
        }
      }
    }
  ],
  "edges": [
    {
      "source": "src",
      "target": "cast",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "cast",
      "target": "sql",
      "source_port": "out",
      "target_port": "in"
    }
  ]
}

Résultat attendu

skunameprice
T01Tea premium12.5
C01Coffee20
J01Juice8

T01 est actualisé, J01 est ajouté et C01 reste. La clé sku doit être unique dans la table pédagogique.

Exécuter et vérifier

  1. Préparez la table pédagogique demo_products et vérifiez ses 2 lignes initiales.
  2. Vérifiez les types des colonnes : sku/name sont du texte, price est numérique ; le bloc cast convertit le texte CSV en nombre.
  3. Lancez la prévalidation, puis exécutez ; lisez la table et comparez les 3 lignes illustrées.
  4. Répétez la même exécution : upsert par sku doit actualiser les mêmes produits sans créer de doublons.

Erreurs courantes

  • insert au lieu de upsert ne mettra pas T01 à jour et peut enfreindre la clé unique.
  • Corrigez les valeurs sku vides ou dupliquées du fichier d’entrée avant l’écriture.
  • Ne remplacez pas la table pédagogique par une table de production sans vérifier son schéma et les droits d’écriture.