Les Entrepôts de Données dans le cadre des Environnements de Cloud Computing

Les entrepôts de données

Avant d’étudier l’entreposage des Données dans les nuages, il est utile de connaître ce qu’est un datawarehouse et comment il fonctionne. En effet, cela permettra de savoir ce dont le système de datawarehousing a besoin pour pouvoir fonctionner correctement.
D’après Immon, »le data Warehouse est une collection de données orientées sujet, intégrées, non volatiles et historisées, organisées pour le support d’un processus d’aide à la décision ».
Les entrepôts sont donc des espaces de stockage utilisés à des fins d’analyse. Les données du datawarehouse ont les propriétés suivantes : Orientées sujet : Elles sont organisées par sujets ou thèmes intéressant les décideurs.
Intégrées : Les données proviennent de différentes sources, un référentiel unique est alors définit pour faciliter leur manipulation.
Non volatiles : Les données de l’entrepôt sont essentiellement utilisées en interrogation. Elles ne sont pas appelées à être supprimées.
Historisées : Elles doivent être datées. Ce qui permet de visualiser leur évolution dans le temps. En plus de datawarehouse, les datamarts peuvent être utilisés en vue de faciliter l’exploitation des données stockées. Le datamart est un sous-ensemble d’un entrepôt de données. Il est destiné à répondre aux besoins d’un secteur ou d’une fonction particulière de l’Entreprise.
La définition de la notion de datawarehouse est suivie de l’explication du principe de fonctionnement du processus d’entreposage.
Principe de fonctionnement : L’entreposage de données (data warehousing) est un processus constitué, lui-même, de plusieurs autres processus dédiés, chacun, à un ensemble de tâches spécifiques réalisant globalement l’intégration de différentes sources, la structuration des données et enfin l’analyse en ligne  . Dans un datawarehouse, l’ensemble des données de l’Entreprise sont stockées. Les données collectées, au cours du temps, en provenance de plusieurs bases de données opérationnelles, subissent des transformations avant d’être chargées dans le datawarehouse.
Après chargement du datawarehouse, les outils OLAP et de data mining peuvent être utilisés pour l’analyse.
Les approches de stockage de données utilisées dans le datawarehousing sont les suivantes : l’approche MOLAP(Multidimensional OLAP) : les données sont stockées dans des structures multidimensionnelles. L’avantage de cette approche est que les données peuvent directement être utilisées par les outils OLAP. Avec cette approche, les temps de réponse sont satisfaisants.
Cependant, il est difficile de la mettre en œuvre et elle ne passe pas à l’échelle. l’approche ROLAP(Relational OLAP) : les données sont mises dans des bases de données relationnelles. Des vues matérialisées sont utilisées pour la représentation multidimensionnelle.
Dans cette approche, les requêtes OLAP (slice, roll up, drill down…) sont traduites en SQL. Son avantage est qu’elle est souple, évolutive et permet de stocker de gros volumes de données. Par contre, cette approche n’est pas efficace pour les calculs complexes et les temps de réponse sont plus lents.
Il existe une approche dite hybride (HOLAP) qui combine les approches ROLAP et MOLAP. Dans cette approche, une partie des données (tables de faites et de dimensions) est stockée dans un Système de Gestion de Base de Données relationnel(SGBDR) et l’autre partie, c’est-à-dire les données agrégées, est mise dans des cubes. Les requêtes vont alors chercher les données dans les tables et dans les cubes. L’avantage de cette approche est qu’il permet de gérer de grandes masses de données et d’avoir des temps de réponse acceptables en analyse OLAP.
Afin de répondre aux besoins de performance des décideurs, des structures physiques telles que les vues matérialisées, les index et les caches sont utilisées. Les vues matérialisées sont des résultats de requêtes stockées qui permettent d’accélérer le traitement des requêtes des utilisateurs.

Cloud Computing

