Skip to content

AntoineGiraud/dbt_hypermarche

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Industrialisation données hypermarché 🛒

Objectif & mission

🎯 Objectif

Apprenez à transformer et industrialiser vos données avec dbt : un outil qui orchestre & rend vos requêtes SQL reproductibles, testées et documentées

🚀 Étapes du projet

  1. Cloner & préparer votre poste → cf. Installation
  2. Lancer un 1er dbt build → comprendre et corriger les erreurs (cf. commandes dbt)
  3. Migrer vos requêtes SQL du TD1 (input/) → 1 model = 1 .sql (sans ;) (dbt/models/xxx/)
  4. Documenter vos tables & colonnes → fichiers {_sources|_models}.yml
  5. Ajouter des tests techniques (pk, not null) & fonctionnels (règles métiers)
  6. Explorer la documentation et le lineage → dbt docs generate + dbt docs serve

hypermarche_flux_donnees

dbt docs catalog & lineage (url)

dbt lineage

dbt colibri column lineage view (url)

colibri column lineage

Resources

Outils

  • dbt-core enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications.
    dbt-core
  • git gestion de versions
  • VS Code Ă©diteur de code
  • uv extremely fast Python package & project manager, written in rust 🦀
  • DuckDB analytical in-process SQL database
  • DBeaver database Management Tool
  • dbt colibri column level lineage & documentation to your dbt projects (using SQLGlot)

Se former Ă  dbt & l'Analytics Engineering

Commandes dbt importantes

Commande RĂ´le
dbt ls Liste les modèles
dbt parse Vérifie syntaxe et validité
dbt compile Génère SQL à partir des modèles
dbt run Exécute les modèles (sans tests)
dbt test Lance uniquement les tests
dbt build Exécute modèles + tests
dbt build -s +stg_commande+ Construit stg_commande + parent & enfants
dbt retry Reprendre depuis la dernière erreur (run, build, test, compile, docs...)
dbt docs generate Génère la documentation
dbt docs serve Lance un serveur web pour explorer doc & lineage
colibri generate Générer le lineage à la colonne

Bonnes pratiques nommage des commit

Norme conventional commit : <type>(optional scope): <description>

type usage exemple đź’ˇ
feat nouvelle fonctionnalité visible ajout d’auth Google
fix correction de bug pagination API
docs changement de documentation mise Ă  jour README
style formatage sans impact logique indentation
refactor amélioration interne sans ajout ni bugfix simplification parsing
test ajout/modif de tests tests unitaires user
chore maintenance/config sans impact fonctionnel mise à jour dépendances, script CI

Installation

Récupérer les outils

  • git ou winget install --id Git.Git -e --source winget
    • Dire Ă  git qui vous ĂŞtes
      git config --global user.name "PrenomNom"
      git config --global user.email votresuper@email.fr
  • uv ou powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • DuckDB ou winget install DuckDB.cli
  • DBeaver ou windows store
  • VS Code ou windows store

Clone & setup local du projet

  • git clone https://github.com/AntoineGiraud/dbt_hypermarche.git
  • cd dbt_hypermarche se dĂ©placer dans le dossier rĂ©cupĂ©rĂ© avec git
  • uv sync
    • tĂ©lĂ©charge python si non prĂ©sent
    • initialise un environnement virtuel python (venv) si non prĂ©sent
    • tĂ©lĂ©charge les dĂ©pendances / extensions python
  • .venv/Scripts/activate.ps1 (unix source .venv/bin/activate)
    rendre dbt disponible dans le terminal
  • code . ouvrir dans VS Code le rĂ©pertoire courrant
  • Initialiser le hook git pre-commit (cf. 📹 vidĂ©o intro - 5min)
    • (option) uv tool install pre-commit --with pre-commit-uv : installation globale
    • uv run pre-commit install : initialiser le hook git
      • juste avec ça, sur les prochains fichiers Ă©ditĂ©s, ruff sera lancĂ© automatiquement
    • uv run pre-commit run --all-files : pour traiter TOUS les fichiers

About

Apprendre l'Analytics Engineering avec dbt & DuckDB 🦆 sur les commandes d'un hypermarché 🛒

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages