Galerie de cartes mentales Demo dbt
La démo DBT commence par la création d'un projet vide et explore le contenu d'initialisation pour aider les utilisateurs à devenir des utilisateurs avancés de DBT. Ensuite, Connectez la base de données et lancez une démonstration qui montre étape par étape la puissance et la flexibilité de DBT. Grâce à des actions pratiques et des explications, le public peut comprendre DBT en profondeur, maîtriser ses techniques d'utilisation et améliorer l'efficacité du développement.
Modifié à 2024-01-29 09:13:08La démo DBT commence par la création d'un projet vide et explore le contenu d'initialisation pour aider les utilisateurs à devenir des utilisateurs avancés de DBT. Ensuite, Connectez la base de données et lancez une démonstration qui montre étape par étape la puissance et la flexibilité de DBT. Grâce à des actions pratiques et des explications, le public peut comprendre DBT en profondeur, maîtriser ses techniques d'utilisation et améliorer l'efficacité du développement.
The "Architecte DATA/Data Engineer" mind map navigates the dynamic intersection of data architecture and engineering within the realm of information technology. This map serves as a guide for data professionals, architects, engineers, and individuals seeking insights into the strategic planning, design, and implementation of robust data systems.
BI@CAFAT Les cartes mentales couvrent de nombreux aspects. Les études de cas sont la base et découvrent des problèmes et des lois grâce à des analyses de cas pratiques. La conception architecturale garantit la stabilité du système, les outils et la technologie fournissent un soutien. L'entrepôt de données stocke de grandes quantités de données et ETL / ELT est responsable du traitement et de la conversion des données. Enfin, les résultats de l'analyse sont présentés par le biais de rapports qui fournissent une base pour la prise de décision et permettent une articulation efficace entre l'analyse des données et les décisions commerciales.
La démo DBT commence par la création d'un projet vide et explore le contenu d'initialisation pour aider les utilisateurs à devenir des utilisateurs avancés de DBT. Ensuite, Connectez la base de données et lancez une démonstration qui montre étape par étape la puissance et la flexibilité de DBT. Grâce à des actions pratiques et des explications, le public peut comprendre DBT en profondeur, maîtriser ses techniques d'utilisation et améliorer l'efficacité du développement.
The "Architecte DATA/Data Engineer" mind map navigates the dynamic intersection of data architecture and engineering within the realm of information technology. This map serves as a guide for data professionals, architects, engineers, and individuals seeking insights into the strategic planning, design, and implementation of robust data systems.
BI@CAFAT Les cartes mentales couvrent de nombreux aspects. Les études de cas sont la base et découvrent des problèmes et des lois grâce à des analyses de cas pratiques. La conception architecturale garantit la stabilité du système, les outils et la technologie fournissent un soutien. L'entrepôt de données stocke de grandes quantités de données et ETL / ELT est responsable du traitement et de la conversion des données. Enfin, les résultats de l'analyse sont présentés par le biais de rapports qui fournissent une base pour la prise de décision et permettent une articulation efficace entre l'analyse des données et les décisions commerciales.
Demo dbt
Création d'un projet dbt vide
Création d'un dossier de travail
(option) Création d'un environnement de travail (option) Installation des packages indispensables
Initialisation du projet dbt
Vérification de la configuration initiale
Ouverture avec VScode du projet
(option) installer le package dbt poweruser
(option) S'assurer d'être dans le bon environnement python sur VSCode
*Exploration du projet initialisé et dbt power user
IMPORTANT : TOUT SE FAIT EN SQL SUR DBT. TOUT FICHIER SERA SQL (sauf pour la documentation, les paramétrages, les sources de données, etc...). CHAQUE NOM DE FICHIER SANS EXTENSION SE RETROUVERA MATERIALISE DANS LA DB
Suite au debug 2 ERRORS importantes sont à noter
profiles.yml
Va nous permettre de créer nos connexion à nos bases de données
dbt_project.yml
Va récupérer les informations de profile sur le profiles.yml, initialiser et indexer les dossiers qui suivent pour réaliser les transformations de données (et bien plus encore)
Avec l'extension "dbt power user" (dbt pu), lorsque l'on ouvre le fichier dbt_project.yml, on peut voir les messages d'erreurs liées à la configuration
Nom du projet et profile associé. Ces métadonées sont utile spour le versionning et peuvent aussi être utilisées à travers d'autres projets dbt pour par exemple tendre vers une orientation "data product"
Emplacement des dossiers qui vont contenir différents fichiers sql à des fins différnetes clean_target = on peut purger ce qui a été généré par dbt (utilisé pour la documentation, entre autres) pour repartir de 0
configuration des fichiers .sql qui seront matérialisés en db. Ici les fichiers du dossier models / example / *.sql seront matérialisés en view obligatoirement
Quand on initialise un projet, le profiles.yml n'existe pas, il n'y a que le dbt_projet.yml. il sera toujours impossible de trouver le profile avec le "nom projet du initialisé", il faut le créer manuellement pour la connexion à la DB. Et çà pour toutes bases de données
L'ensemble des répertoires mis à disposition suite à une initialisation de projet via dbt
analyses
Requêtes customs qui pourront être utilisées via d'autres acteurs, sans persistence vers la db finale
macros
Basées sur du Jinja2 et du SQL, permettent d'utiliser des bouts de codes SQL dans des fonctions. Elles seront introduites dans le code SQL compilé par dbt. Comme des fonctions ou des procédures, elles permettent d'avoir du code DRY
seeds
Ensemble de fichier csv pouvant être directement intégré dans la db
snapshots
Snapshot de données persistée en fonction de critère. Intéresants pour les SCD de dimensions par exemple.
tests
Script de tests qui pourront être exécutées distinctement des exécutions des tables. Permet d'avoir un état des lieux de ses tables et/ou de mesurer l'observabilité des données sur des données d'une couche Bronze
models : le dossier le plus important
Dès la première génération de projet dbt, nous nous retrouvons avec un exemple. il y aura 2 entités qui seront matérialisées dans notre db. il existe 4 types de matérialisations avec dbt : - VIEW / TABLE -> Tout le monde connaît pour le model.sql - SNAPSHOT / INCREMENTAL : ----Snapshot = équivalent SCD pour le model.sql avec des règles en fonction des colonnes uniques, de date d'update, etc... ----Incremental = ajout de ligne dans le model.sql avec des règles en fonction des colonnes uniques, de date d'update, etc...
my_first_dbt_model.sql Sera matérialisée en table
my_second_dbt_model.sql Sera matérlalisée en view
schema.yml Métadonnées des modèles
Connexion à la DB
Créer un fichier profiles.yml dans le même répertoire que dbt_projects.yml
Pour dbt-duckdb : https://github.com/duckdb/dbt-duckdb
Pour les extensions, on en parlera plus tard. Lorsqu'il s'agira de duckdb
*duckdb pouvant agir comme une base memory, nous allons forcer l'utiliser d'une db locale qui sera /tmp/demo.db (path) et l'appliquer sur notre "profile" demo
Check de connexion
Lancement de la démo
Lors du 1er run après, on peut voir qu'il y a 1 view et 1 table qui ont été créées
On s'assure que c'est vrai :p
(option) Connexion à /tmp/demo.db via dbeaver
via l'exécutable duckdb
*Apparition du dossier target dans notre Explorateur de Dossier VSCode
Résumé grossier
On a notre documentation et lignée de données
Lancement du serveur de documentation à partir du projet dbt
Description des éléments provenant des fichiers schema.yml, d'un reverse enginering de la db /tmp/demo.db
Vision des requêtes par rapport à leur dépendance
Autres fonctionnalités (oral)