Oracle sur un nouveau terrain de jeu : Big Data

Vous dormez, pas moi ! Easyteam est sur la brèche 24/24 pour vous apporter les infos les plus chaudes !
La gestion des centres et flux de données volumineux est une problématique de plus en plus présente, accentuée par l’accroissement des services en lignes, cloud computing et autres miracles de l’internet des années 2010′
Le Peta-octet, unité de mesure encore fumeuse il y a quelques années, est une réalité quotidienne de certains datacenters, pour stocker des données structurées et non structurées.
Pour faire simple, pensez à Google, Youtube, Facebook, qui génèrent des quantités massives de données à chaque minute qui passe. Beaucoup d’entreprises traditionnelles sont aujourd’hui confrontées, à des échelles pas forcément ridicules, à des problématiques similaires liées à la collecte et au traitement de données client, géographiques, statistiques, financières, météo, scientifiques …
Big Data ? Hadoop ? R ? MapReduce ?

Big Data ?

Les solutions techniques « traditionnelles » reposant sur SQL, comme EXADATA, ont apporté une réponse permettant de gérer des bases relationnelles volumineuses avec des performances et une sécurité maximales, dans un environnement ultra sécurisé. Au dessus, placez-y des produits de datamining, BI, pour exploiter ces données, c’est l’approche classique souvent associée à l’exploitation de données applicatives.
L’ennui est qu’une base SQL dont 95% des données sont peut-être inutiles (selon les modes de collecte et les métiers), de 100 To par exemple, et avec énormément d’informations corrélées (imaginez les informations collectées par un réseau social), ça ressemble beaucoup à un cauchemar décisionnel.
Comment obtenir des analyses ad-hoc rapides pour un prix raisonnable dans un tel contexte ?
L’autre idée maîtresse est l’agilité : dans le monde Big Data, le modèle de données doit souvent être évolutif, à l’évidence là encore les bases relationnelles ne sont pas adaptées, les modifications de schéma y sont structurantes.
C’est pourquoi ont émergé d’autres concepts, pour proposer des solutions alternatives et innovantes. Vous avez sans doute entendu parler de NoSQL, mais aussi peut-être de MapReduce au travers du projet Apache Hadoop, ou de Amazon MapReduce pour citer quelques noms connus. L’idée générale est de sortir des schémas traditionnels pour proposer des solutions adaptées à la gestion de gros flux de données dans un environnement pas forcément transactionnel / ACID ou relationnel. ll s’agit aussi de proposer une solution simple pour stocker et lire des données dans un gros cluster de données, mais aussi faciliter l’analyse de larges sets de données sur un cluster applicatif en tronçonnant efficacement.

Stockage : BigTable et NoSQL

La gestion des larges bases comme celles de Google, a donnée naissance à des technologies alternatives au traditionnel SQL, tant il est vrai que les besoins et problématiques de gestion de la donnée liées à un moteur de recherche sont différentes. On parle de fiabilité de la donnée, de transaction, de modèles de stockage d’une façon complètement différente, et le modèle relationnel n’est pas forcément la solution.
Vous trouverez facilement sur Internet des papiers très documentés sur le sujet des « bigtable ». La question clé est « comment gérer une base très distribuée, pas relationnelle, volumineuse, hautement disponible ?« .
NoSQL (pour « Not Only SQL », ce n’est pas une négation du SQL) est une réponse à ces besoins de gestion de données de collecte : stockage accès rapide à la donnée, scans larges, distribution du stockage sur des machines peu onéreuses. Le mouvement NoSQL a décollé relativement récemment (2009) et prend logiquement une place plus importante dans le paysage, car il apporte une réponse réelle à des problématiques actuelles.
Il existe une myriade de bases NoSQL, qui répondent chacune à des schémas de stockage différents (4 familles en fait : clé-valeur, stockage de documents / XML, stockage de graphes, orientées colonnes) car une caractéristique principale de NoSQL est une décorrélation des modèles relationnels et ACID, et intrinsèquement les bases NoSQL peuvent être plus spécifiques qu’une base SQL traditionnelle car il n’y a pas une « norme NoSQL ». Citons quelques noms connus : MongoDB, Apache HBase, Apache CouchDB, Linkedin Voldemort, Amazon Dynamo, Oracle BerkelyDB.

Traitement : MapReduce, Hadoop et R

Je ne vais pas paraphraser la littérature largement disponible et suffisamment riche sur ces sujets, en quelques mots MapReduce a pour objectif de simplifier le traitement analytique de larges sets de données en tronçonnant ces processus en opérations plus élémentaires de « mapping » et de « réduction », pour classer et filtrer des masses de données non structurées. Hadoop fournit entre autres une implémentation populaire de MapReduce initialement créée par Yahoo, et aujourd’hui gérée par la communauté Apache. Il existe aussi des implémentations commerciales, comme Cloudera pour citer la plus populaire.
Mais le projet hadoop va plus loin que MapReduce : il est aujourd’hui le centre d’une machinerie plus globale qui englobe d’autres projets satellites qui établissent un lien naturel avec NoSQL, comme HBase et Cassandra.
R, enfin, est un langage d’analyse statistique et construction de graphes, extensible et puissant, implémenté dans le cadre d’un projet open-source comme une suite d’outils permettant la manipulation de modèles et graphes statistiques.

