Fermer

septembre 17, 2024

Création de pipelines ETL de données efficaces : principales bonnes pratiques [Part-2]

Création de pipelines ETL de données efficaces : principales bonnes pratiques [Part-2]


Dans la première partie des pipelines de données ETL, nous avons exploré l’importance des processus ETL et de leurs composants principaux, et discuté des différents types de pipelines ETL. Maintenant, dans cette deuxième partie, nous allons approfondir certains des principaux défis rencontrés lors de la mise en œuvre des pipelines ETL de données, décrire les meilleures pratiques pour optimiser ces processus et discuter des pipelines de données ETL pour les tables dim et fact.

Défis liés à la mise en place d’un pipeline ETL

Même si les pipelines ETL gèrent efficacement diverses données, leur création et leur maintenance peuvent s’avérer difficiles. Des facteurs clés tels que le format, le volume et la vitesse des données doivent être pris en compte. Les composants critiques de l’ETL sont essentiels, mais s’ils ne sont pas correctement analysés, ils peuvent devenir des défis importants.

Certains des défis sont énumérés ci-dessous.

    1. Défis liés aux données

      • Date des informations personnelles – Puisqu’il peut y avoir plusieurs sources de données, chacune peut contenir des informations différentes. Certaines d’entre elles peuvent être des informations personnelles identifiables (PII). Avoir un contrôle granulaire sur les données peut aider à identifier et éliminer ces informations.
        Date des informations personnelles

        Date des informations personnelles

      • Variété de données – Lorsqu’il s’agit de différents formats de données (structurés, semi-structurés et non structurés), il faut être capable d’utiliser des outils et des techniques spécifiques pour les gérer efficacement.
      • Données sales – Chaque fois que des données sont reçues, il y a de fortes chances qu’elles soient sales et doivent être nettoyées avant d’être traitées. Les données peuvent contenir des valeurs inexactes, manquantes ou obsolètes qui doivent être prises en compte car cela peut affecter l’entreprise et ses rapports.
        Données sales

        Données sales

    2. Défis d’intégration des données

      • Sources de données variées : L’un des problèmes initiaux rencontrés lors de la mise en place des pipelines est qu’aujourd’hui, etl ne se limite pas à une seule source de données et doit être récupéré à partir de plusieurs sources et de formats de données variés (structurés, semi-structurés, non structurés). Il est essentiel d’identifier ces sources et d’utiliser les outils et techniques appropriés.
      • Incompatibilités de schéma : À mesure que les sources de données ont augmenté, il est facile de faire face à des problèmes de non-concordance de schéma lors de leur intégration. Soit certains champs peuvent être manquants, soit une colonne particulière peut être d’un type de données différent, ce qui entraîne des conflits.
    3. Défis d’évolutivité

      • Volume et vitesse des données – À mesure que les données augmentent, les pipelines de données doivent être capables de s’adapter et de traiter les données pour garantir un fonctionnement fluide.
      • Frais généraux de performance et de coûts – Les pipelines de données peuvent produire les résultats souhaités dès les étapes initiales, mais peuvent entraîner une surcharge de performances et une augmentation des coûts s’ils ne sont pas mis en œuvre correctement. Ces 2 aspects doivent être pris en compte lors de la création d’un pipeline de données.
      • Traitement parallèle – Le traitement parallèle est l’un des termes largement utilisés dans le monde des données, mais s’il n’est pas mis en œuvre correctement, il peut entraîner une inexactitude des données. Choisir entre des pipelines à mise à l’échelle automatique et des clusters autogérés peut entraîner différents coûts monétaires ainsi que différentes pratiques de mise en œuvre.

Meilleures pratiques et directives ETL pour l’entreposage de données

1. Limitez la quantité de données entrantes à traiter.

      • Seules les données nouvelles ou ayant subi des modifications doivent être filtrées pour le pipeline.
      • Le pipeline doit se concentrer sur l’optimisation de la saisie des données afin de minimiser le volume de données.
      • Cela réduira les ressources et les coûts requis pour le pipeline.
      • L’ELT deviendra plus rapide car il devra effectuer moins de calculs et de transformations.
      • Plus facile à déboguer et à maintenir la qualité et l’exactitude des données.
      • La récupération est plus facile car seul un sous-ensemble des données sera perturbé.

2. Les tables de dimensions doivent être traitées avant les tables de faits.

      • La table de dimensions (informations sur les attributs/entités) doit être chargée avant la table de faits (données transactionnelles).
      • La table de faits comporte des colonnes qui font référence à la table de dimensions. Ainsi, pour maintenir l’exactitude des données, cette règle doit être suivie. Cela garantira que les données de référence nécessaires sont disponibles pour la table de faits.
      • Ne pas tenir compte de cette pratique peut conduire à des données incorrectes ou incomplètes dans l’entrepôt. Cela peut augmenter des valeurs inexistantes dans les tables de faits.
      • Cela garantit également que les données de transaction font correctement référence à la version à jour des informations de dimension.

3. Possibilités de traitement parallèle.

        • Cela fait référence au traitement d’un groupe de tâches indépendantes en parallèle plutôt que les unes après les autres pour rendre le pipeline plus rapide.
        • Il permet une meilleure utilisation des ressources en répartissant la charge de travail.
        • Cela réduit également le scénario d’un goulot d’étranglement si les tâches ne dépendent pas les unes des autres.
        • Cela augmente également la tolérance aux pannes, car l’échec d’une tâche n’empêchera pas le chargement d’autres données indépendantes.

