0% ont trouvé ce document utile (0 vote)
51 vues8 pages

Guide de référence pour Airflow et dbt

Ce document présente un guide sur des outils et concepts liés aux entrepôts de données, notamment Apache Airflow pour l'orchestration de workflows, Apache Superset pour l'exploration de données, et dbt pour la transformation des données. Il décrit les composants clés d'Airflow, tels que les DAGs, les opérateurs, et les commandes essentielles pour la gestion des workflows. Des commandes spécifiques pour Superset, dbt et PostgreSQL sont également fournies pour faciliter leur utilisation.

Transféré par

Khawla khawla
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
51 vues8 pages

Guide de référence pour Airflow et dbt

Ce document présente un guide sur des outils et concepts liés aux entrepôts de données, notamment Apache Airflow pour l'orchestration de workflows, Apache Superset pour l'exploration de données, et dbt pour la transformation des données. Il décrit les composants clés d'Airflow, tels que les DAGs, les opérateurs, et les commandes essentielles pour la gestion des workflows. Des commandes spécifiques pour Superset, dbt et PostgreSQL sont également fournies pour faciliter leur utilisation.

Transféré par

Khawla khawla
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Data Warehouse TP Cheat Sheet

Airflow ***
Apache Airflow est une plateforme open-source de gestion et d’orchestration de workflows.
Elle est conçue pour planifier, organiser et surveiller des workflows complexes de manière
programmable.

DAG ***
Un DAG, ou Directed Acyclic Graph, représente un ensemble de tâches avec des
dépendances définies, organisées à refléter leur séquence d’exécution sans boucles.

Superset *
Apache Superset est une plateforme d’exploration de données open source qui permet aux
utilisateurs de visualiser et d’analyser des données de manière interactive.

dbt *
`dbt` (data build tool) est un outil en ligne de commande qui permet aux analystes et
ingénieurs de données de transformer des données dans leur Data Warehouse en utilisant
SQL.
Sa principale fonction est de faciliter la transformation des données (la partie “T” de l’ETL)

Architecture d’Airflow
Airflow Scheduler **

Le scheduler orchestre l’exécution des tâches en fonction de leur planification et leurs


dépendances. Il surveille les DAGs pour déclencher les tâches dès que leurs critères de
planification et leurs dépendances sont satisfaits.

Airflow Webserver **

Le serveur web fournit une interface utilisateur d’Airflow, permettant aux utilisateurs de
visualiser et de gérer les DAGs, les tâches, les logs, et la configuration du système

Meta Database

Stocke l’état de tous les DAGs et tâches, ainsi que les informations d'exécution, les
informations sur les utilisateurs, les logs, et d'autres données.
( Dans notre cas, on a utilisé SQLite dans un premier temps puis on a basculé vers
PostgreSQL dans TP2 )

Executor

L'Executor est le composant qui exécute réellement les tâches.


Airflow propose différents types d’executors comme `SequentialExecutor` (l'executor par
défaut et le plus simple. Il exécute une seule tâche à la fois) , `LocalExecutor` (permet une
exécution parallèle des tâches sur le même hôte.) ,etc…

Composants clés d’Airflow

Operator *

Un Operator représente une tâche unique dans un workflow. C'est une classe Python qui
définit une opération spécifique à exécuter. Comme:

 BashOperator: pour éxecuter des commandes Bash


 PythonOperator: pour éxecuter des fonctions Python

Sensor *
Un Sensor (Capteur) est un type spécial d'opérateur dont le but est d'attendre qu'une
certaine condition soit remplie. Comme:

 FileSensor: attend l’existence d’un fichier dans un système de fichiers.

Hook *
un interface pour se connecter à des services externes, des bases de données ou d'autres
systèmes. Comme PostgresHook

XCom *
XCom “Cross-Communication”, est une fonctionnalité qui permet aux tâches de
communiquer entre elles en partageant des données.

Lorsqu’une tâche dans un DAG s’exécute, elle peut envoyer un message XCOM qui contient
des données en les “poussant” dans la BD. Une autre tâche peut ensuite “tirer” ces données
pour son propre usage.

Quelques commandes d’Airflow **


airflow db
init

Initialise la base de données d’Airflow. Elle crée toutes les tables nécessaires les
configurations initiales dans la base de données spécifiée dans le fichier de configuration
d’Airflow `[Link]`

airflow scheduler
-D

Cette commande lance le planificateur (scheduler), l’option -D signifie que l'exécution sera
en arrière plan (Vous pouvez donc continuer d’utiliser cette instance du terminal sans
interrompre le scheduler)

airflow
webserver

Cette commande lance le web server. Par défaut, il occupe le port 8080. Vous pouvez
utiliser l’option -p pour changer le port (ex: airflow webserver -p 8090).

airflow users create \


--username airflow-user
\
--firstname airflow-
user \
--lastname airflow-user
\
--role Admin \
--password pass1234 \
--email
test@[Link]

Cette commande permet de créer un nouvel utilisateur dans l’interface utilisateur web
d’Apache Airflow avec les champs spécifiées dans la commande.

Exploration du DAG
 `dag_id` : identifiant unique pour le DAG
 `default_args`: dictionnaire des arguments par défaut qui seront appliqués à chaque
tâche du DAG
 `description`: description du DAG, utile pour documenter le but et le fonctionnement
du DAG
 `schedule_interval`: la fréquence à laquelle le DAG doit être exécuté. Dans ce cas, le
DAG devrait s'exécuter chaque jour
 `start_date`: la première date à laquelle le DAG devrait commencer à s'exécuter
 `catchup`: si réglée sur `True`, Airflow va créer et planifier des instances de tâches
manquées pour tous les intervalles entre la `start_date` et la date actuelle, selon la
périodicité définie dans `schedule_interval`
 `tags`: permet de catégoriser et de filtrer les DAGs dans l’interface utilisateur
d’Airflow

Exemple expliqué du DAG


Voir la vidéo `Exemple DAG` dans le même dossier
Exemple DAG.mp4

Quelques commandes de Superset *

superset db
upgrade

mise à niveau de la base de données de Superset

superset fab create-


admin

Créer un utilisateur administrateur dans la base de données


superset
load_examples

Charger des exemples de données

superset
init

Créer les rôles et les permissions par défaut

superset run -p 8088 --with-threads --reload --


debugger

Démarrer le server web de Superset

Quelques commandes et concept de dbt

dbt
init

Initialiser un projet dbt

profiles.y
ml

Fichier de configuration de `dbt`, contient par exemple les informations pour se connecter à
la BD
dbt
debug

valider la configuration de votre projet dbt et de vérifier la connexion à la base de données

[Link]
l

un fichier de configuration utilisé pour définir la structure et la documentation des colonnes


de vos modèles de données

dbt run --project-dir


path/to/project

Commande utilisée pour lancer le modèle dbt

Quelques commandes de postgres

sudo -u postgres psql -U user -d database -h localhost -


p 5432

Cette commande permet de se connecter à la base de données PostgreSQL `database` en


utilisant l’utilisateur `user` avec un hôte `localhost` et un port `5432`

sudo -u postgres psql -U user -d database -h localhost -p 5432 -f


[Link]

Le fait d’ajouter une option avec -f permet d'exécuter un fichier sql spécifié après `-f`

Vous aimerez peut-être aussi