Big Data

Apache Airflow, fonctionnalités avancées

Objectifs de la formation

  • Comprendre en profondeur les éléments clés d'Airflow : son architecture et ses composants.
  • Se familiariser avec les différentes vues de l'interface utilisateur d’Airflow.
  • Configurer et utiliser des bases de données externes dans Airflow pour l’intégrer avec les sources de données.
  • Appliquer les configurations d'ordonnancement dans Airflow, pour garantir une exécution fiable des tâches.
  • Créer des workflows Airflow complexes avec des sous-workflows et gérer conditionnellement les tâches.
  • Maîtriser des fonctionnalités avancées d'Airflow pour optimiser les ressources et respecter des SLAs précis.
  • Intégrer des opérateurs différés et des poids de priorité pour une gestion efficace des flux de travail dans Airflow.
  • Ordonner un pipeline de données réelles avec Airflow en automatisant et optimisant les tâches.
  • Appliquer les bonnes pratiques d'Airflow pour optimiser la performance et la fiabilité des workflows en production


Programme de la formation

Intégration de bases de données externes dans les DAGs

  • Configuration de l'intégration des bases de données externes dans les DAGs
  • Définition des connexions à la base de données externe
  • Connexions dans les tâches du DAG via des opérateurs (SqliteOperator ou PostgresOperator)
  • Paramétrage des requêtes SQL pour extraire ou mettre à jour les données
  • Utilisation de variables pour stocker les identifiants de connexion

Travaux pratiques

Configurer une connexion à une base de données externe dans Airflow et écrire un DAG qui utilise SqliteOperator ou PostgresOperator pour exécuter une requête SQL simple.

Scheduling et planification avancée

  • Comprendre et appliquer les configurations d'ordonnancement dans Airflow, y compris les expressions cron, la gestion des délais et des retry, pour assurer une exécution fiable et à temps des tâches.
    • Expressions Cron
    • Dates de début et fin avec Start Date et End Date
    • Intervalles de planification avec Schedule Interval
    • Rattrapage de tâches avec Catchup
    • Nombre d'exécutions simultanées avec Max Active Runs
    • Exécutions manquées avec Backfill
    • Accords de niveau de service avec SLA
    • Gestion des fuseaux horaires avec Timezone
    • Logique de réessai avec Retry Logic
    • Délais d'exécution avec Timeouts
    • Déclencheurs dans la planification avec Triggers

Travaux pratiques

Configurer un DAG avec des paramètres de planification personnalisés, y compris le rattrapage et les déclencheurs, puis analyser son comportement à travers plusieurs cycles d'exécution.

Création de workflows complexes

  • Créer des workflows Airflow complexes avec des sous- workflows, la gestion conditionnelle des tâches, et des stratégies avancées de gestion d'erreurs et de passage de paramètres.
    • Structuration de sous-workflows avec SubDAGs
    • Orientation des flux selon conditions avec Branching
    • Règles d'exécution personnalisées avec Trigger Rules
    • Organisation de tâches similaires avec Task Grouping
    • Création dynamique de tâches avec Dynamic Task Generation
    • Transmission de paramètres entre tâches avec Parameter Passing
    • Gestion d'erreurs multi-niveaux avec Error Handling.

Travaux pratiques

Concevoir un workflow complexe utilisant SubDAGs, Branching, Trigger Rules, Task Grouping, et Error Handling pour simuler un processus métier conditionnel.

Fonctionnalités avancée pour des cas complexes

  • Maîtriser les fonctionnalités avancées d'Airflow pour gérer des cas d'utilisation complexes et dynamiques, optimiser les ressources et respecter des SLAs précis.
    • Dynamic Scheduling: Générer des horaires de tâches dynamiquement enfonction des données en temps réel.
    • Cross-DAG Dependencies: Permettre à un DAG d'en déclencher ou d'en attendre un autre.
    • DAG Versioning: Gérer différentes versions d'un même DAG pour tester de nouvelles fonctionnalités sans perturber les flux de production.
    • Trigger Rules : Personnaliser les règles de déclenchement au niveau des tâches pour des scénarios complexes.
    • Deferred Operators: Reporter l'exécution des tâches jusqu'à ce que certaines conditions externes soient remplies (pour une meilleure gestion des ressources).
    • SLAs: Définir des SLAs complexes, incluant des critères multiples et des actions conditionnelles en cas de non-respect.
  • Intégrer des opérateurs différés et des poids de priorité dans les tâches pour une gestion efficace des flux de travail et des ressources dans Airflow, tout en respectant des SLAs complexes.
    • Deferred Operators: Reporte l'exécution des tâches jusqu'à ce que certaines conditions externes soient remplies (pour une meilleure gestion des ressources).
    • SLAs: Définir des SLAs complexes, incluant des critères multiples et des actions conditionnelles en cas de non-respect.
    • Priority Weighting: Attribuer des poids de priorité aux tâches pour contrôler l'ordonnancement dans des environnements à ressources limitées.

Travaux pratiques

Créer un DAG qui utilise la planification dynamique, gère les dépendances entre différents DAGs, applique des règles de déclenchement personnalisées et utilise des opérateurs différés pour des conditions spécifiques. Implémenter un DAG qui utilise des opérateurs différés pour reporter des tâches, assigner des Priority Weights pour gérer la charge de travail, et configurer des SLAs avec des actions conditionnelles en cas de dépassement des seuils définis.

Construction d'un pipeline de données complet sur des données réelles

  • Maîtriser l'orchestration d'un pipeline de données avec Airflow, en se concentrant sur l'extraction, le traitement, et le chargement des données, en utilisant des opérateurs spécifiques pour automatiser et optimiser les tâches, de bout en bout.
    • Extraction des données : Utilisation de PythonOperator pour extraire des données depuis une API
    • Nettoyage des données : Implémentation d’une tâche Airflow Python pour dédoublonner et vérifier l'intégrité des données
    • Agrégation des données : Regrouper les données par périodes (journalière, hebdomadaire)
    • Chargement dans une base de données : Utilisation de SqlAlchemyOperator pour charger les données transformées dans une base de données SQL.
    • Rapport journalier : Générer un rapport quotidien des anomalies détectées en utilisant PythonOperator pour créer une vue synthétique.

Travaux pratiques

Configurer un pipeline dans Airflow qui exécute des tâches d'extraction de données via une API, de nettoyage des données, de calcul d'indicateurs, d'agrégation périodique, et de chargement dans une base de données, avec un reporting automatisé.

Bonnes pratiques Airflow et Optimisation en Production

  • Bonnes pratiques pour optimiser les performances et la fiabilité des workflows dans Airflow, y compris la gestion efficace de la concurrence et des échecs.
    • Minimiser les dépendances inter-DAGs
    • Utiliser des templates
    • Éviter les dépendances circulaires
    • Parallélisation des tâches
    • Gestion de concurrence
    • Gestion de la périodicité pour éviter les surcharges
    • Éviter les longs temps d'attente ou les blocages
    • Planifier la reprise après Échec

Travaux pratiques

Optimiser un DAG existant en appliquant les bonnes pratiques Airflow, telles que la minimisation des dépendances inter-DAGs et la planification de la reprise après échec.

Please login to get access to the quiz
Apache Airflow, prise en main (Prev Lesson)
(Next Lesson) Construire et orchestrer vos pipelines ELT avec DBT et Airflow
Back to Big Data