dimanche 29 mars 2015

NoSQL ok, mais OLAP ?


     Le NoSQL a le vent en poupe. Les bases de ces frameworks développés au début des années 2000 (2000, 2010) par les géants du web (Google, Facebook, Amazon, ...) pour répondre à leurs besoins croissants de gestion de volume de données en constante augmentation avec des temps de réponse de l'ordre de l'instantané tout en assurant la disponibilité via redondance de l'information.

     L'idée était de disposer de datastorages réactifs en abandonnant un certain nombre de contraintes (voir CAP théorème, encore appelé théorème de Brewer), ce que ne permettaient pas les bases de données classiques (Oracle, Sysbase and Co)

     Aujourd'hui ces frameworks ou leurs principes sont repris par les communautés de développeurs et font régulièrement l'objet de présentations, article blog, ...

     Au milieu de tout ce mouvement NoSQL, un autre principe qui fait moins l'actualité mais reste très présent dans la catégorie datastorage : OLAP.

     Oracle, SAP, Microsoft, ... ont dans leurs gammes de produits entreprise tous une brique OLAP, restant un produit. Les communautés de développeurs ne se sont pas encore emparé du sujet mais on l’aperçoit de temps en temps.

OLAP c'est quoi


     L'acronyme OLAP signifie OnLine Analytical Processing.

     On le défini souvent par opposition à l'OLTP (Online Transaction Processing). Il se veut un outil permettant facilement d'analyser un important volume de données. Cela tombe bien on est en période BigData.

Définition wikipédia :

     La encore ce n'est pas quelque chose de récent, si l'on creuse un peu l'histoire on tombera sur Edgar F. Codd et les 12 règles de Codd (1993) :

     Puis un langage de Microsoft en 1997 le MultiDimensional eXpressions permettant de requeter un produit OLAP, c'est devenu un standard dans le monde OLAP.

Olap et le monde Java


     Il y a eu un premier essai qui n'a pas abouti qui s'est traduit par une JSR commencé en 2000 et abandonnée officiellement en 2012 n'ayant pas évolué depuis 2004 : JOLAP, JSR 69
https://jcp.org/en/jsr/detail?id=69

     Quelques uns ont persisté et Java possède une librairie (toujours active) de querying : Olap4j

     En lien avec le projet open source Mondrian qui lui propose la partie serveur OLAP

Olap dans la tendance actuelle


     Même si on le rencontre peu, un des intérêts d'Olap arrive là où les framework NoSQL ont quelques manques : l'aspect agrégation des données et représentation permettant d'en tirer du sens (le fameux analytics).Une combinaison que l'on peut imaginer est un datastorage massif avec redondance en NoSQL sur lequel s'appuie un frontal intermédiaire type Olap.

Deux projets adoptant cette approche :

EBay avec Kylin (Olap) s'appuyant sur du Haddop :

Un projet GitHub Doradus appuyant une couche Olap sur une couche Cassandra :
https://github.com/dell-oss/Doradus/wiki/Architecture%20%28OLAP%29

     Adobe s'est également intéressé au Olap en s'appuyant sur du HBase (datastorage derrière Hadoop)

Aucun commentaire:

Enregistrer un commentaire