0% ont trouvé ce document utile (0 vote)
133 vues14 pages

Introduction au Data Engineering

Transféré par

fatima.bakkas2020
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
133 vues14 pages

Introduction au Data Engineering

Transféré par

fatima.bakkas2020
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 PDF, TXT ou lisez en ligne sur Scribd

Cours : Data Engineering

Issam El Alaoui - AIOX Labs

Contents
1 Introduction au Data Engineering 3
1.1 Définition et Importance . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Évolution du Data Engineering . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Compétences Clés du Data Engineer . . . . . . . . . . . . . . . . . . . . 3

2 Fondamentaux des Données 3


2.1 Types et Structures des Données . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Entrepôts de Données et Lacs de Données . . . . . . . . . . . . . . . . . 4
2.2.1 Comparaison Entrepôt vs Lac de Données . . . . . . . . . . . . . 4
2.3 Schémas de Données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3.1 Schéma en Étoile vs Schéma en Flocon de Neige . . . . . . . . . . 4

3 Collecte et Stockage des Données 4


3.1 Sources de Données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Techniques d’Ingestion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.1 Outils d’Ingestion de Données . . . . . . . . . . . . . . . . . . . . 5
3.3 Stockage des Données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.4 Gestion des Métadonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 Traitement et Transformation des Données 6


4.1 ETL (Extract, Transform, Load) . . . . . . . . . . . . . . . . . . . . . . 6
4.2 ELT (Extract, Load, Transform) . . . . . . . . . . . . . . . . . . . . . . . 6
4.3 Outils ETL et ELT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.4 Traitement des Big Data avec Spark . . . . . . . . . . . . . . . . . . . . 6
4.4.1 Exemple Pratique avec Spark en Python . . . . . . . . . . . . . . 6
4.5 Orchestration des Pipelines de Données . . . . . . . . . . . . . . . . . . . 7

5 Hygiène des Données 7


5.1 Métriques de Qualité des Données . . . . . . . . . . . . . . . . . . . . . . 7
5.2 Techniques de Nettoyage des Données . . . . . . . . . . . . . . . . . . . . 7
5.2.1 Exemple de Nettoyage des Données avec Pandas . . . . . . . . . . 8
5.3 Gouvernance des Données . . . . . . . . . . . . . . . . . . . . . . . . . . 8

6 Data Modeling 8
6.1 Concepts de Base du Data Modeling . . . . . . . . . . . . . . . . . . . . 8
6.2 Types de Modèles de Données . . . . . . . . . . . . . . . . . . . . . . . . 9
6.3 Normalisation et Dé-normalisation . . . . . . . . . . . . . . . . . . . . . 9

1
7 Intégration des Données 9
7.1 Techniques d’Intégration . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7.2 Gestion des Flux de Données . . . . . . . . . . . . . . . . . . . . . . . . . 9
7.3 Intégration dans le Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

8 Gouvernance et Sécurité des Données 9


8.1 Sécurité des Données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.2 Conformité Réglementaire . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.3 Gestion des Métadonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

9 Outils et Technologies de Data Engineering 10


9.1 Frameworks de Traitement des Données . . . . . . . . . . . . . . . . . . . 10
9.2 Bases de Données NoSQL . . . . . . . . . . . . . . . . . . . . . . . . . . 10
9.3 Outils de Stockage Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
9.4 Outils d’Orchestration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

10 Cloud Data Engineering 11


10.1 Services Cloud pour le Data Engineering . . . . . . . . . . . . . . . . . . 11
10.2 Architecture Cloud Native . . . . . . . . . . . . . . . . . . . . . . . . . . 11
10.3 Migration vers le Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

11 Data Visualization et BI 12
11.1 Importance de la Visualisation des Données . . . . . . . . . . . . . . . . 12
11.2 Outils de Visualisation et BI . . . . . . . . . . . . . . . . . . . . . . . . . 12
11.3 Intégration avec les Entrepôts de Données . . . . . . . . . . . . . . . . . 12

12 Cas d’Utilisation et Études de Cas 12


12.1 E-commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
12.2 Santé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
12.3 Finance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

13 Meilleures Pratiques en Data Engineering 13


13.1 Conception de Pipelines de Données Robustesse . . . . . . . . . . . . . . 13
13.2 Gestion des Performances . . . . . . . . . . . . . . . . . . . . . . . . . . 13
13.3 Sécurité et Conformité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