L’étude des propriétés du Cloud ainsi que son principe de fonctionnement est une étape incontournable dans la mise en place d’un entrepôt dans le Cloud. Elle permettra de mieux comprendre les caractéristiques des « nuages » à prendre en compte dans le processus de datawarehousing afin d’avoir un entrepôt adapté à cet environnement.
Selon la National Institute of Standards and Technology 1, « Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. »
Dans leur étude, Arres et al ont défini le Cloud en ces termes : « Cloud Computing is a set of services deployed across a network. It is a concept which consists to move on distant servers the storage and computer processing usually located on local servers ».
Il existe d’autres définitions données au Cloud. Ces nombreuses définitions montrent l’inexistence de définition officielle donnée au Cloud. On peut cependant, s’accorder sur le fait que le Cloud Computing est l’exploitation de la puissance de calcul ou de stockage de serveurs informatiques distants par l’intermédiaire d’un réseau, généralement l’Internet .
On note que le Cloud peut être déployé de différentes manières, selon les champs d’utilisation. Il existe quatre modèles de déploiement.
Le Cloud public (public Cloud) : les ressources sont fournies par un prestataire et mutualisées pour un usage partagé par plusieurs clients. L’infrastructure est mise à la disposition du grand public (c’est-à-dire de plusieurs Entreprises), mais elle appartient à un fournisseur de services informatiques. Le niveau de service défini par le fournisseur est identique pour tous les utilisateurs.  Le Cloud privé (private Cloud) : il s’agit d’un environnement utilisé en exclusivité par une Entreprise. Certains parlent de Cloud interne. Les ressources sont dédiées à l’entreprise utilisatrice.
L’infrastructure peut être sur site ou hébergée par un tiers. Elle peut être gérée par l’organisation qui l’utilise (ou par un tiers) mais cette organisation est la seule à en disposer à l’interne .
Le Cloud hybride (hybrid Cloud) : certaines ressources appartiennent à l’entreprise et d’autres sont mises à disposition par un tiers, donc partagées. C’est la combinaison de plusieurs Clouds indépendants. Le National Institute of Standards and Technology, ou NIST, est une agence du département du Commerce des États-Unis. pouvant être publics ou privés avec comme point commun le respect de technologies communes et standard pour assurer la portabilité des applications entre les Clouds. Le Cloud Communautaire (community Cloud) : l’infrastructure est partagée entre plusieurs organisations ayant des préoccupations communes, elle peut être gérée par le groupe ou par un tiers.
Principe de fonctionnement : L’architecture du Cloud Computing est généralement organisée en couches :
La couche Infrastructure as a Service (IaaS) : les ressources du Cloud sont proposées sous forme de service (stockage, virtualisation d’Operating System (OS),…) ;
La couche Platform as a Service (PaaS) : composée des services de l’IaaS, et par-dessus lequel s’ajoute un environnement de développement d’applications ;
La couche Software as a Service (SaaS) : les fournisseurs de SaaS mettent, au niveau de cette couche, des applications à la disposition des utilisateurs.
Les principales caractéristiques de l’informatique dans les nuages sont : le modèle de paiement à l’utilisation (Pay-Per-Use), l’élasticité (elasticity).
L’élasticité est la propriété du Cloud pour ajuster les ressources des applications selon que la puissance de calcul et de stockage augmentent ou diminuent. Cependant, le recours au Cloud entraîne la perte de contrôle sur les données stockées dans le Cloud et aussi le coût de stockage peut être élevé si c’est de grandes masses de données qui sont entreposées (ordre de terabyte ou petabyte). Aussi, la performance des requêtes n’est pas garantie.
L’étude de l’entreposage adapté au sein du Cloud nécessite donc la prise en compte aussi bien des propriétés du Cloud que celles des datawarehouses.

Datawarehouse et Cloud Computing

Avec l’avènement du Big Data, de nombreux problèmes sont apparus dans le processus d’entreposage des données. On peut citer le manque de ressources, les problèmes de performance, de maintenance et d’entretien du système hôte, etc. Face à ces problème et au succès rencontré par le Cloud, le recours à ce dernier a été recommandé.
L’objectif est donc de bénéficier de la puissance de stockage et de calcul offert par le Cloud et d’éliminer les coûts de maintenance. Les problèmes liés aux entrepôts et à l’analyse en ligne sont donc à réétudiés dans le cadre des environnements des nuages. Il existe des approches SaaS de datawarehousing dans les nuages telles que GoodData, SkyInsight. Cependant, ces approches obligent les Entreprises à changer leurs outils d’interrogation de Données. Ce qui peut être contraignant  dans la mesure où l’entreprise est obligée de s’adapter aux outils fournis par ces SaaS.
Aussi, il existe un facteur bloquant dans l’entreposage des données dans les nuages : le coût. En effet, l’une des propriétés fondamentales du Cloud est son modèle de paiement à la demande « Pay-per-use ». De ce fait, le stockage de grande masse de données peut s’avérer très coûteux. De même, les moyens de traitement utilisés ont un coût dans la mesure où plus un processus a besoin de ressources plus le coût de son utilisation est élevé.
Et comme les besoins des Entreprise en termes de performance ont augmenté, le problème de la performance se pose donc dans le cadre des environnements de Cloud. Comment garantir la performance du système tout en minimisant le coût est la question qui se pose.
D’autres problèmes tels que la sécurité des données, l’aspect réseau sont aussi à noter. En effet, déplacer les données dans le Cloud est parfois synonyme de perte de contrôle sur les données. Les propriétaires des données n’ont pas la certitude qu’ils sont les seuls à pouvoir consulter leurs données ; ce qui pose un problème de sécurité. Du point de vue réseau, dans les nuages, la liaison réseau a un impact sur le processus d’entreposage comme il dépend de l’internet (ou du réseau mis en place). Dans le cadre du datawarehousing à grande échelle, il est impératif de disposer d’une bonne liaison réseau.
Ainsi, le processus d’entreposage dans les nuages doit prendre en compte le facteur coût afin de mieux répondre aux besoins de stockage à grande échelle, de performance, de sécurité, etc. Une autre propriété des nuages à prendre en compte est l’élasticité des ressources.
Une bonne exploitation de cette propriété peut avoir un impact significatif sur le coût de l’utilisation des ressources du Cloud.

