Aller au contenu

Étape Jointure multi-tables

L’étape Jointure multi-tables joint plusieurs tables en une seule opération. Au lieu d’enchaîner une série de jointures à deux tables, où vous perdez la vue d’ensemble et répétez le même mappage de sortie, vous disposez toutes les tables dans un concepteur visuel de graphe de jointures, tracez les jointures entre leurs colonnes et produisez une seule table de résultat.

Elle est conçue pour la forme la plus courante des jointures analytiques : une table de faits jointe à plusieurs tables de dimensions ou de référence. Vous pouvez joindre jusqu’à 32 tables à la fois.

Ajoutez-la comme n’importe quelle autre étape et choisissez Jointure multi-tables (dans le groupe Tables du menu des étapes, ou faites-la glisser depuis la palette du canevas de workflow avancé). L’éditeur de l’étape comporte trois onglets :

  1. Tables et jointures : le concepteur visuel où vous ajoutez des tables et tracez les jointures.
  2. Colonnes de sortie : les colonnes que contiendra la table de résultat.
  3. Filtre post-jointure : un filtre facultatif appliqué au résultat de la jointure.

Un indicateur d’état affiche Prêt à enregistrer ou Modifications non enregistrées pendant votre travail.

Choisissez Ajouter une table pour placer une table source sur le canevas. Chaque table apparaît sous forme de carte listant ses colonnes et reçoit un alias, un nom court que vous utilisez pour référencer ses colonnes ailleurs (sous la forme alias.column). Un alias doit commencer par une lettre ou un trait de soulignement et ne peut pas être un mot-clé SQL. Ajoutez-en autant que nécessaire (jusqu’à 32) et choisissez la Table cible dans laquelle le résultat est écrit.

Si les colonnes d’une table changent dans le catalogue, utilisez Réextraire depuis le serveur pour remplacer les colonnes de la carte par les valeurs les plus récentes.

Les tables source comme la Table cible peuvent être indiquées par une référence plutôt que choisies dans la liste. Cochez Dynamique dans le sélecteur de table et saisissez l’un des éléments suivants :

  • le nom d’une table : FACT_GL
  • le chemin d’un projet : /03 Results/FACT_GL

L’un comme l’autre peut contenir des jetons {variable}, qui sont remplacés à l’exécution du workflow. Ainsi, /03 Results/FACT_GL_{year} écrit dans une table différente à chaque période, selon une variable de projet ou de workflow. La table cible est créée si elle n’existe pas.

