Modélisation NoSQL des entrepôts de données
multidimensionnelles massives
LES ENTREPOTS DE DONNEES AVEC LE SYSTEME HDFS
Environnement Hadoop
Hadoop est un framework open source développé en java, faisant partie des projets de la fondation Apache depuis 2009. Il a été conçu pour : – Stocker des volumes de données très importants ; – Supporter des données de formats variés, structurées, semi- structurées ou non structurées. Hadoop est basé sur un ensemble de machines formant un cluster Hadoop. Chaque machine est appelée nœud. C’est l’addition des capacités de stockage et traitement de ses nœuds qui lui assure un important système de stockage et une puissance de calcul. Le système de stockage est appelé HDFS (Hadoop Distributed File System) [Borthakur 2008]. La puissance de calcul repose sur le paradigme de programmation parallèle MapReduce [Dean and Ghemawat 2010].
Présentation de HDFS
HDFS est le composant chargé de stocker les données dans un cluster Hadoop. Basé sur une architecture « maître-esclave », le système HDFS repose dans son fonctionnement sur deux types de nœuds : – Le namenode : le nœud maître est l’orchestrateur du système HDFS, au moyen de métadonnées. Il maintient l’arborescence de tous les fichiers du système et gère l’espace de nommage, autrement dit, il gère la correspondance entre un fichier et les blocs qui le constitue. Il prend en charge également la localisation des blocs des données dans le cluster. Il n’y a qu’un namenode par cluster HDFS. Le secondary namenode : il sert à effectuer à intervalle réguliers des sauvegardes du namenode. Il est utilisé pour prendre la relève en cas de panne du namenode. – Les datanode : ils servent d’espace de stockage et de calcul des blocs de données. Dans un cluster hadoop il y a donc une machine jouant le rôle de namenode, une autre machine sert de secondary namenode tandis que le reste des machines sont utilisées comme des datanodes.
Le paradigme MapReduce
Introduit en 2004 par Google, le paradigme MapReduce est un modèle de programmation parallèle développé spécifiquement pour lire, traiter et écrire des volumes de données très importants dans un environnement distribué. Google l’utilise pour gérer les gigantesques tâches portant sur des téraoctet- ou pétaoctet de données [O’Malley 2008].Son principe de fonctionnent est très simple : il s’agit de décomposer une tâche en tâches plus petites, autrement dit, découper une tâche portant sur de très gros volumes de données en tâches identiques portant sur des sous-ensembles de ces données. La décomposition consiste à découper le volume de données initial en N volumes plus petits, qui seront manipulés séparément. Le programme MapReduce est réalisé à partir de deux fonctions, Map et Reduce. La fonction Map découpe la tâche en un ensemble de petites tâches et les repartit sur l’ensemble des nœuds de sorte à ce que chaque petite tâche s’exécute sur le nœud qui héberge les données concernées. La fonction Reduce rassemble et agrège les résultats issus des fonctions Map parallélisées.
Exécution d’un traitement MapReduce avec Hadoop
Pour qu’un traitement MapReduce soit exécuté, Hadoop dispose d’un composant du coté namenode appelé jobtracker, chargé de superviser l’exécution complète du traitement sur les différents datanodes. Sur chaque datanodes autre composant appelé tasktracker supervise l’exécution de la tâche qui lui a été confiée. Au démarrage le jobtracker reçoit une requête cliente Map, consulte le namenode pour avoir la liste des nœuds stockant les données répondant au traitement. Une fois la réponse reçue, le jobtracker assigne la fonction Map aux différents tasktracker. Les tasktracker cherchent les données correspondantes au traitement sur leur datanode. Une fois que les fonctions Map terminées, les résultats de celles-ci sont stockés au niveau de chaque datanode. Les résultats des Map sont agrégés par la fonction Reduce prise en charge par un ou plusieurs datanodes. Le résultat final est renvoyé au datanode.
Entrepôts de données sous HADOOP
La communauté scientifique des entrepôts de données s’est orientée vers l’utilisation de cette plateforme . La Figure 4 montre comment l’architecture des systèmes décisionnels est étendue à l’utilisation de ce système distribué. Figure 4 Nouvelle architecture des systèmes d’aide à la décision Dans cette section nous étudions les travaux ayant exploité la plateforme Hadoop pour la construction de cube de données [Cao et al. 2011] [D’Orazio and Bimonte 2010] [Song et al. 2015] [Cao et al. 2011] introduisent ES2 , une nouvelle plateforme distribuée basée sur le cloud pour supporter des analyses sur de gros volumes de données, en particulier les ENTREPÔT Hadoop transactions OLTP et les processus OLAP. Les données sont issues de sources différentes et des traitements OLAP et OLTP peuvent s’effectuer simultanément sur le même espace de stockage. L’accès aux données se fait à travers deux interfaces, une dédiée aux opérations OLAP et une autre dédiée aux opérations OLTP. Les opérations sont isolées grâce à la politique mise en place appelée « locking mechanism ». Par exemple, lorsqu’une requête est soumise, elle se voit affectée un certain temps ts d’accès aux données, durant lequel l’opération ne sera pas interrompue jusqu’à la fin de son exécution ; les autres requêtes attendront l’écoulement du temps ts. Les données sont stockées dans une base de données orientée colonnes. Le but de cette approche est de bénéficier des avantages de MapReduce en termes de distribution des traitements et de la tolérance aux pannes, mais ne s’intéresse pas à la définition processus d’implantation des schémas multidimensionnels. [D’Orazio and Bimonte 2010] proposent de stocker des mégadonnées dans un tableau multidimensionnel et d’utiliser le langage PIG [Olston et al. 2008] [Gates et al. 2009]. Dans cette approche, les données d’abord stockées dans un tableau multidimensionnel, sont traduites dans des fichiers pour une analyse via le langage PIG. La traduction est assurée par un algorithme qui produit un fichier temporaire PIG supprimé après analyse (cf. Figure 5). Le fichier PIG est en un fichier constitué de tuples dénormalisés. L’interrogation se fait aussi en utilisant le langage d’interrogation PIG qui repose sur un plan d’exécution (composé de trois instructions) permettant de bonnes performances. Par exemple pour une requête OLAP classique calculant ‘le gain par région entre 1990 et 1991’, PIG effectue une sélection sur les dimensions membres (1990-1991), une autre instruction effectue un groupement par année et par région. La dernière instruction est utilisée pour effectuer l’agrégation, la somme dans cet exemple.
CHAPITRE I : Contexte et travaux |