Quantcast
Channel: Blog Xebia France » Michaël Figuière
Viewing all articles
Browse latest Browse all 26

NoSQL Europe : Tour d’horizon des bases de données NoSQL

$
0
0

Le NoSQL regroupe de nombreuses bases de données, récentes pour la plupart, qui se caractérisent par une logique de représentation de données non relationnelle et qui n’offrent donc pas une interface de requêtes en SQL.

Cassandra, Neo4j, Riak, Redis ou encore HBase sont des noms de projet qui brillent par leur présence dans l’actualité depuis quelques mois. Bien qu’ils soient tous étiquetés ‘NoSQL’ de grandes disparités les distinguent. Du fait de l’hétérogénéité de ces bases de données, des familles se sont créées pour les regrouper.

Cet article présente un tour d’horizon de l’ensemble de ces familles, de leurs caractéristiques et de leurs intérêts. Il a ensuite présenté le positionnement actuel du mouvement NoSQL, sa croissance et ce que ces nouvelles base de données peuvent apporter aux entreprises. Il s’agissait d’une session d’introduction dans la mesure où les principes théoriques de chaque famille sont largement couverts par les sessions qui suivent et que le positionnement stratégique sera débattu par la suite.

Les familles de NoSQL

Une remarque qui est revenue régulièrement lors des sessions de cette conférence est que le NoSQL est très souvent réduit au concept de simple association clé-valeur et d’accès put/get. En réalité, chaque famille apporte une forme de représentation des données différente, chacune ayant ses spécificités et simplifiant la manipulation d’un certain type de données.

Les bases de données clé-valeur

La représentation en clé-valeur est la plus simple et est très adaptée aux caches ou aux accès rapides aux informations. Elle considère la valeur stockée comme un bloc de données opaque, la base de données étant agnostique de son contenu. Ce postulat permet en général d’atteindre des performances bien supérieures dans la mesure où les lectures et écritures sont réduites à un accès disque simple.

Les implémentations les plus courantes sont Riak, Redis, Voldemort.
L’article Bases de données clé-valeur et Riak permet d’aller plus loin sur ce sujet.

Les bases de données orientées document

La représentation en document est particulièrement adaptée au monde du Web. Il s’agit d’une extension du concept de clé-valeur qui représente la valeur sous la forme d’un document. Un document contient des données organisées de manière hiérarchique à l’image de ce que permettent XML ou JSON. Étant consciente du contenu qu’elle stocke, la base de données peut alors effectuer des indexations de différents champs et offrir des requêtes plus élaborées.

Les implémentations les plus courantes sont CouchDB et MongoDB.
L’article Bases de données orientées documents et MongoDB permet d’aller plus loin sur ce sujet.

Les bases de données orientées colonnes

La représentation orientée colonnes s’oppose à la représentation des tables dans les bases de données relationnelles. En effet, les SGBDR manipulent les colonnes d’une ligne d’une manière statique. Les bases de données orientées colonnes ont une vision bien plus flexible permettant d’avoir des colonnes différentes pour chaque ligne et de multiplier de manière conséquente le nombre de colonnes par ligne. Il en résulte une capacité à stocker des listes d’informations pour chaque clé, et à accéder à des intervalles de colonnes.

Les implémentations les plus courantes sont HBase et Cassandra.
L’article Bases de données orientées colonnes et Cassandra permet d’aller plus loin sur ce sujet.

Les bases de données orientées graphe

La représentation en graphe permet la modélisation, le stockage et la manipulation de données complexes liées par des relations non-triviales ou variables. Si le cas d’utilisation classique de ce type base de données est le stockage des informations des réseaux sociaux, elle est à même de modéliser de nombreuses situations du monde réel qui ne pourraient être représentées que de manière réductrice dans une base de données relationnelle.

Les implémentations les plus courantes sont Neo4j, HypergraphDB et FlockDB.
L’article Bases de données graphe et Neo4j permet d’aller plus loin sur ce sujet.

Les autres bases de données

D’autres types de bases de données existent tels que les bases de données objet, les bases de données hiérarchiques ou encore les datagrids que l’on différencie des systèmes de persistance clé-valeur précédemment évoqués. Ils ne sont en général pas évoqués lorsque l’on parle de NoSQL aujourd’hui.

L’adoption du NoSQL

Des développements actifs, un intérêt croissant

Les projets NoSQL sont très actifs en ce moment. Leur communauté s’élargit et leur nombre de commiteurs augmente. Parallèlement les évènements traitant de ce sujet se multiplient, l’intérêt pour ce type de stockage croît peu à peu dans les entreprises et les annonces d’adoption de ces technologies par quelques ‘grands du Web’ se sont multipliées. Ceci donne aux NoSQL un positionnement peu commun pour des technologies émergentes puisque leur bon fonctionnement dans des conditions extrêmes leur confère une fiabilité déjà reconnue.

Quelques mythes

Face à cet engouement, énumèrons quelques mythes courants sur les NoSQL qui peuvent entraîner une mauvaise utilisation :

  • Il ne s’agit pas d’une technologie de remplacement des SGBDR. Les NoSQL apportent simplement des options supplémentaires quant au mode de représentation de données utilisé pour un projet.
  • Les NoSQL sont des projets encore récents, l’outillage est donc réduit et les communautés ne sont pas comparables à celles des SGDBR courants, ce qui limitera les possibilités de réponses aux problèmes rencontrés. Ces produits sont encore très loin de la maturité de MySQL ou PostgreSQL.
  • L’intérêt d’une base de données NoSQL pour un projet ne dépend pas du volume de données qu’elle aura à manipuler. Le choix de son utilisation doit être basé sur la préférence d’un mode de représentation et non sur une forte volumétrie.
  • Il ne s’agit pas d’une solution miracle pour tout type de stockage de données. La tentative de reproduire dans une base de données NoSQL une représentation ou un comportement habituellement offert par un SGBDR aboutira probablement à une solution peu efficace.

Conclusion

Ceci conclu cette synthèse de l’état actuel du monde NoSQL. Au-delà des aspects technologiques, il s’agit par ailleurs d’un marché émergent dans lequel se sont engouffré de nombreuses startups telles que 10gen, Basho ou Neo Technology.

Les sessions suivantes ont décrit plus en détail les principes théoriques de chaque famille et les sessions de retours d’expérience en ont décrit les aspects pratiques. Ces sessions seront couvertes dans d’autres articles à venir.


Viewing all articles
Browse latest Browse all 26

Trending Articles