Et Oracle là dedans ?

Avec BerkeleyDB, Oracle dispose d’une solution ancienne et éprouvée permettant la mise en œuvre de NoSQL. Si vous attrapez le train en marche, BerkeleyDB n’est pas à proprement parler un logiciel packagé, mais plutôt un ensemble de briques applicatives, des bibliothèques C, C++, Java, permettant de construire un modèle d’accès aux données spécifiques pour un besoin donné. Il s’agit d’un produit open-source (ce qui ne signifie pas gratuit) de 15 ans d’existence, qui s’inscrit aujourd’hui dans la mouvance NoSQL.

Oracle NoSQL Database

Pour attaquer le marché croissant du big data, Oracle a passé la vitesse supérieure et propose maintenant une base NoSQL packagée. Conformément au paradigme NoSQL, Oracle NoSQL DB est optimisé pour la haute disponibilité, les données non structurées, et offrir des performances supérieures en environnement hautement distribué (des dizaines de noeuds ou plus), avec une scalabilité quasi linéaire. Il s’agit comme BerkelyDB (car NoSQL DB est évidemment construit sur l’héritage de BerkeleyDB) d’une base NoSQL de type clé-valeur.
Là ou les choses sont différentes, c’est qu’il s’agit d’un produit packagé et supporté, et non un simple paquet de bibliothèques. NoSQL Database est également livré avec un outil de management complet et ergonomique pour déployer et monitorer un cluster NoSQL.
Les tests présentés par Oracle pendant OpenWorld sur 24, 48, 96 noeuds ont montré que l’objectif de scalabililté eest atteint, avec un temps de réponse aux requêtes similaire sur les 3 configurations. Le Cluster NoSQL DB fonctionne en mode maître simple / multi-réplicats, avec une gestion de la chute du maître.
La Community Edition de NoSQL database est open-source, nous n’avons pas encore d’information plus précise sur la distribution  ou le prix du produit …

Oracle R Enterprise

Oracle fournit une version packagée et spécifique (donc payante a priori) de R, qui offre une implémentation complète et un outil dédié (R Studio) pour développer les scripts R et visualiser les graphes. R Enterprise peut directement attaquer des bases SQL comme Exadata, ou NoSQL. Selon Oracle les graphes R peuvent être utilisés dans OBIEE pour apporter des possibilités d’analyse statistiques plus poussées.

Oracle Big Data Appliance

Afin de permettre une mise en place rapide de NoSQL Database, Oracle propose également aujourd’hui une nouvelle machine appelée Oracle Big Data Appliance, qui inclut la suite complète des produits :

  • Oracle NoSQL Database
  • Apache Hadoop
  • Oracle Tools for Hadoop
  • Oracle Loader for hadoop
  • Oracle Data Integrator (ODI) Application Adapter for Hadoop (à vos souhaits)
  • R (la distribution open-source d’après le site Oracle)
  • le tout sur Oracle Linux et Hotspot VM

Dans une machine adaptée au traitement et stockage de bases non structurées :

  • 18 SUN X4270 M2, avec pour chaque serveur :  48 Gb RAM soit 864 Gb pour tout le cluster, 2* 6 cores, donc au total 216 cores, et 24 TB de disque soit 432 To au total.
  • Infiniband 40 Gb/s (pour ajouter des noeuds sans doute)
  • Ethernet 10 Gb/s

Comment Oracle peut-il se démarquer avec cette offre ?

L’intérêt de cette solution est à l’évidence son intégration : la mise en place d’une infrastructure Big Data à partir de l’existant, nécessite de choisir des produits (il y a nombre d’éditeurs hadoop / nosql), tester l’intégration, développer l’alimentation et l’analyse des données, choisir du matériel, tester, déployer … C’est un projet d’un an !
Oracle propose une solution packagée dans laquelle, en amont, ODI joue le rôle d’un point central qui permet de modéliser le process. La connection aux sources (logs, bases de données, etc) s’effectue avec les mécanismes traditionnels d’ODI. Le flux de traitement est directement modélisé grâce à des KM spécifiques, ce qui permet de limiter fortement le développement des flux d’alimentation et de traitement des données, tout en utilisant hadoop et NoSQL, ce qui laisse la possibilité d’intégrer des spécificités métier et d’étendre le modèle de traitement.

A l’autre bout de la chaîne, OBIEE peut être utilisé pour piloter la génération des requêtes, l’intégration de l’analyse statistique R/hadoop dans une démarche décisionnelle est donc totale !

References :