Table of Contents

Concepts de base de l'entreposage des données

Une bonne compréhension des fondamentaux de l'entreposage des données est la première chose que les intervieweurs évaluent. Vous devez non seulement définir des termes, mais aussi expliquer comment ils s'appliquent dans des scénarios réels.

Qu'est-ce qu'un entrepôt de données?

Un entrepôt de données est un dépôt centralisé qui stocke de grands volumes de données structurées et historiques provenant de systèmes sources multiples. Il est optimisé pour les requêtes et l'analyse plutôt que le traitement des transactions. Les entrepôts de données soutiennent des activités de renseignement d'affaires telles que la déclaration, les tableaux de bord et l'analyse ad-hoc.

Quelles sont les caractéristiques clés d'un entrepôt de données?

  • Subject-oriented:[ Organisé autour de sujets majeurs (p. ex. clients, produits, ventes) plutôt que de processus d'application.
  • Intégré: Les données provenant de sources disparates sont nettoyées, transformées et normalisées en un format cohérent.
  • Non-volatile:[ Les données sont en lecture seule une fois chargées; les changements historiques sont suivis par la version, et non pas par les écrasements.
  • Les données contiennent des attributs de dimension temporelle (p. ex., timbres de date, périodes) pour appuyer l'analyse historique.

Comment un entrepôt de données diffère-t-il d'un lac de données?

Un lac de données stocke des données brutes et non traitées dans son format natif (structuré, semi-structuré ou non structuré). Un entrepôt de données stocke des données traitées, nettoyées et structurées. Les organisations utilisent souvent à la fois le lac pour l'analyse exploratoire et l'apprentissage automatique, et l'entrepôt pour les rapports structurés.

Qu'est-ce qu'un Data Store opérationnel (ODS)?

Une base de données est conçue pour intégrer des données provenant de plusieurs systèmes opérationnels pour la déclaration en temps quasi réel. Contrairement à un entrepôt de données, la base de données est mise à jour fréquemment (souvent en temps réel) et ne conserve généralement pas d'instantanés historiques. Elle sert de zone de rassemblement pour la déclaration opérationnelle avant que les données ne soient transférées dans l'entrepôt de données.

Modélisation des données dans l'entreposage des données

La modélisation des données est le plan d'un entrepôt de données. Deux approches communes sont le schéma d'étoile et le schéma de flocons de neige.

Qu'est-ce qu'un schéma d'étoiles ?

Un schéma d'étoiles a une table de faits centrale liée à une ou plusieurs tables de dimensions via des clés étrangères. Les dimensions sont dénormalisées (par exemple, une table de dimensions de produit unique contenant la catégorie, la marque et la sous-catégorie).

Qu'est-ce qu'un schéma de flocons de neige?

Un schéma de flocons de neige normalise les tables de dimension en plusieurs tables connexes. Par exemple, une dimension produit peut être divisée en tables de produit, de marque et de catégorie distinctes. Bien que cela réduit la redondance des données, il augmente le nombre de jointures et peut ralentir les performances de la requête. Il est utilisé lorsque l'efficacité de stockage est prioritaire sur la vitesse de la requête.

Qu'est-ce qu'un tableau de faits? Quels sont les types de faits?

Un tableau d'information stocke des mesures quantitatives (p. ex., montant des ventes, quantité, bénéfice) et des clés étrangères qui relient les tableaux de dimension.

  • Transactionnel – enregistre les événements individuels (p. ex., chaque article de ligne de vente).
  • Snapshots periodiques – capture des mesures à intervalles réguliers (p. ex., niveaux d'inventaire quotidiens).
  • Snapshot accumulant – suit les processus avec un début et une fin fixes (p. ex., les étapes de réalisation de l'ordre).

Les intervieweurs peuvent vous demander de choisir le type de faits approprié pour un scénario d'affaires donné.

Qu'est-ce que les tableaux de dimensions? Expliquez les dimensions conformes.

Les tableaux de dimensions contiennent des attributs descriptifs (p. ex. nom du client, couleur du produit, emplacement du magasin). Les dimensions converties sont partagées entre plusieurs tableaux de faits dans un entrepôt de données ou entre différents marteaux de données. Elles assurent la cohérence afin que les rapports puissent être combinés de façon significative.

Les dimensions changent lentement (SCD)

La gestion des changements d'attributs de dimension au fil du temps est une compétence critique dans la conception de l'ETL.

Expliquer les dimensions changeant lentement de type 1, de type 2 et de type 3.

  • Type 1: Remplace l'ancienne valeur avec la nouvelle valeur. Aucune historique n'est conservée. Convient lorsque la précision historique n'est pas requise (p. ex. corriger une typo dans un nom de produit).
  • Type 2: Ajoute une nouvelle ligne pour suivre le changement, avec des plages de dates d'entrée en vigueur (date de début, date de fin) et un drapeau courant. Ceci préserve l'historique complet.
  • Type 3: Ajoute une nouvelle colonne pour stocker la valeur précédente tout en conservant la valeur courante. Cela permet une historique limitée (habituellement une version précédente). Utilisée pour les attributs qui changent rarement (p. ex., réalignement de la catégorie de produits).

Soyez prêt à discuter des compromis : le type 2 augmente le nombre de lignes, mais donne une piste de vérification complète; le type 1 est simple mais perd de l'historique.

Aperçu du processus ETL

Le processus de l'ETL est l'épine dorsale de l'intégration des données. Une compréhension approfondie de chaque phase et des défis communs est essentielle.

Expliquer en détail chaque étape de l'ETL.

Extrait: Les données sont tirées de différents systèmes sources — bases de données relationnelles, fichiers plats (CSV, JSON, XML), API, stockage en nuage ou plateformes de streaming. L'extraction peut être complète (toutes les données) ou progressive (seulement les enregistrements nouveaux/modifiés depuis le dernier essai).

Transformer: Les données sont nettoyées, validées et converties en un format cohérent.Les transformations comprennent:

  • Conversions de type de données (p. ex., chaîne à ce jour)
  • Déduplication et manipulation nulle
  • Application de la règle d'affaires (p. ex., calcul de la marge = revenu – coût)[
  • Agrégation et pivot
  • ]
  • ]
[[FLT:][FLT:]][FLT:][FLT:][FLT:][FLT:]][FLT:][FLT

Load: Les données transformées sont insérées dans l'entrepôt de données cible. Stratégies de chargement : mise à jour complète (troncate et recharge), appendice incrémental et mise à niveau (merger).

Quelle est la différence entre ETL et ELT?

ETL transforme les données avant de les charger dans l'entrepôt. ELT (Extract, Load, Transform) charge les données brutes d'abord et les transforme ensuite en utilisant la puissance de traitement de l'entrepôt de données (p. ex. SQL ou MapReduce). ELT est commun dans les entrepôts de données cloud modernes comme Snowflake, BigQuery et Redshift, où le stockage et le calcul sont découplés. ETL est toujours préféré lorsque les transformations nécessitent une logique opérationnelle complexe ou lorsque la qualité des données sources est faible.

Quels sont les outils de ETL communs?

Les outils les plus populaires sont Informatica PowerCenter, Talend, IBM DataStage, Microsoft SSIS, Apache NiFi et les services cloud-natifs comme AWS Glue, Azure Data Factory et Google Dataflow. Options open-source: Pentaho (Kettle), Apache Airflow (orchestration) et dbt (outil de compilation de données pour les transformations).

Questions courantes d'entrevue et réponses détaillées

1. Quels sont les principaux défis auxquels sont confrontés les processus de RET et comment les atténuer?

Les défis à relever sont les suivants :

  • Questions de qualité des données[ – valeurs manquantes, duplications, formats incohérents. Atténuation : mettre en œuvre les règles de profilage et de validation tôt; utiliser des tables de classement pour mettre en quarantaine les mauvais dossiers.
  • Glulets de performance[ – extraction lente des systèmes sources, transformations lourdes ou charges inefficaces. Atténuation : utiliser l'extraction progressive, le traitement parallèle, la partition par lots et optimiser les stratégies de jointure SQL.
  • Croissance du volume de données[ – chargement quotidien des téraoctets. Atténuation: implémenter la taille de la partition, la compression et l'infrastructure nuageuse évolutive.
  • Exigences de latence des données[ – besoin de mises à jour en temps quasi réel. Atténuation : utiliser des outils de saisie des données de changement (CDC) et d'ingestion en streaming (Kafka, Kinesis).
  • Gestion de la dépendance[ – emplois ETL qui échouent en raison de conflits de conflit de ressources ou de calendrier.

2. Comment optimiser les processus ETL pour la performance?

L'optimisation des performances couvre plusieurs domaines :

  • Extraction:[ Utiliser l'extraction progressive au lieu de charges complètes; mettre en œuvre CDC (p. ex., base log ou base timestamp); utiliser des utilitaires de copie en vrac.
  • Transformation:[ Poussez les transformations lorsque c'est possible (p. ex., utilisez SQL dans la base de données); évitez les opérations row-by-row; utilisez la logique définie; parallélisez les tâches indépendantes.
  • Charger:[ Désactiver les index et les contraintes pendant la charge et reconstruire ensuite; utiliser des inserts par lots; envisager le changement de partition pour les grandes tables.
  • Infrastructure:[ Utiliser des SSD, calculer les ressources et utiliser des couches de cache. Surveiller avec des outils de profilage pour identifier les goulets d'étranglement.

3. Quelle est la différence entre les systèmes du PALO et du PLO?

Le PLOLO (traitement analytique en ligne) est conçu pour les transactions atomiques à volume élevé et à courte durée (p. ex., saisie de commandes, mise à jour des stocks). Les données sont normalisées et les requêtes touchent un petit nombre de dossiers. Le PLOLO (traitement analytique en ligne) est conçu pour les requêtes complexes qui regroupent de grands volumes de données historiques.

4. Expliquer le concept de clés de substitution par rapport aux clés naturelles dans l'entreposage de données.

Une clé de remplacement est un identifiant unique artificiel généré par le système (p. ex., séquence entière) utilisé comme clé principale dans une table de dimension. Une clé naturelle est un identifiant d'entreprise de la source (p. ex., code de produit, identification du client). Les clés de substitution sont recommandées parce qu'elles sont stables (les clés d'entreprise peuvent changer, provoquant des effets d'entraînement), supportent le type 2 de DCD (lignes multiples par clé d'entreprise) et améliorent la performance de joint (clés numériques étroites).

5. Comment gérer la gestion des erreurs dans un pipeline ETL?

Mettre en place un cadre solide de gestion des erreurs :

  • Utilisez des blocs de capture et des erreurs de log dans une table d'erreur séparée avec l'ID de travail, l'horodatage, les données de ligne et la description d'erreur.
  • Définir les règles de qualité des données et rejeter les enregistrements qui échouent à la validation dans un dossier ou une table de quarantaine.
  • Configurez des alertes (email, Slack) pour les défaillances critiques.
  • Mettre en œuvre la logique de ré-essai pour les erreurs transitoires (délai de réseau).
  • Maintenir une table d'historique des opérations pour suivre le statut de réussite/échec pour chaque étape de travail.

6. Qu'est-ce que la saisie des données sur le changement (CDC)?

Les méthodes de CDC sont les suivantes :

  • CDC basé sur la connexion (p. ex. Oracle GoldenGate, Debezium)
  • CDC basé sur la connexion (déclencheurs de base de données)[
  • ]
  • ]CDC basé sur la connexion (comparant des instantanés)
]CDC est essentiel pour les pipelines de données en temps réel et en ETL à faible latence.

Questions d'entrevue avancées

7. Comment concevoir un processus ETL pour un entrepôt de données qui supporte l'ingestion en temps réel et en lot?

Pour les travaux de nuit, utilisez des charges incrémentales. Pour les travaux de nuit, utilisez une couche de streaming (par exemple Kafka) pour capturer les événements, puis appliquez des transformations légères et chargez-vous dans une table de faits en temps réel ou une couche delta (par exemple, dans une serre de lacs). Les chemins de transfert et de temps réel doivent converger dans l'entrepôt en utilisant une logique ascendante.

8. Expliquer la lignée de données et pourquoi elle est importante.

La ligne de données suit l'origine, les transformations et le mouvement des données de la source vers la cible. Elle aide à l'analyse d'impact (ce qui se brise en aval si une source change), au débogage (pour comprendre pourquoi une valeur est fausse) et à l'audit (respect des règlements comme le RGPD ou SOX).

9. Quelle est la différence entre un entrepôt de données et une mart de données?

Un entrepôt de données est un dépôt à l'échelle de l'entreprise couvrant plusieurs domaines. Un dépôt de données est un sous-ensemble axé sur une fonction commerciale unique (par exemple, les ventes, les finances).Les jeux de données peuvent être construits en plus de l'entrepôt (dépendant) ou indépendamment (indépendant).

10. Comment gérer les changements de dimensions en ETL?

L'approche dépend du type de DSC:

  • Type 1: Utilisez des instructions UPDATE pour écraser l'enregistrement.
  • Type 2: Utilisez un MERGE (upert) pour fermer la version précédente (déterminez la date de fin) et insérer une nouvelle ligne avec la date de début = maintenant et le drapeau courant = true.
  • Type 3: MISE À JOUR de la colonne courante et déplacer l'ancienne valeur vers la colonne précédente.

Pour les grandes dimensions, implémentez un cache de recherche pour réduire les voyages aller-retour dans la base de données.

Meilleures pratiques en matière de TEC

Les intervieweurs chercheront à connaître l'expérience pratique.

  • Conception modulaire:[ Découper les emplois ETL en composants réutilisables (p. ex., charge de mise en scène réutilisable, bibliothèque de transformation standard).
  • Idempotency:[ S'assurer que la réexécution d'un emploi produit le même résultat (pas de duplicata).
  • Gestion des métadonnées:[ Maintenir un dictionnaire de données et un graphique de dépendance à l'emploi.
  • Surveillance du rendement:[ Mesure des clés de suivi: lignes traitées par minute, durée, taux d'erreur et biais.
  • Contrôle de la configuration:[ Stockez le code ETL dans Git avec les scripts SQL et les fichiers de configuration.
  • Testing:[ Écrire des essais unitaires pour les transformations, des essais d'intégration pour les pipelines de bout en bout et des essais de comparaison de données par rapport à la source et à la cible.

Ressources externes de référence pour l'apprentissage approfondi: IBM sur ETL, Snowflake: ETL vs ELT, et Martin Fowler sur les données évolutives.

Conclusion

La maîtrise des entretiens sur l'entreposage des données et les processus ETL nécessite à la fois des connaissances théoriques et une expérience pratique. Concentrez-vous sur les concepts de base – caractéristiques de l'entrepôt de données, modélisation dimensionnelle, SCD et optimisation ETL – et soyez prêt à discuter des défis réels avec des solutions spécifiques. Pratiquez expliquer clairement votre processus de pensée. En vous préparant à ces questions communes et avancées, vous démontrerez l'expertise nécessaire pour réussir les rôles de gestion des données.