Skip to main content

Jointure

Jointure (t_join) joint de 2 à 8 tables avec la sémantique SQL : INNER, LEFT, RIGHT, FULL ou CROSS. Les jointures s'enchaînent (le résultat d'une jointure sert d'entrée à la suivante), ce qui permet de reconstituer un schéma en étoile en une seule brick.

Ports
Entrées2 à 8 flux (in) : les tables, indexées t0, t1, t2… dans l'ordre de branchement
Sorties1 flux (out) : le résultat joint

Types de jointure​

TypeDescription
innerLignes présentes des deux côtés
leftToutes les lignes de gauche + correspondances de droite
rightToutes les lignes de droite + correspondances de gauche
fullToutes les lignes des deux côtés
crossProduit cartésien (pas de clés)

Le paramètre join_type fixe le type par défaut ; chaque jointure de la chaîne peut le surcharger.

Configurer les jointures​

Chaque jointure de la liste joins déclare :

ChampDescription
Table source / cibleLes index des tables à joindre (le résultat des jointures précédentes sert de côté gauche pour la suite).
TypeLe type de jointure pour cette étape (sinon le type par défaut).
ClésLes paires de colonnes source → target sur lesquelles joindre.

Sans clés déclarées, la brick tente une jointure naturelle sur les colonnes communes aux deux tables, et échoue s'il n'y en a aucune. Une clé référençant une colonne absente fait échouer l'exécution avec la liste des colonnes disponibles.

Sans configuration de jointures, la brick enchaîne par défaut t0 JOIN t1 JOIN t2 … avec le type par défaut.

Options​

ParamètreDescription
suffixesSuffixes appliqués aux colonnes en doublon, un par table (défaut : _t0, _t1…).
columns_to_keepColonnes à conserver par table (* = toutes). Les clés de jointure sont gardées le temps du join puis retirées si non demandées.
column_renamesRenommage de colonnes du résultat.
join_conditionsFiltre additionnel appliqué après les jointures, avec la syntaxe t0.colonne, ex. t0.date > t1.created_at.
tip

Pour un simple empilement de deux flux ou un enrichissement par clé (lookup), la méga-brick Combinaisons est plus légère. Jointure est faite pour les joins SQL multi-tables.