Modèles hiérarchiques dans dbt

Introduction à dbt

Mike Metzger

Data Engineer

Qu’est-ce qu’une hiérarchie dans dbt ?

  • Représente les dépendances d’un projet dbt
  • Aussi appelé graphe orienté acyclique (DAG) ou graphe de lignage
    • Spécifique à dbt, différent d’un DAG général
  • Permet de construire/mettre à jour les modèles selon les dépendances

Graphe dbt DAG / de lignage

Introduction à dbt

Détails de la hiérarchie

  • avg_fare_per_day et total_creditcard_riders_per_day dépendent de taxi_rides_raw
  • dbt construit d’abord taxi_rides_raw
  • Sans graphe de lignage, dbt crée les entrées par ordre alphabétique
    • avg_fare_per_day échouerait sans taxi_rides_raw

Graphe dbt DAG / de lignage

Introduction à dbt

Comment définir les hiérarchies ?

  • Définie avec le langage de gabarits Jinja dans le(s) fichier(s) de modèle
  • Le plus souvent via la fonction ref
  • Remplacez le nom de table par {{ ref('model_name') }} en SQL
  • (Re)matérialisez la table avec dbt run
  • Les gabarits ref sont remplacés par les noms de tables réels
Introduction à dbt

Exemple de hiérarchie

SELECT 
  first_name, last_name
FROM taxi_rides_raw
SELECT 
  first_name, last_name
FROM {{ ref('taxi_rides_raw') }}
Introduction à dbt

Passons à la pratique !

Introduction à dbt

Preparing Video For Download...