Créer des data marts et des modèles snapshot avec dbt

Étude de cas : créer des modèles de données e-commerce avec dbt

Susan Sun

Freelance Data Scientist

Présentation des modèles de data mart dbt

Les data marts sont des modèles de données propres et accessibles, en bout de pipeline.

Cas d'usage

  • Feature stores pour l'équipe data science
  • KPIs agrégés pour l'équipe finance
  • Indicateur de latence pour l'équipe ingénierie
  • Réduit les répétitions en stockant le SQL comme du code
Étude de cas : créer des modèles de données e-commerce avec dbt

Data marts e-commerce Looker

Clients

Répond aux questions :

Qui sont nos clients ?

Quels sont leurs comportements d'achat ?

Granularité des données :

Une ligne par client

Exemples de colonnes :

Nom du client, montant dépensé par client

Produits

Répond aux questions :

Quel est notre chiffre d'affaires, nos coûts et notre bénéfice ?

Granularité des données :

Une ligne par produit

Exemples de colonnes :

Catégorie de produit, chiffre d'affaires, bénéfice

Étude de cas : créer des modèles de données e-commerce avec dbt

Data marts e-commerce Looker

Un graphe orienté acyclique montrant toutes les sources et modèles dbt et leurs relations ; les sources sont en vert, les modèles et marts en bleu.

Étude de cas : créer des modèles de données e-commerce avec dbt

Construction étape par étape

Étape 1 : Affiner la logique SQL hors de dbt, puis remplacer les références par la syntaxe dbt.

Capture d'écran d'un fichier SQL exemple avec diverses CTE.

Étape 2 : Mettre en place des tests et de la documentation

Capture d'écran d'un fichier YAML de modèles dbt avec descriptions de table et de colonnes pour un modèle dbt

Étape 3 : Tester le build ! (ex. : dbt build)

Étude de cas : créer des modèles de données e-commerce avec dbt

Présentation des modèles snapshot dbt

Cinq statuts de commande :

Processing, Shipped, Complete, Cancelled et Returned

Exemple de données :

Aperçu du fichier de données des commandes contenant deux lignes et 9 colonnes. Noms de colonnes : order id, user id, status, gender, created at, returned at, shipped at, delivered at, et num of items.

Étude de cas : créer des modèles de données e-commerce avec dbt

Commandes : suivi des changements de statut

  • Créer le fichier orders_snapshot.sql
{% snapshot orders_snapshot %}
{{
    config(target_schema='main',
      unique_key='order_id',
      strategy='timestamp',
      updated_at='created_at')
}}

SELECT * 
FROM 
{{source('looker_ecommerce', 'orders')}}

{% endsnapshot %}
  • Exécuter un modèle snapshot spécifique
dbt snapshot -s orders_snapshot.sql
  • Exécuter tous les modèles snapshot
dbt snapshot
  • Exécuter tous les modèles (y compris les snapshots)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
Étude de cas : créer des modèles de données e-commerce avec dbt

Passons à la pratique !

Étude de cas : créer des modèles de données e-commerce avec dbt

Preparing Video For Download...