14 Exercices et Projets Pratiques 13


14.1 Projet 1 : Création d’un Pipeline ETL Simple . . . . . . . . . . . . . . . 13
14.2 Exercice 1 : Modélisation de Données . . . . . . . . . . . . . . . . . . . . 13
14.3 Projet 2 : Migration vers le Cloud . . . . . . . . . . . . . . . . . . . . . . 13

15 Conclusion 14

16 Références 14

2
1 Introduction au Data Engineering
1.1 Définition et Importance
Le Data Engineering est l’épine dorsale de la prise de décision basée sur les données. Il
s’agit d’un processus clé qui assure que les données brutes deviennent exploitables par
les analystes et les scientifiques des données. Cela comprend :

• La collecte de données à partir de diverses sources (bases de données, APIs, flux en


temps réel).

• La transformation des données en formats standardisés.

• Le stockage dans des entrepôts ou lacs de données pour une analyse efficace.

Exemple : Une entreprise de e-commerce peut utiliser le Data Engineering pour


collecter des données des ventes, des interactions utilisateurs, et des avis clients, les
transformer et les intégrer dans un tableau de bord pour suivre les performances.

1.2 Évolution du Data Engineering


Le Data Engineering a évolué avec l’augmentation exponentielle des données générées
par les entreprises. Initialement centré sur les bases de données relationnelles, il englobe
aujourd’hui des technologies de Big Data, des architectures distribuées et des outils de
cloud computing.

1.3 Compétences Clés du Data Engineer


• Maı̂trise des langages de programmation (Python, SQL, Java/Scala).

• Connaissance des systèmes de gestion de bases de données (SQL et NoSQL).

• Compréhension des architectures de traitement des données (ETL, ELT).

• Familiarité avec les outils de Big Data (Hadoop, Spark).

• Compétences en cloud computing (AWS, GCP, Azure).

• Connaissance des outils d’orchestration de workflows (Airflow, Luigi).

2 Fondamentaux des Données


2.1 Types et Structures des Données
Les données se présentent sous différentes formes :

1. Numériques : Exemple : Les températures (en degrés Celsius), les revenus (en
euros).

2. Catégoriques : Exemple : Types de clients (Standard, Premium).

3. Dates et Heures : Exemple : Timestamp pour l’enregistrement des transactions.

3
4. Non structurées : Images, vidéos, fichiers JSON.

5. Semi-structurées : XML, JSON, Avro.

2.2 Entrepôts de Données et Lacs de Données


• Entrepôt de données : Utilisé pour des analyses BI (exemple : Amazon Redshift,
Google BigQuery).

• Lac de données : Utile pour stocker des données brutes, non transformées (ex-
emple : AWS S3, Azure Data Lake).

2.2.1 Comparaison Entrepôt vs Lac de Données


Caractéristique Entrepôt de Données Lac de Données
Type de données Structurées Structurées, semi-structurées, non structurée
Usage principal BI et reporting Exploration des données et stockage brut
Performance Optimisé pour les requêtes rapides Optimisé pour le stockage massif
Schéma Schéma en lecture Schéma à la lecture

2.3 Schémas de Données


Deux types de schémas dominent les entrepôts :

• Schéma en étoile : Simplifie les requêtes SQL, idéal pour les rapports BI.

• Schéma en flocon de neige : Normalisé pour réduire la redondance des données.

2.3.1 Schéma en Étoile vs Schéma en Flocon de Neige


• Schéma en étoile : Une table de faits centrale connectée directement à des tables
de dimensions.

• Schéma en flocon de neige : Les tables de dimensions sont normalisées en sous-


dimensions.

3 Collecte et Stockage des Données


3.1 Sources de Données
Les sources incluent :

• Bases relationnelles (MySQL, PostgreSQL).

• APIs REST pour des données externes (exemple : https://jsonplaceholder.


typicode.com).

• Fichiers plats (CSV, JSON, XML).

• Flux en temps réel (Kafka, Kinesis).

• Bases de données NoSQL (MongoDB, Cassandra).

4
Exemple : Extraction de données via une API :
Listing 1: Exemple de requête API avec Python
import requests

url = " https :// jsonplaceholder . typicode . com / posts "


response = requests . get ( url )

# V r i f i c a t i o n du statut
if response . status_code == 200:
print ( " D o n n e s r c u p r e s : " )
print ( response . json () )
else :
print ( f " Erreur : { response . status_code } " )

