Hadoop et les autres technologies de Datawarehousing

Face aux limitations des architectures de base de données classiques, les géants d'internet ont développé de nouvelles architectures. Ces nouvelles architectures permettent de dépasser des limites de volumétries pour traiter jusqu'à des Peta de données. En regard des technologies classiques de bases de données et de Datawarehousing, c'est tout un écosystème qui s'est développé.

Le chef de file de cet écosystème du bigData est la technologie Hadoop. Le cluster Hadoop est constitué d'HDFS (le système de fichiers distribués Hadoop) et Map/Reduce. La technologie logicielle développée permet de traiter beaucoup de données sur des matériels standards, donc à couts très réduits. L'approche consiste à rapprocher les données des ressources de calcul. Les gros volumes de données sont découpées en morceaux de 64 à 128 Mo, et sont répartis sur les noeuds du cluster avec HDFS. Chaque noeud réalise des traitements localement sur son lot de données (phase de Map), et dans une seconde étape (le Reduce) les résultats sont consolidés et synthétisés en 1 point du système de fichiers répartis. Cette explication de Map/Reduce est assez limitée, mais nous resterons ici à un niveau conceptuel. Map/Reduce permet de travailler de manière systématique sur des volumes de données importants, par exemple réaliser simplement un produit cartésien de millions de lignes. Cette facilité a un prix qui est celui d'une exécution en mode asynchrone, lancer un traitement prend du temps, et nécessite d'articuler les développements en conséquence.

Parmis les technologies ayant de fortes similitudes, on va trouver MPP (Massively Parallel Processsing) qui est déjà très largement utilisé depuis très longtemps dans le monde du Datawarehouse. MPP consiste là aussi à répartir les traitements et à paralléliser ceux-ci. Le MPP consiste à répartir les données sur plusieurs noeuds et à traiter ces données localement, pour ensuite les consolider. MPP est donc très proche d'Hadoop, à la différence près d'être implémenté de manière très propriétaire. Aujourd'hui les leader du marché du Datawarehousing, Teradata, Netezza et bien d'autres ont adopté cette architecture. Lorsqu'il est vendu bundlé avec du Hardware, c'est dans des offres très haut de gamme qu'on retrouve MPP, et bien évidement a des tarifications très souvent élevée pour ne pas utiliser d'autre termes. La performance obtenue par les architectures MPP n'est pas le seul facteur d'adoption, la disponibilité d'interfaces standardisée de type SQL permet une facile intégration dans des outils tiers. Les offres de grands constructeurs présentent aussi l'énorme avantage de disposer d'un support intégré de bout en bout.

Au même titre que Hadoop fait son entrée dans les offres des constructeurs de plateformes MPP afin de permettre une consolidation de leurs bases autour de leurs offres historiques, rien n'interdirait qu'il y ait un mouvement de plateformes MPP vers du hardware banalisé. Les bases MPP et hadoop ne répondent pas aux même problématiques, l'une est orienté traitement de masse et l'autre est orienté vers l'obtention de résultats rapidement voir en temps réel. Pour ces raisons il y a de la place pour plusieurs technologies dans cet écosystème bigData, et leurs imbrications sont nécessaires. Nous reviendrons plus en détails sur ces scénarios d'utilisation dans de prochains posts.