Data Engineering
Une formation de trois jours sur la construction de pipelines de données et d'infrastructures de traitement avec Python. Des formats de données et de la validation au traitement scalable et à l'intégration cloud.
Durée
3 jours (21 heures)
Format
50 pour cent présentation, 50 pour cent exercices
Prérequis
Solides fondamentaux Python requis, connaissances SQL de base recommandées
Supports
Machines virtuelles fournies, supports de cours électroniques
Jour 1 — Fondamentaux des données
Formats de données
- JSON : analyse, sérialisation, streaming avec ijson
- CSV : gestion avancée, problèmes d'encodage, stratégies pour les gros fichiers
- Parquet : stockage en colonnes, lecture et écriture avec pyarrow
- Avro : évolution de schéma, sérialisation binaire
Validation des données
- Pydantic : modèles, validateurs, sérialisation, gestion de la configuration
- Stratégies de validation de schéma pour les données entrantes
- Gestion des erreurs et rapports de qualité des données
Accès aux bases de données
- SQLAlchemy Core : engine, connexions, SQL brut, transactions
- SQLAlchemy ORM : modèles, sessions, relations, requêtes
- Drivers de base de données asynchrones : asyncpg, aiosqlite
- Introduction aux patterns ETL et ELT
Jour 2 — Conception de pipelines
Orchestration
- Apache Airflow ou Prefect : DAGs, tâches, planification, réessais
- Patterns de conception de pipelines : idempotence, points de contrôle, rattrapage
- Gestion des erreurs et alerting dans les pipelines
Transformation des données
- pandas : DataFrames, Series, groupby, merge, pivot
- Transformations avancées : fonctions fenêtre, agrégations personnalisées
- Optimisation mémoire : traitement par morceaux, dtypes, données catégorielles
Qualité des données et tests
- Tests de pipelines de données : fixtures, données simulées, assertions
- Contrôles de qualité des données : complétude, cohérence, fraîcheur
- Journalisation et supervision de l'exécution des pipelines
Jour 3 — Montée en charge
Traitement distribué
- Concepts de traitement distribué : partitionnement, brassage, agrégation
- Introduction à Dask pour les DataFrames parallèles
- Quand utiliser pandas vs Dask vs Polars
Intégration cloud
- Stockage cloud : lecture et écriture sur S3 et GCS
- Vue d'ensemble des services de pipelines cloud-natifs
- Bases de l'Infrastructure as Code pour les pipelines de données
Données en temps réel
- Concepts de streaming : producteurs, consommateurs, topics
- Travailler avec des message brokers depuis Python
- Bonnes pratiques et architecture de projet pour les projets data
Exercices pratiques
- Construction d'un pipeline de données complet de la source à la destination
- Implémentation de la validation des données et des contrôles de qualité
- Déploiement et supervision d'un pipeline