3.2 Techniques d’Ingestion


• Batch : Par exemple, charger les données d’un fichier CSV tous les jours.

• Temps réel : Utiliser Kafka pour traiter des logs en temps réel.

• CDC (Change Data Capture) : Détecter les changements dans une base MySQL.

3.2.1 Outils d’Ingestion de Données


• Apache NiFi : Automatisation des flux de données.

• Talend : Intégration et gestion des données.

• Fivetran : Ingestion de données dans le cloud.

• StreamSets : Ingestion de données en temps réel.

3.3 Stockage des Données


• Bases de Données Relationnelles : MySQL, PostgreSQL, Oracle.

• Bases de Données NoSQL : MongoDB, Cassandra, Redis.

• Entrepôts de Données : Amazon Redshift, Google BigQuery, Snowflake.

• Lacs de Données : AWS S3, Azure Data Lake, Google Cloud Storage.

3.4 Gestion des Métadonnées


Les métadonnées décrivent les données et facilitent leur gestion et leur utilisation. Des
outils comme Apache Atlas ou AWS Glue peuvent être utilisés pour gérer les métadonnées.

5
4 Traitement et Transformation des Données
4.1 ETL (Extract, Transform, Load)
Le processus ETL implique :

• Extraction des données des sources.

• Transformation des données : Nettoyage, agrégation.

• Chargement dans un entrepôt ou un lac de données.

4.2 ELT (Extract, Load, Transform)


Alternativement à ETL, ELT charge d’abord les données brutes dans le stockage cible,
puis les transforme, souvent en utilisant la puissance de calcul de l’entrepôt de données.

4.3 Outils ETL et ELT


• Informatica : Outil ETL robuste et largement utilisé.

• Apache Spark : Traitement distribué pour ETL à grande échelle.

• Airflow : Orchestration de workflows ETL.

• dbt (Data Build Tool) : Transformation de données dans le cloud.

4.4 Traitement des Big Data avec Spark


Spark permet :

• Traitement par lots et en temps réel.

• Analyse SQL et exploration des données.

• Apprentissage automatique avec MLlib.

4.4.1 Exemple Pratique avec Spark en Python

Listing 2: Transformation de données avec PySpark


from pyspark . sql import SparkSession
from pyspark . sql . functions import col , sum

# Initialisation de Spark
spark = SparkSession . builder . appName ( " Da ta Tr an sf or ma ti on " ) .
getOrCreate ()

# Lecture de d o n n e s depuis un CSV


df = spark . read . csv ( " ventes . csv " , header = True , inferSchema = True )

# Nettoyage des d o n n e s : Suppression des doublons


df = df . dropDuplicates ()

