Architecture d'entrepôt de données: traditionnelle et cloud

Bonjour, Habr! Beaucoup de choses ont été écrites sur le thème de l'architecture d'entrepôt de données, mais elles ne se sont pas encore réunies aussi succinctement et succinctement que dans un article sur lequel je suis accidentellement tombé.

Je vous invite Ă  prendre connaissance de cet article dans ma traduction. Les commentaires et ajouts sont les bienvenus!


(Source de l'image)

Présentation


Ainsi, l'architecture des entrepôts de données est en train de changer. Dans cet article, nous comparerons les entrepôts de données d'entreprise traditionnels et les solutions cloud avec des coûts initiaux inférieurs, une évolutivité améliorée et des performances.

Un entrepôt de données est un système dans lequel les données sont collectées à partir de diverses sources au sein d'une entreprise et ces données sont utilisées pour soutenir les décisions de gestion.

Les entreprises se tournent de plus en plus vers des entrepôts de données basés sur le cloud au lieu de systèmes traditionnels sur site. Les stockages de données cloud présentent un certain nombre de différences par rapport aux stockages traditionnels:

  • Pas besoin d'acheter de l'Ă©quipement physique;
  • Les entrepĂ´ts de donnĂ©es cloud sont plus rapides et moins chers Ă  configurer et Ă  faire Ă©voluer;
  • Les entrepĂ´ts de donnĂ©es cloud peuvent gĂ©nĂ©ralement effectuer des requĂŞtes analytiques complexes beaucoup plus rapidement car ils utilisent un traitement parallèle massif.

Architecture d'entrepôt de données traditionnelle


Les concepts suivants mettent en évidence certaines des idées et principes de conception établis utilisés pour créer des entrepôts de données traditionnels.

Architecture Ă  trois niveaux


Très souvent, l'architecture traditionnelle de l'entrepôt de données a une structure à trois niveaux comprenant les niveaux suivants:

  • Niveau infĂ©rieur : ce niveau contient le serveur de base de donnĂ©es utilisĂ© pour rĂ©cupĂ©rer des donnĂ©es Ă  partir de nombreuses sources diffĂ©rentes, par exemple, Ă  partir de bases de donnĂ©es transactionnelles utilisĂ©es pour des applications frontales.
  • Niveau intermĂ©diaire : le niveau intermĂ©diaire contient un serveur OLAP qui transforme les donnĂ©es en une structure mieux adaptĂ©e Ă  l'analyse et aux requĂŞtes complexes. Un serveur OLAP peut fonctionner de deux manières: soit en tant que système avancĂ© de gestion de bases de donnĂ©es relationnelles qui mappe les opĂ©rations de donnĂ©es multidimensionnelles aux opĂ©rations OLAP relationnelles standard, soit en utilisant un modèle OLAP multidimensionnel qui implĂ©mente directement les donnĂ©es et opĂ©rations multidimensionnelles.
  • Niveau supĂ©rieur : le niveau supĂ©rieur est le niveau client. Ce niveau contient les outils utilisĂ©s pour l'analyse de donnĂ©es de haut niveau, la gĂ©nĂ©ration de rapports et l'analyse de donnĂ©es.


Kimball vs. Inmon


Deux pionniers des entrepôts de données: Bill Inmon et Ralph Kimball, proposent différentes approches de conception.

L'approche de Ralph Kimball est basée sur l'importance des data marts, qui sont des entrepôts de données appartenant à des entreprises spécifiques. Un entrepôt de données est simplement une combinaison de différents data marts qui facilitent le reporting et l'analyse. Le projet d'entrepôt de données basé sur Kimball utilise une approche ascendante.

L'approche de Bill Inmon est basée sur le fait que l'entrepôt de données est un stockage centralisé de toutes les données de l'entreprise. Avec cette approche, l'organisation crée d'abord un modèle d' entrepôt de données normalisé . Ensuite, des magasins de données dimensionnelles sont créés sur la base du modèle d'entrepôt. Ceci est connu comme une approche descendante d'entrepôt de données.

Modèles d'entrepôt de données


Dans l'architecture traditionnelle, il existe trois modèles généraux d'entrepôts de données: stockage virtuel, vitrine de données et entrepôt de données d'entreprise:

  • Un entrepĂ´t de donnĂ©es virtuel est un ensemble de bases de donnĂ©es distinctes qui peuvent ĂŞtre partagĂ©es afin que l'utilisateur puisse accĂ©der efficacement Ă  toutes les donnĂ©es comme si elles Ă©taient stockĂ©es dans un seul entrepĂ´t de donnĂ©es;
  • Un modèle de vitrine de donnĂ©es est utilisĂ© pour signaler et analyser des secteurs d'activitĂ© spĂ©cifiques. Dans ce modèle de stockage, des donnĂ©es agrĂ©gĂ©es Ă  partir d'un certain nombre de systèmes sources liĂ©s Ă  un domaine d'activitĂ© spĂ©cifique, comme les ventes ou les finances;
  • Le modèle d'entrepĂ´t de donnĂ©es d' entreprise implique le stockage de donnĂ©es agrĂ©gĂ©es couvrant l'ensemble de l'organisation. Ce modèle considère l'entrepĂ´t de donnĂ©es comme le cĹ“ur d'un système d'information d'entreprise avec des donnĂ©es intĂ©grĂ©es de toutes les unitĂ©s commerciales.

Étoile contre Flocon de neige


Les schémas en étoile et en flocon de neige sont deux façons de structurer votre entrepôt de données.

Un schéma en étoile possède un entrepôt de données centralisé, qui est stocké dans une table de faits. Le graphique divise la table de faits en une série de tables de dimensions dénormalisées. La table de faits contient les données agrégées qui seront utilisées pour les rapports, et la table de dimension décrit les données stockées.

Les projets dénormalisés sont moins complexes car les données sont regroupées. La table de faits utilise un seul lien à attacher à chaque table de dimension. La conception plus simple en forme d'étoile simplifie considérablement l'écriture de requêtes complexes.


Un modèle de flocon de neige est différent en ce qu'il utilise des données normalisées. La normalisation signifie une organisation efficace des données afin que toutes les dépendances de données soient définies et que chaque table contienne un minimum de redondance. Ainsi, les tables de mesure individuelles sont fourchues en tables de mesure distinctes.

Le schéma de flocon de neige utilise moins d'espace disque et maintient mieux l'intégrité des données. Le principal inconvénient est la complexité des requêtes nécessaires pour accéder aux données - chaque requête doit passer par plusieurs jointures de table pour obtenir les données correspondantes.


ETL vs. ELT


ETL et ELT sont deux façons différentes de charger des données dans le stockage.

Les ETL (Extraire, Transformer, Charger) récupèrent d'abord les données d'un pool de sources de données. Les données sont stockées dans une base de données intermédiaire temporaire. Ensuite, des opérations de conversion sont effectuées pour structurer et transformer les données en une forme appropriée pour le système d'entrepôt de données cible. Ensuite, les données structurées sont chargées dans le stockage et prêtes pour l'analyse.


Dans le cas d' ELT (Extract, Load, Transform), les données sont immédiatement chargées après l'extraction à partir des pools de données source. Il n'y a pas de base de données intermédiaire, ce qui signifie que les données sont immédiatement téléchargées vers un seul référentiel centralisé.
Les données sont converties en un système d'entrepôt de données pour être utilisées avec des outils de business intelligence et d'analyse.


Maturité organisationnelle


La structure de l'entrepôt de données de l'organisation dépend également de sa situation actuelle et de ses besoins.

La structure de base permet aux utilisateurs finaux de stockage d'accéder directement aux données récapitulatives des systèmes source, de créer des rapports et d'analyser ces données. Cette structure est utile dans les cas où les sources de données proviennent des mêmes types de systèmes de base de données.


Le stockage avec une zone intermédiaire est la prochaine étape logique dans une organisation avec des sources de données hétérogènes avec de nombreux types et formats de données différents. La zone de transfert convertit les données dans un format structuré générique qui est plus facile à demander à l'aide d'outils d'analyse et de génération de rapports.


Une variante de la structure intermédiaire est l'ajout de data marts à l'entrepôt de données. Les magasins de données stockent des données récapitulatives sur un domaine d'activité spécifique, ce qui rend ces données facilement accessibles pour des formes spécifiques d'analyse.

Par exemple, l'ajout de data marts peut permettre à un analyste financier d'effectuer plus facilement des requêtes détaillées sur les données de vente et de prédire le comportement des clients. Les data marts facilitent l'analyse en adaptant les données spécifiquement pour répondre aux besoins des utilisateurs finaux.


Nouvelles architectures d'entrepôt de données


Ces dernières années, les entrepôts de données ont migré vers le cloud. Les nouveaux entrepôts de données cloud n'adhèrent pas à l'architecture traditionnelle et chacun d'entre eux propose sa propre architecture unique.

Cette section décrit brièvement les architectures utilisées par les deux stockages cloud les plus populaires: Amazon Redshift et Google BigQuery.

Amazon redshift


Amazon Redshift est une vue basée sur le cloud d'un entrepôt de données traditionnel.

Redshift nécessite que les ressources informatiques soient préparées et configurées en tant que clusters contenant une collection d'un ou plusieurs nœuds. Chaque nœud possède son propre processeur, sa propre mémoire et sa propre RAM. Le nœud principal compile les demandes et les transmet aux nœuds de calcul qui exécutent les demandes.

À chaque nœud, les données sont stockées dans des blocs appelés tranches . Redshift utilise le stockage de colonnes, c'est-à-dire que chaque bloc de données contient des valeurs d'une colonne sur plusieurs lignes, et non d'une ligne avec des valeurs de plusieurs colonnes.


Redshift utilise l'architecture MPP (Massively Parallel Processing), divisant les grands ensembles de données en morceaux qui sont affectés à des tranches dans chaque nœud. Les demandes sont plus rapides car les nœuds de calcul traitent les demandes dans chaque tranche en même temps. Le nœud Leader Node combine les résultats et les renvoie à l'application cliente.

Les applications clientes telles que les outils de BI et d'analyse peuvent se connecter directement à Redshift à l'aide des pilotes open source PostgreSQL JDBC et ODBC. De cette façon, les analystes peuvent effectuer leurs tâches directement sur les données Redshift.

Redshift ne peut charger que des données structurées. Vous pouvez charger des données dans Redshift à l'aide de systèmes pré-intégrés, y compris Amazon S3 et DynamoDB, en transférant des données à partir de n'importe quel hôte local avec une connexion SSH ou en intégrant d'autres sources de données à l'aide de l'API Redshift.

Google bigquery


L'architecture BigQuery ne nécessite pas de serveur, ce qui signifie que Google contrôle dynamiquement l'allocation des ressources informatiques. Par conséquent, toutes les décisions de gestion des ressources sont cachées à l'utilisateur.

BigQuery permet aux clients de télécharger des données depuis Google Cloud Storage et d'autres sources de données lisibles. Une alternative est le streaming de données, qui permet aux développeurs d'ajouter des données à l'entrepôt de données en temps réel, ligne par ligne, lorsqu'elles deviennent disponibles.

BigQuery utilise un moteur de requête appelé Dremel, qui peut analyser des milliards de lignes de données en quelques secondes. Dremel utilise des requêtes massivement parallèles pour analyser les données dans le système de gestion de fichiers de base Colossus. Colossus distribue des fichiers en morceaux de 64 mégaoctets parmi une variété de ressources informatiques appelées nœuds, qui sont regroupées en clusters.
Dremel utilise une structure de données de colonne similaire à Redshift. L'architecture arborescente envoie des requêtes à des milliers de machines en quelques secondes.

Des commandes SQL simples sont utilisées pour effectuer des requêtes de données.



Panoplie


Panoply fournit une gestion complète des données en tant que service. Son architecture unique d'auto-optimisation utilise l'apprentissage automatique et le traitement du langage naturel (NLP) pour modéliser et rationaliser le transfert de données de la source à l'analyse, réduisant le temps entre les données et les valeurs aussi près de zéro que possible.

Panoply Intelligent Data Infrastructure comprend les fonctionnalités suivantes:

  • Analyse des requĂŞtes et des donnĂ©es - dĂ©terminer la meilleure configuration pour chaque cas d'utilisation, l'ajuster dans le temps et crĂ©er des index, des clĂ©s de tri, des clĂ©s de disque, des types de donnĂ©es, l'Ă©vacuation et le partitionnement.
  • Identifie les requĂŞtes qui ne suivent pas les meilleures pratiques - par exemple, celles qui incluent des boucles imbriquĂ©es ou des transtypages implicites - et les réécrivent dans une requĂŞte Ă©quivalente qui nĂ©cessite une fraction du temps d'exĂ©cution ou des ressources.
  • Optimisez la configuration du serveur au fil du temps en fonction des modèles de requĂŞte et dĂ©couvrez quelle configuration de serveur fonctionne le mieux. La plateforme change de façon transparente les types de serveurs et mesure les performances globales.


Au-delĂ  du stockage cloud


L'entreposage de données basé sur le cloud est une grande amélioration par rapport aux approches d'architecture traditionnelles. Cependant, les utilisateurs rencontrent toujours un certain nombre de problèmes lors de leur configuration:

  • Le tĂ©lĂ©chargement de donnĂ©es vers des entrepĂ´ts de donnĂ©es basĂ©s sur le cloud n'est pas anodin et les pipelines de donnĂ©es Ă  grande Ă©chelle nĂ©cessitent une configuration, des tests et une prise en charge du processus ETL. Cette partie du processus est gĂ©nĂ©ralement effectuĂ©e par des outils tiers;
  • Les mises Ă  jour, insertions et suppressions peuvent ĂŞtre complexes et doivent ĂŞtre effectuĂ©es avec soin pour Ă©viter une dĂ©gradation des performances des requĂŞtes;
  • Les donnĂ©es semi-structurĂ©es sont difficiles Ă  gĂ©rer - elles doivent ĂŞtre normalisĂ©es dans un format de base de donnĂ©es relationnelle, ce qui nĂ©cessite l'automatisation de grands flux de donnĂ©es;
  • Les structures imbriquĂ©es ne sont gĂ©nĂ©ralement pas prises en charge dans les entrepĂ´ts de donnĂ©es cloud. Vous devez convertir les tables imbriquĂ©es dans des formats que l'entrepĂ´t de donnĂ©es comprend;
  • Optimisation de cluster . Il existe diffĂ©rentes options pour configurer un cluster Redshift pour exĂ©cuter vos charges de travail. DiffĂ©rentes charges de travail, jeux de donnĂ©es ou mĂŞme diffĂ©rents types de requĂŞtes peuvent nĂ©cessiter des configurations diffĂ©rentes. Pour obtenir des performances optimales, il est nĂ©cessaire de revoir en permanence et, si nĂ©cessaire, de configurer en plus la configuration;
  • Optimisation des requĂŞtes - les requĂŞtes des utilisateurs peuvent ne pas suivre les meilleures pratiques et prendront donc beaucoup plus de temps. Vous pouvez travailler avec des utilisateurs ou des applications client automatisĂ©es pour optimiser les requĂŞtes afin que l'entrepĂ´t de donnĂ©es puisse fonctionner comme prĂ©vu
  • Sauvegarde et restauration - bien que les fournisseurs de stockage de donnĂ©es offrent de nombreuses options pour sauvegarder vos donnĂ©es, ils ne sont pas simples Ă  configurer et nĂ©cessitent une surveillance et une attention particulière.

Lien vers le texte original: panoply.io/data-warehouse-guide/data-warehouse-architecture-traditional-vs-cloud

Source: https://habr.com/ru/post/fr441538/


All Articles