Forme de promotion
| Champ | Signification |
|---|---|
dataset_id | Nom du dataset logique. |
domain | Domaine logique (ex. catalog, sales, inventory). |
conformed_table | La table silver/gold cible. |
source_table / source_tables | La(les) table(s) source que cette promotion lit. |
merge_keys | Colonnes qui identifient une ligne pour l’upsert. |
update_columns | Lors de l’upsert, quelles colonnes mettre à jour (null/omis = toutes). |
steps | Le pipeline ordonné (ci-dessous). |
Comportement d’écriture
Les promotions écrivent selon l’un de trois modes — merge (upsert surmerge_keys), append (insérer uniquement), ou overwrite partition (remplacer une partition). En pratique, une promotion avec merge_keys effectue un upsert sur ces clés ; update_columns restreint quelles colonnes sont écrites en cas de correspondance (ex. enrichir uniquement postal_code sans toucher au reste de la ligne).
Ordonnancement
Les étapes s’exécutent de haut en bas. Chaque étape voit la sortie de la précédente, donc l’ordre importe — ex. ajouter/renommer les colonnes avantgenerate_id, et exécuter une id_mapping_output uniquement après l’existence de l’id.
Catalogue d’étapes
Chaque étape est un objet avec untype. Ci-dessous, groupées par objectif.
Mise en forme
coerce_types — convertir les colonnes en types SQL
coerce_types — convertir les colonnes en types SQL
filter — conserver les lignes correspondant à une condition
filter — conserver les lignes correspondant à une condition
condition est une expression SQL WHERE (sans le mot-clé WHERE).deduplicate — supprimer les lignes dupliquées
deduplicate — supprimer les lignes dupliquées
strategy : drop (par défaut), keep_first, ou keep_last. order_by / order_desc
décident quelle ligne survit pour keep_first/keep_last.add_column — ajouter une colonne calculée
add_column — ajouter une colonne calculée
expression est toute expression scalaire SQL (littéraux, fonctions, CASE, références à
d’autres colonnes).rename_columns — renommer les colonnes
rename_columns — renommer les colonnes
source → cible.select_columns — conserver uniquement ces colonnes
select_columns — conserver uniquement ces colonnes
drop_columns — supprimer ces colonnes
drop_columns — supprimer ces colonnes
inject_value — injecter une valeur d'exécution
inject_value — injecter une valeur d'exécution
organization_id, created_by) comme
colonne littérale.Jointure
join — joindre un autre dataset
join — joindre un autre dataset
join_type : left (par défaut), inner, outer, right. select_columns choisit (et
optionnellement ajoute un alias à) les colonnes du dataset joint.sequential_join — jointure flexible avec fallback et expressions
sequential_join — jointure flexible avec fallback et expressions
join : une fallback_join_column (clé secondaire
de style COALESCE) et select_expressions (expressions SQL personnalisées sélectionnées
de la cible).aggregation_join — grouper + agréger, puis joindre
aggregation_join — grouper + agréger, puis joindre
function ∈ avg, max, min, sum, count, first,
puis joint le résultat sur join_column.Remodèlement
unpivot — large vers long
unpivot — large vers long
{ id, col1, col2, … } en lignes { id, variable, value }.
variable_column/value_column sont par défaut variable/value.Identité et taxonomie
generate_id — UUID déterministe à partir de colonnes clés
generate_id — UUID déterministe à partir de colonnes clés
key_columns — les mêmes valeurs de clés
produisent le même id entre les exécutions (idempotent), ce qui rend la ré-ingestion
sûre. Un namespace optionnel cadre la dérivation (UUID v5). Par défaut :
output_column = id, key_columns = toutes les colonnes non nulles.id_mapping_output — persister un mapping code → id
id_mapping_output — persister un mapping code → id
code_column → id_column sous mapping_type, pour que les
promotions ultérieures (dans cette spécification ou une autre) puissent résoudre les
clés étrangères par rapport à lui.id_mapping_join — résoudre une FK via un mapping persisté
id_mapping_join — résoudre une FK via un mapping persisté
source_column dans le mapping créé par une id_mapping_output antérieure et
écrit l’id résolu dans output_column.taxonomy_mapping — résoudre un label en id de taxonomie
taxonomy_mapping — résoudre un label en id de taxonomie
source_id_column fournit optionnellement la référence POS pour la désambiguïsation.Référence des sous-options
| Énumération | Valeurs |
|---|---|
| Stratégie de déduplication | drop, keep_first, keep_last |
| Type de jointure | left, inner, outer, right |
| Fonction d’agrégation | avg, max, min, sum, count, first |
| Mode d’écriture | merge, append, overwrite_partition |
id_mapping_output → id_mapping_join : une
promotion publie le mapping, les promotions ultérieures le consomment. Voir les
exemples travaillés.
