Intégration des données et
ETL
Pourquoi est-il nécessaire de faire
l’intégration des données?
1. Sources diverses et disparates
2. Sources sur différentes plateformes et OS
3. Applications anciennes utilisant des BD et autres technologies obsolètes
4. Historique de changement non-préservé dans les sources
5. Qualité de données douteuse et changeante dans le temps
6. Structure des systèmes sources changeante dans le temps
7. Incohérence entre les différentes sources
Quelles sont les principales
approches d’intégration?
ETL (Extract Transform Load)
Data Warehouse + ETL
ELT (Extract Load Transform)
Data Lake + ELT
Data Warehouse + ETL ou
Data Lake + ELT
• Les ETL structurent les données, les organisent,
les filtrent en fonction des besoins de
l’entreprise. Toutes les données n’entrent pas
dans le DWH.
• Avec un ELT, les données qui arrivent dans le
Data Lake n’ont aucune organisation. Les
données sont triées, structurées, normalisées
après avoir été chargées.
• ETL extrait d’abord les données d’un ensemble de sources de données.
• Les données sont conservées dans une base de données temporaire (Staging Area).
• Des opérations de transformation sont ensuite effectuées pour structurer et convertir les données
en une forme appropriée pour le système Data Warehouse cible.
• Les données structurées sont ensuite chargées dans le Data Warehouse, prêtes à être analysées.
• Avec ELT, les données sont chargées immédiatement après avoir été extraites des ensembles de
données sources.
• Il n’y a pas de base de données temporaire, ce qui signifie que les données sont immédiatement
chargées dans le référentiel unique et centralisé.
• Les données sont transformées à l’intérieur du système Data Warehouse pour être utilisées avec
des outils de business intelligence et d’analyse.i
Datawarehouse vs DataLakes
Un Data Lake ou lac de Un entrepôt de
données données
• Repose sur une architecture • Recueille des données de
à plat permettant de stocker diverses sources, internes
une grande quantité de ou externes.
données brutes provenant • Permet de stocker des
de sources diverses. données historiques,
• Ces données peuvent structurées, non volatiles,
également être structurées, orientées objet.
non-structurées ou semi- • Les données doivent être
structurées pour une nettoyées et préparées
utilisation ultérieure avant d'être stockées.
Quelles sont les principales étapes
dans le développement du système
ETL?
Tâches et étapes de l'ETL
(6) Préparer le (7) Définir les
(1) Déterminer les
staging area et les procédures pour le
données nécessaires
outils d'assurance chargement de
à la solution de BI
qualité données
(2) Déterminer les
(5) Planifier les
sources internes et (8) ETL des tables de
agrégations de
externes renfermant dimension
données
ces données
(4) Définir les règles
(3) Définir les règles
de transformation et (9) ETL des tables de
d'extraction des
de nettoyage des faits
données cibles
données
Extraction des données
Identification des sources
1.Énumérer les items cibles (métriques et attributs de dimension) nécessaires à l'entrepôt de
données
2. Pour chaque item cible, trouver la source et l'item correspondant de cette source
3. Si plusieurs sources sont trouvées, choisir la plus pertinente
4. Si l'item cible exige des données de plusieurs sources, former des règles de consolidation
[Link] l'item source renferme plusieurs items cibles (ex: un seul champs pour le nom et
l'adresse du client), définir des règles de découpage
6. Inspecter les sources pour des valeurs manquantes
Extraction des données
Extraction complète Extraction incrémentale
• Capture l'ensemble des données à un • Capture uniquement les données qui
certain instant (snapshot de l'état ont changées ou ont été ajoutées
opérationnel); depuis la dernière extraction;
• utile dans deux situations: • Peut être faite de deux façons:
• Chargement initial des données; • Extraction temps-réel;
• Rafraîchissement complet des • Extraction différée (en lot).
données (ex: modification
d'une source).
• Peut être très coûteuse en temps (ex:
plusieurs heures/jours).
Comment peut-on extraire les
données qui ont changées
dans les sources?
• En temps-réel?
• En différé (lot)?
Extraction temps-réel
• S'effectue au moment où les transactions surviennent dans les systèmes sources.
• 3 solutions
Extraction temps-réel
Option 1: Capture à Option 2: Capture à Option 3: Capture à
l'aide du journal des l'aide de triggers l'aide des
transactions • Des procédures applications sources
• Utilise les logs de déclenchées (triggers) • Les applications sources
transactions de la BD sont définies dans la sont modifiées pour
servant à la BD écrire chaque ajout et
récupération en pour recopier les modification de
cas de panne; données à extraire dans données
• Aucune modification un fichier de sortie; dans un fichier
• Meilleur contrôle de la d'extraction;
requise à la BD ou
aux capture • Exige des modifications
sources; d'évènements; aux applications
• Doit être fait avant le • Exige de modifier les BD existantes;
rafraîchissement sources; • Entraîne des coûts
périodique du journal; • Pas possible avec les additionnels de
• Pas possible avec les systèmes anciens ou développement et de
systèmes anciens ou les les maintenance;
sources à base de sources à base de • Peut être employé sur
fichiers (il fichiers. des systèmes legacy
faut une BD et
journalisée). les systèmes à base de
fichiers.
Extraction différée
• Extrait tous les changements survenus durant une période donnée (ex:
heure, jour, semaine, mois).
Extraction différée
Option 1: Capture basée sur Option 2: Capture par
les timestamps comparaison de fichiers
• Une estampille (timestamp) • Compare deux snapshots
d'écriture est ajoutée à successifs des données
chaque ligne des sources;
systèmes sources; • Extrait seulement les différences
• L'extraction se fait uniquement (ajouts, modifications,
sur les données dont le suppressions) entre les deux
timestamp est plus récent que snapshots;
la dernière extraction; • Peut être employé sur des
• Peu fonctionner avec les systèmes systèmes anciens et les
anciens et les fichiers plats, systèmes à base de
mais peut exiger des fichiers, sans aucune
modifications aux modification;
systèmes sources; • Exige de conserver une copie de
• Gestion compliquée des l'état des données sources;
suppressions. • Approche relativement
coûteuse.
Considérations pratiques
• Choisir, pour chaque source, la fenêtre temporelle durant laquelle sera
faite l'extraction;
• Déterminer la séquence des tâches d'extraction;
• Déterminer comment gérer les exceptions.
Quelles sont les transformations à effectuer
sur les données sources avant de les charger
dans l’entrepôt?
Types de transformation:
Révision de format
• Ex: Changer le type ou la longueur de champs individuels.
Décodage de champs
• Consolider les données de sources multiples
• Ex: ['homme', 'femme'] vs ['M', 'F'] vs [1,2].
• Traduire les valeurs cryptiques
• Ex: 'AC', 'IN', 'SU' pour les statuts actif,
inactif et suspendu.
Pré-calcul des valeurs dérivées
• Ex: profit calculé à partir de ventes et coûts.
Découpage de champs complexes
• Ex: extraire les valeurs code postal, ville, gouvernorat et pays à partir d'une seule chaîne de
caractères adresse.
Fusion de plusieurs champs
• Ex: fusionner les champs prénom, secondPrénom et nomFamille en un seul nomComplet
Types de transformation
Conversion de jeu de caractères
• Ex: EBCDIC (IBM) vers ASCII.
Conversion des unités de mesure
• Ex: kelvin à Celsius, impérial à métrique.
Conversion de dates
• Ex: '24 FEB 2011' vs '24/02/2011' vs '02/24/2011'.
Pré-calcul des agrégations
• Ex: ventes par produit par semaine par région.
Déduplication
• Ex: Plusieurs enregistrements pour un même client.
Transformation des données
Problème de résolution d'entités:
• Survient lorsqu'une même entité se retrouve sur différentes sources, sans qu'on ait la
correspondance entre ces sources
• Ex: clients de longue date ayant un identifiant différent sur les différentes sources
• L'intégration des données requiert de retrouver la correspondance
• Approches basées sur des règles de résolution
• Ex: les entités doivent avoir au moins N champs identiques (fuzzy lookup/matching).
Problème des sources multiples:
• Survient lorsqu'une entité possède une représentation différente sur plusieurs sources
• Approches de sélection:
• Choisir la source la plus prioritaire;
• Choisir la source ayant l'information la plus récente.
Matrice de transformation
Chargement des données
Chargement initial: Chargement incrémental:
• Fait une seule fois lors de l'activation de • Fait une fois le chargement initial
l'entrepôt de données complété
• Les indexes et contraintes d'intégrité • Tient compte de la nature des
référentielle (clé étrangères) sont changements (ex: SCD Type 1, 2 ou
normalement désactivés temporairement 3)
• Peut prendre plusieurs heures • Peut être fait en temps-réel ou en lot
Rafraîchissement complet:
• Employé lorsque le nombre de
changements rend le
chargement incrémental
trop complexe
• Ex: lorsque plus de 20% des
enregistrements ont changé depuis
le dernier
chargement.
Chargement des données
• Considération additionnelles:
• Faire les chargements en lot dans une période creuse (entrepôt de
données non utilisé);
• Considérer la bande passante requise pour le chargement;
• Avoir un plan pour évaluer la qualité des données chargées dans
l'entrepôt;
• Commencer par charger les données des tables de dimension.
Exemples d’outils ETL