Les accolades non appariées sont détectées à l’enregistrement : un FACT_{year mal saisi est donc signalé sur l’étape plutôt que de provoquer un échec en cours d’exécution.

Faites glisser un point de colonne d’une table vers une colonne d’une autre table pour créer une jointure (un lien). Sélectionnez un lien pour ouvrir son éditeur à droite, où vous définissez :

  • Type de jointure :

    Type Conserve
    INNER uniquement les correspondances
    LEFT toutes les lignes de la table de gauche
    FULL toutes les lignes des deux côtés
    CROSS chaque ligne de gauche combinée à chaque ligne de droite (sans condition)
  • Conditions de jointure : une ou plusieurs comparaisons entre les colonnes des deux tables. Ajoutez-en d’autres avec + Ajouter une condition, combinez-les avec AND / OR et utilisez l’ensemble des opérateurs (=, <>, <, <=, >, >=, BETWEEN, IS NULL, IS NOT NULL, IN, NOT IN, LIKE, NOT LIKE).

  • Libellé (facultatif) : nommez la jointure (par exemple, customer-to-orders) pour faciliter la lecture du diagramme.

Le concepteur conserve le graphe de jointures sous forme d’arbre : chaque table se rattache au résultat par une seule jointure, ce qui exclut les cycles et les chemins ambigus, et une table ne peut pas être jointe à elle-même. Pour supprimer une jointure, sélectionnez le lien et choisissez Supprimer le lien.

Chaque table source dispose d’un Filtre entrant appliqué avant la jointure : utilisez-le pour réduire une table aux lignes qui vous intéressent (référencez ses colonnes sous la forme alias.column). Il est distinct du Filtre post-jointure, qui s’exécute après toutes les jointures.

  • Réorganiser la disposition range automatiquement les tables et les jointures de gauche à droite selon l’ordre des jointures.
  • Ajuster à la vue met à l’échelle et centre l’affichage pour que tout le graphe tienne à l’écran ; vous pouvez aussi faire un panoramique et un zoom manuellement.
  • Filtrer les colonnes… restreint les colonnes affichées sur les cartes lorsqu’une table en comporte beaucoup.
  • Défaire / Rétablir reculent et avancent dans vos modifications (Ctrl+Z / Ctrl+Y), et Historique ouvre un panneau listant chaque modification effectuée depuis l’ouverture de la boîte de dialogue, avec Restaurer.
  • Exporter télécharge le diagramme de jointures sous forme d’image SVG, pratique pour la documentation ou la relecture.

Dans l’onglet Colonnes de sortie, choisissez les colonnes que contiendra la table de résultat. Sélectionnez-les parmi n’importe quelle table jointe : utilisez Choisir dans le canevas… pour choisir visuellement parmi les colonnes de chaque source, ou Ajouter toutes les colonnes source pour toutes les reprendre d’un coup. Pour chaque colonne, vous pouvez la renommer, définir son type de données et lui appliquer une agrégation. Lorsque deux colonnes source portent le même nom, PlaidCloud les préfixe avec leur alias de source pour éviter les collisions.

La valeur de chaque colonne de sortie provient d’une seule de ces trois origines :

  • Une colonne source : définissez Alias de la source sur l’alias du canevas auquel elle appartient et Source sur la référence alias.column. Les deux sont obligatoires ; une colonne source nomme toujours la table dont elle provient.
  • Une constante : la même valeur fixe sur chaque ligne.
  • Une expression : choisissez Ajouter une colonne d’expression pour ajouter une ligne et ouvrir l’éditeur d’expressions. Les expressions peuvent référencer n’importe quel alias de source du canevas sous la forme alias.column ; c’est ainsi que vous construisez une valeur qui couvre plusieurs tables jointes (un CASE sur deux tables, une concaténation, un montant calculé). Laissez Alias de la source et Source vides sur une ligne d’expression.

Renseigner plusieurs de ces origines est une erreur, tout comme n’en renseigner aucune.

La cellule Expression ouvre l’éditeur d’expressions standard de PlaidCloud, avec chaque table du canevas dans son navigateur de colonnes, la liste des fonctions et la saisie semi-automatique.

Les colonnes de sortie suivent le canevas : si vous renommez une source dans l’onglet Tables et jointures, ses colonnes de sortie passent au nouvel alias, et si vous supprimez une source, ses colonnes de sortie sont supprimées. Vous ne conservez donc jamais de colonnes qui pointent vers une table ne faisant plus partie de la jointure.

L’onglet Filtre post-jointure applique un filtre facultatif au résultat de la jointure avant son écriture dans la table cible, l’équivalent d’une clause SQL HAVING. Cliquez dans la zone pour ouvrir l’éditeur d’expressions ; les colonnes de sortie figurent dans son navigateur de colonnes et vous les référencez sous la forme result.column_name : les alias de source ne sont pas dans la portée ici. Références disponibles, sous la zone, liste toutes les références utilisables. Laissez-la vide pour ne pas appliquer de filtrage post-jointure.

PlaidCloud valide la jointure au fur et à mesure de sa construction, puis de nouveau à l’exécution de l’étape. Si quelque chose ne va pas (configuration non prise en charge, cycle, alias en double, colonne de sortie qui ne définit ni Source, ni Constante, ni Expression (ou plusieurs d’entre elles), ou colonne qui n’existe plus), l’onglet affiche un badge ⚠ avec le nombre de problèmes, le concepteur marque la table ou la jointure en cause, et l’enregistrement est refusé avec le motif. Si vous enregistrez avec des problèmes non résolus, vous êtes ramené à l’onglet qui contient le premier ; Aller au problème fait de même à la demande.

À l’enregistrement, PlaidCloud vérifie aussi l’expression de chaque colonne de sortie par rapport aux entrées propres de la jointure, par alias (alias.column), comme le fait l’étape à l’exécution, ainsi que le filtre post-jointure. Une expression incorrecte est signalée sur sa colonne de sortie, et un filtre post-jointure incorrect sur le filtre. Si la jointure est définie sur Reporter aussi les colonnes nommées à l’exécution et ne fait pas de synthèse, la vérification des expressions est ignorée à l’enregistrement, car des colonnes sont ajoutées à l’exécution ; ces expressions sont alors vérifiées à l’exécution de l’étape. Les filtres propres à chaque source sont également vérifiés à l’exécution de l’étape.

La Jointure multi-tables s’exécute comme n’importe quelle autre étape. Elle effectue toutes les jointures en une seule opération et écrit les colonnes mappées dans la table cible.