4. Maintenir un catalogue de données

      • Un catalogue de données est un référentiel central pour stocker toutes les informations concernant les données du système. Il comprend les propriétaires de données, les métadonnées, les informations d’attribut et d’autres éléments.
      • Cela aide à une meilleure compréhension et organisation du système de données.
      • Cela facilite la transition en douceur d’un nouvel utilisateur vers le système.
      • Cela ne laisse aucune place à la confusion ou à l’incompréhension entre les différents utilisateurs.

5. Limiter les données pour les utilisateurs finaux

      • Certaines données, telles que les informations personnelles ou confidentielles, peuvent ne pas convenir au partage avec tous les utilisateurs finaux. Pour contrôler l’accès, des tables de destination distinctes doivent être créées pour différents groupes d’utilisateurs.
      • L’accès à chaque destination finale doit être strictement contrôlé et hautement spécifique.
      • L’emplacement de stockage final, qu’il s’agisse d’un stockage cloud ou d’un entrepôt de données, ne doit contenir que les données pertinentes pour le cas d’utilisation spécifique.

Tableau des dimensions ETL

Voici les meilleures pratiques lors du traitement des tables de dimensions :

Étape 1 : Préparation des données

      • Change Data Capture (CDC) : conservez un horodatage des données de transaction pour déterminer si les données ont changé ou non.
      • Journaux de base de données : extrayez les journaux qui représentent les modifications dans les tables et préparez les données pour le traitement à l’aide de ces journaux. C’est un peu complexe car cela nécessite de comprendre et d’analyser les informations de modification des journaux.
      • Analyse et comparaison de la base de données : apportez un grand sous-ensemble, puis comparez-le avec la base de données actuelle pour détecter les enregistrements modifiés, puis mettez à jour le DWH à partir de celle-ci.

Étape 2 : Transformation des données

      • Unification des données : les données sont capturées à partir de plusieurs sources qui ont des structures différentes. Il doit être modélisé dans une structure unique pour une meilleure analyse et un meilleur reporting. Ceci est important pour maintenir la cohérence des données.
      • Unification du type et de la taille des données : il s’agit de garantir que les données sont alignées avec le système en aval afin d’éviter toute défaillance du pipeline ou problème de reporting.
      • Déduplication : suppression des doublons des données pour réduire la redondance.
      • Découpage vertical : nécessité de supprimer les colonnes inutiles qui ne sont pas requises pour le cas d’utilisation. Cela facilite également le pipeline car cela permet d’économiser du temps et des ressources.
      • Découpage horizontal : nécessité de filtrer les données en fonction des cas d’utilisation spécifiques du datamart/de la table. Remplir des données inutiles qui ne répondent pas aux critères ne sert à rien.
      • Correction des erreurs connues : ETL doit résoudre les problèmes de qualité des données connus de l’équipe.

Étape 3 : Traiter les nouvelles lignes de dimension

      • Les nouvelles lignes doivent d’abord être ajoutées aux tableaux avant de modifier celles existantes.

Étape 4 : Traiter les modifications SCD de type 1

      • Les données existantes seront écrasées par de nouvelles données. Il s’agit d’une mise à jour sur place.
      • Pas de maintenance de l’historique. La table contiendra uniquement le dernier enregistrement.
      • Note: Si un changement de type 2 se produit avant le changement de type 1, alors plus d’une ligne sera nécessaire pour être mise à jour lorsque des changements de type 1 se produisent. Cela peut être fait à l’aide d’une clé naturelle/unique qui ne changera jamais pour l’entité.

Étape 5 : Traiter les modifications SCD de type 2

      • Cette règle crée une nouvelle ligne chaque fois qu’une modification a lieu pour cette entité. Il s’agit donc d’un ajout avec une clé de substitution.
      • L’historique sera conservé en créant un nouvel enregistrement pour chaque modification tout en gardant l’ancien enregistrement actif jusqu’à une date de fin spécifique.

Tableaux de faits ETL

Voici les meilleures pratiques à appliquer à chaque étape du traitement des tables de faits de l’entrepôt :

    1. Traiter tout le tableau des dimensions : Le tableau des dimensions doit être déjà mis à jour avant le fait pour maintenir les références et l’exactitude des données et éviter les incohérences.
    2. Les tables de faits fonctionnent en mode ajout. Les nouvelles lignes sont insérées dans les tableaux avec un référencement correct avec les tableaux dim.
    3. Il existe un cas qui nécessite un traitement spécial lors de l’ajout des données dans des tableaux de faits. Ci-dessous le scénario expliqué :
      • Il existe une table de variation de type SCD 2. Il contient 3 enregistrements pour une entité particulière. Lors de l’insertion d’une nouvelle ligne dans les tables de faits pour cette entité, nous devons être sûrs de la version de la table dim à laquelle elle appartient. Cela peut être fait en introduisant soit une colonne « indicateur actif », soit une colonne « date de début » et « date de fin » dans la table des dimensions. Une fois que nous pouvons mapper correctement la ligne de faits avec la version correcte de dim, nous pouvons charger avec précision les données dans la table de faits.

Conclusion

Comme nous l’avons vu, les pipelines de données ETL comportent leur propre ensemble de défis, mais en suivant les meilleures pratiques, ces obstacles peuvent être surmontés. Un pipeline ETL bien structuré est essentiel pour garantir un flux de données précis, opportun et fiable. En abordant à la fois les complexités et les solutions, nous espérons que cette série vous fournira les informations nécessaires pour créer des systèmes ETL efficaces.

VOUS TROUVEZ CECI UTILE ? PARTAGEZ-LE






Source link