Problèmes du stockage des Données

Le Cloud utilise un modèle de facturation à l’utilisation (Pay-Per-Use). Ainsi, dans le cadre d’un entreposage à grande échelle, le stockage de grandes masses de données peut conduire à des coûts très élevés. De ce fait, la définition de stratégie permettant de stocker de façon efficiente les données s’avère nécessaire. Aussi, un avantage du Cloud est l’élasticité des ressources. La prise en compte de ce facteur dans la définition de la stratégie de stockage peut avoir un impact significatif dans le coût du stockage des données. Le problème du stockage des données consiste donc à trouver les moyens et stratégies permettant de stocker de grandes quantités de données à un faible prix.
Approches existantes : Stockage sous formes de fichiers textes
Travaux d’Orazio et al.  Orazio et al ont abordé le problème du stockage des données dans le Cloud. Ceci en essayant de prendre en compte le modèle de la facturation à l’utilisation. Dans leur implémentation de l’approche MOLAP, ils proposent le stockage des données dans des fichiers textes sous forme de tableaux multidimensionnels. Ceci permet de réduire la taille des fichiers stockés et, par conséquent, le prix à payer par les clients.
Lors de l’analyse, les tableaux sont transformés dans des fichiers temporaires en données suivant le modèle Pig, à l’aide d’un algorithme. Le coût de cette transformation, selon les auteurs, est inférieur au coût de stockage de la matérialisation des données dans le format Pig.
Après analyse, les fichiers temporaires pourront alors être supprimés. L’approche MOLAP, utilisée içi, permet d’optimiser le stockage des données. En effet, les tableaux multidimensionnels permettent de stocker uniquement les mesures car elles sont indexées à l’aide des positions des membres des dimensions. Par exemple, la valeur de la mesure à la position tab est associée au second membre de la première dimension, au troisième membre de la deuxième dimension et au quatrième membre de la troisième dimension.
Compression des données : La compression de données ou codage de source est l’opération informatique consistant à transformer une suite de bits A en une suite de bits B plus courte pouvant restituer les mêmes informations en utilisant un algorithme particulier.
On distingue :
Les algorithmes de compression sans perte .On parle d’algorithmes de compression sans perte de données, les algorithmes de compressions pour lesquels, après l’opération de décompression, les données restituées sont identiques aux données originales. Ces algorithmes sont très souvent utilisés pour les documents, les archives, les fichiers texte et les exécutables.
Les algorithmes de compression avec perte : Pour les algorithmes de compression avec perte, les données restituées sont voisines des originales. Ce type d’algorithmes est utilisé pour les images, les sons et les vidéos.

Problèmes de la performance