6
# Transformation : Calcul du revenu total par produit
df = df . withColumn ( " Revenu_Total " , col ( " Prix_Unitaire " ) * col ( "
Q u a n t i t "))
revenu_par _p ro du it = df . groupBy ( " Produit " ) . agg ( sum ( " Revenu_Total "
) . alias ( " Total_Revenu " ) )

# Affichage des r s u l t a t s
revenu_par _p ro du it . show ()

4.5 Orchestration des Pipelines de Données


L’orchestration permet de gérer et d’automatiser les workflows de données.

• Apache Airflow : Planification et gestion des tâches ETL.

• Luigi : Orchestration de pipelines de données développée par Spotify.

• Prefect : Orchestration moderne avec une approche orientée flux de travail.

5 Hygiène des Données


5.1 Métriques de Qualité des Données
Les données doivent être :

• Complètes : Absence de valeurs manquantes.

• Cohérentes : Uniformité des formats et des valeurs.

• Exactes : Précision des données par rapport à la réalité.

• À jour : Actualité des données.

• Valides : Conformité aux règles de validation.

5.2 Techniques de Nettoyage des Données


• Détection et suppression des doublons.

• Gestion des valeurs manquantes (imputation, suppression).

• Standardisation des formats (dates, chiffres).

• Validation des contraintes (clés étrangères, plages de valeurs).

7
5.2.1 Exemple de Nettoyage des Données avec Pandas

Listing 3: Nettoyage des données avec Pandas


import pandas as pd

# Lecture de d o n n e s depuis un CSV


data = pd . read_csv ( ’ ventes . csv ’)

# Suppression des doublons


data = data . drop_duplicates ()

# Gestion des valeurs manquantes


data = data . fillna ({ ’ Prix_Unitaire ’: data [ ’ Prix_Unitaire ’ ]. mean ()
})

# Standardisation des dates


data [ ’ Date_Vente ’] = pd . to_datetime ( data [ ’ Date_Vente ’] , format = ’%
d /% m /% Y ’)

# Validation des d o n n e s
assert data [ ’ Q u a n t i t ’ ]. min () > 0 , " Q u a n t i t n gative
d tect e"

5.3 Gouvernance des Données


La gouvernance des données assure la gestion, la protection et la qualité des données au
sein d’une organisation.

• Sécurité des Données : Contrôle d’accès, chiffrement.

• Conformité Réglementaire : GDPR, HIPAA.

• Gestion des Métadonnées : Catalogues de données, dictionnaires de données.

• Ligne de Données : Traçabilité des données de leur origine à leur consommation.

6 Data Modeling
6.1 Concepts de Base du Data Modeling
Le data modeling est le processus de création de représentations abstraites des structures
de données nécessaires à une application.

• Modèle Conceptuel : Vue d’ensemble des entités et de leurs relations.

• Modèle Logique : Définition des tables, colonnes, types de données.

• Modèle Physique : Implémentation dans un SGBD spécifique.

8
6.2 Types de Modèles de Données
• Modèle Relationnel : Basé sur les tables et les relations.

• Modèle Dimensionnel : Optimisé pour les requêtes analytiques.

• Modèle NoSQL : Basé sur des documents, des colonnes, des graphes ou des clés-
valeurs.

6.3 Normalisation et Dé-normalisation


• Normalisation : Processus de structuration des données pour réduire la redon-
dance et améliorer l’intégrité (formes normales).

• Dé-normalisation : Ajout de redondance pour optimiser les performances des


requêtes.

7 Intégration des Données


7.1 Techniques d’Intégration
• Intégration de Données : Combinaison de données provenant de sources diverses.

• Federated Data Integration : Accès aux données en temps réel sans les déplacer.

• Data Virtualization : Accès unifié aux données sans réplication.

7.2 Gestion des Flux de Données


• ETL : Extraction, Transformation, Chargement.

• ELT : Extraction, Chargement, Transformation.

• Streaming : Traitement continu des données en temps réel.

7.3 Intégration dans le Cloud


• AWS Glue : Service d’intégration de données serverless.

• Google Cloud Dataflow : Pipeline de traitement de données en flux et par lots.

• Azure Data Factory : Orchestration des flux de données sur Azure.

8 Gouvernance et Sécurité des Données


8.1 Sécurité des Données
• Chiffrement des Données : En transit et au repos.

• Contrôle d’Accès : Gestion des permissions et des rôles.

• Audit et Traçabilité : Suivi des accès et des modifications des données.

9
8.2 Conformité Réglementaire
• GDPR (General Data Protection Regulation) : Réglementation européenne
sur la protection des données.

• HIPAA (Health Insurance Portability and Accountability Act) : Réglementation


américaine sur les informations de santé.

• CCPA (California Consumer Privacy Act) : Réglementation californienne sur


la confidentialité des consommateurs.

8.3 Gestion des Métadonnées


• Catalogues de Données : Centralisation des métadonnées pour faciliter la découverte
et l’accès.

• Dictionnaires de Données : Documentation des éléments de données et de leurs


définitions.

• Lignage des Données : Traçabilité des données depuis leur origine jusqu’à leur
utilisation finale.

9 Outils et Technologies de Data Engineering


9.1 Frameworks de Traitement des Données
• Apache Hadoop : Framework pour le stockage et le traitement distribué des
données.

• Apache Spark : Moteur de traitement rapide pour le Big Data.

• Apache Flink : Moteur de traitement de flux en temps réel.

9.2 Bases de Données NoSQL


• MongoDB : Base de données orientée documents.

• Cassandra : Base de données distribuée orientée colonnes.

• Redis : Base de données en mémoire clé-valeur.

9.3 Outils de Stockage Cloud


• Amazon S3 : Stockage d’objets scalable.

• Google Cloud Storage : Stockage d’objets hautement disponible.

• Azure Blob Storage : Stockage d’objets pour le cloud Azure.

10
9.4 Outils d’Orchestration
• Apache Airflow : Planification et gestion des workflows.

• Luigi : Orchestration des tâches développé par Spotify.

• Prefect : Orchestration moderne avec une approche orientée flux de travail.

10 Cloud Data Engineering


10.1 Services Cloud pour le Data Engineering
• AWS :

– Amazon Redshift : Entrepôt de données.


– AWS Glue : Service ETL serverless.
– Amazon Kinesis : Traitement de flux en temps réel.

• Google Cloud :

– Google BigQuery : Entrepôt de données.


– Google Dataflow : Pipeline de traitement de données.
– Google Pub/Sub : Service de messagerie en temps réel.

• Microsoft Azure :

– Azure Synapse Analytics : Entrepôt de données.


– Azure Data Factory : Orchestration des flux de données.
– Azure Stream Analytics : Traitement des données en temps réel.

10.2 Architecture Cloud Native


• Scalabilité : Utilisation des ressources à la demande.

• Résilience : Tolérance aux pannes et redondance.

• Sécurité : Intégration des meilleures pratiques de sécurité cloud.

10.3 Migration vers le Cloud


• Évaluation des Besoins : Analyse des exigences et des contraintes.

• Planification de la Migration : Stratégie de migration, outils et services.

• Exécution et Validation : Migration des données, tests et validation.

• Optimisation Post-Migration : Optimisation des coûts et des performances.

11
11 Data Visualization et BI
11.1 Importance de la Visualisation des Données
La visualisation des données permet de transformer les données complexes en représentations
graphiques faciles à comprendre, facilitant ainsi la prise de décision.

11.2 Outils de Visualisation et BI


• Tableau : Outil de visualisation interactif.

• Power BI : Outil de business intelligence de Microsoft.

• Looker : Plateforme de BI et d’exploration de données.

• Grafana : Visualisation des métriques en temps réel.

11.3 Intégration avec les Entrepôts de Données


Les outils de BI se connectent aux entrepôts de données pour extraire et visualiser les
données. Par exemple, Tableau peut se connecter à un entrepôt Snowflake via ODBC.

12 Cas d’Utilisation et Études de Cas


12.1 E-commerce
• Analyse des comportements d’achat.

• Optimisation des stocks.

• Personnalisation des recommandations produits.

12.2 Santé
• Analyse des dossiers patients.

• Prévision des épidémies.

• Optimisation des ressources hospitalières.

12.3 Finance
• Détection des fraudes.

• Gestion des risques.

• Analyse des portefeuilles d’investissement.

12
13 Meilleures Pratiques en Data Engineering
13.1 Conception de Pipelines de Données Robustesse
• Modularity : Décomposition des pipelines en modules réutilisables.
• Idempotence : Assurer que les opérations peuvent être répétées sans effets sec-
ondaires.
• Monitoring : Surveillance continue des pipelines.
• Documentation : Documentation claire et complète des pipelines.

13.2 Gestion des Performances


• Optimisation des requêtes SQL.
• Utilisation des index et partitions.
• Mise en cache des données fréquemment accédées.

13.3 Sécurité et Conformité


• Chiffrement des données sensibles.
• Gestion des accès basés sur les rôles.
• Respect des réglementations en vigueur.

14 Exercices et Projets Pratiques


14.1 Projet 1 : Création d’un Pipeline ETL Simple
• Collecter des données depuis une API publique.
• Nettoyer et transformer les données.
• Charger les données dans une base de données SQL.
• Visualiser les données avec un outil BI.

14.2 Exercice 1 : Modélisation de Données


• Créer un modèle en étoile pour une base de données de ventes.
• Définir les tables de faits et de dimensions.

14.3 Projet 2 : Migration vers le Cloud


• Migrer un entrepôt de données local vers Amazon Redshift.
• Mettre en place des pipelines de données avec AWS Glue.
• Configurer des tableaux de bord dans Amazon QuickSight.

13
15 Conclusion
Le Data Engineering est un domaine essentiel qui permet aux organisations de tirer parti
de leurs données pour prendre des décisions éclairées. En maı̂trisant les concepts, les
outils et les meilleures pratiques présentés dans ce cours, vous serez bien équipé pour
concevoir et gérer des pipelines de données robustes et efficaces.

16 Références
• Books :

– Designing Data-Intensive Applications de Martin Kleppmann.


– The Data Warehouse Toolkit de Ralph Kimball.

• Online Resources :

– https://www.apache.org/
– https://spark.apache.org/
– https://airflow.apache.org/

14

Vous aimerez peut-être aussi