La performance du système de Datawarehousing est très importante. En effet, dans les nuages, les ressources mises à la disposition des utilisateurs sont hétérogènes ; d’où la nécessité de bien les gérer afin de répondre aux besoins des utilisateurs. Aussi, avec le modèle de facturation à la demande Pay-per-use, si un processus A nécessite plus de ressources qu’un processus B, alors le coût de l’utilisation de A est plus élevé que celui de B.
Le problème de performance dans les traitements consiste à trouver la méthode ou la technique la plus appropriée, en termes d’efficience et de rapidité, à employer dans l’entreposage des données dans les nuages.
Approches existantes : Pour le traitement des données entreposées, dans la littérature, on distingue deux grandes approches :
les systèmes basés sur les bases de données parallèles ; les systèmes basés sur le paradigme de traitement parallèle MapReduce.
Il existe aussi une approche combinant MapReduce et les bases de données parallèles. Aussi, dans le but d’améliorer la performance des requêtes des structures d’accélération sont utilisées.
Systèmes basés sur MapReduce : L’environnement d’exécution MapReduce est un modèle de programmation et une instance associée pour le traitement et la génération de grands volumes de données . Deux fonctions sont spécifiées : map ; reduce.
La fonction map traite une paire clé/valeur et génère un ensemble de résultats de paires intermédiaires. La fonction reduce, quant à elle, synthétise toutes les valeurs intermédiaires associées à la même clé. Les programmes écrits, selon ce paradigme, sont automatiquement parallélisés et exécutés sur des grappes (ou des grilles). Le système d’exécution sous-jacent permet alors le parallélisme en partitionnant les données d’entrée. L’exécution se fait sur les nœuds par traitements simultanés des partitions différentes. Ce système gère également la tolérance aux fautes et assure la communication entre nœuds.
Bases de Données parallèles : On distingue trois principaux types d’architectures parallèles : shared-disk : Chaque processeur détient sa propre mémoire centrale et le disque est partagé entre tous les processeurs. Elle souffre de congestion dans le réseau d’interconnexion quand plusieurs processeurs essayent d’accéder au disque en même temps. En effet, le traitement de l’ensemble des sous-requêtes nécessite la récupération des données du disque partagé pour les stocker dans sa mémoire locale. Ainsi, la différence principale entre l’architecture à mémoire partagée et celle à disque partagé est la hiérarchie de la mémoire qui est partagée. Dans le contexte des nouvelles architectures logicielles, les architectures à disques partagés et à mémoire partagée sont considérés comme des machines multiprocesseurs symétriques (Symmetric Multi Processor, SMP).
shared-memory : Les processeurs et les disques ont accès à une mémoire commune, typiquement par un bus ou un réseau d’interconnexion. L’intérêt de l’utilisation de cette architecture est l’efficience de la communication entre les processeurs ; les données sont accessibles par n’importe quel processeur. Chaque processeur peut envoyer rapidement un message aux autres en écrivant en mémoire au lieu d’utiliser les canaux de communication. L’inconvénient majeur de cette architecture est le fait qu’elle n’est pas scalable (32 à 64 nœuds). Cela est dû au fait que le bus (le réseau d’interconnexion) devient un goulot d’étranglement. L’ajout de nouveaux processeurs implique l’accroissement du temps d’attente pour accéder à la mémoire principale partagée. shared-nothing attribue à chaque nœud sa propre mémoire et son propre disque. Les processeurs communiquent entre-eux via un réseau de communication à haut débit. Par ailleurs, les réseaux d’interconnexion des systèmes sans partage sont généralement conçus pour être évolutifs, de sorte que leur capacité de transmission augmente avec le nombre des nœuds qui sont ajoutés. En conséquence, l’architecture sans partage est plus scalable et peut aisément supporter un large nombre de processus.

Table des matières

1 Introduction générale 
2 Etat de l’art sur l’Entreposage des Données dans le Cloud 
2.1 Les entrepôts de données 
2.1.1 Définition
2.1.2 Principe de fonctionnement
2.2 Cloud Computing 
2.2.1 Définition
2.2.2 Principe de fonctionnement
2.3 Datawarehouse et Cloud Computing 
2.3.1 Présentation
2.3.2 Problèmes du stockage des Données
2.3.2.1 Approches existantes
2.3.2.1.1 Stockage sous formes de fichiers textes
2.3.2.1.2 Compression des données
2.3.3 Problèmes de la performance
2.3.3.1 Approches existantes
2.3.3.1.1 Systèmes basés sur MapReduce
2.3.3.1.2 Bases de Données parallèles
2.3.3.1.3 Systèmes Hybrides
2.3.3.1.4 Les structures d’accélération des performances .
3 Bilan de l’état de l’art 
3.1 Bilan concernant le stockage
3.2 Bilan concernant la Performance
3.3 Conclusion du Bilan de l’état de l’art 
4 Propositions 
4.1 Architecture proposée 
4.2 Notre Approche 
4.2.1 La construction de l’entrepôt
4.2.2 L’analyse des données de l’entrepôt
4.2.2.1 Tez
4.2.2.2 La combinaison de Shared-Nothing avec Tez
4.2.2.3 Processus d’interrogation des données
4.3 Etude de la faisabilité des solutions proposées
4.3.1 Etude technique
4.3.1.1 Analyse technique de solutions
4.3.1.2 Proposition de solutions
4.3.1.2.1 Hadoop/Hive
4.3.1.2.2 Talend Open Studio for Data Integration
4.3.1.2.3 RangeCube
4.3.1.2.4 Architecture Technique
4.3.2 Conclusion de l’étude de faisabilité
Conclusion et perspectives

Télécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *