Astek se penche sur les bases NoSQL

Bases NoSQL

Aujourd’hui, une révolution est en marche, liée à l’exploitation d’une nouvelle ressource : les données. Celles-ci sont la nouvelle source de croissance pour le monde actuel, celui du tout connecté, du tout publié sur internet. Cette révolution a commencé avec les réseaux sociaux, demain elle va s’amplifier avec les objets connectés et le flux continu d’informations de nos signes vitaux, de nos stations météo et autres objets intelligents de notre habitat moderne. Aujourd’hui, Astek vous propose une rapide mise au point sur les bases NoSQL.

Qu’est-ce que le NoSQL ?

Les bases de données NoSQL sont issues du monde Big Data afin de résoudre des problématiques de performance et de scalabilité (montée en charge) des environnements traditionnels afin de traiter de gros volumes de données,  ayant des formats différents et provenant de sources hétérogènes. Leur origine provient du monde d’internet (Google, Amazon, Facebook, Twitter) et le besoin de ces acteurs de pouvoir administrer des bases de données géantes (Big Data) pour leurs sites web mondiaux.

L’acronyme NoSQL provient de « Not only SQL » mais sa signification réelle est plus proche de « pas seulement des bases relationnelles ».  En effet, il est tout à fait possible d’utiliser le SQL (Structured Query Language) pour manipuler les données dans  bon nombre de bases NoSQL. Nous pouvons ajouter à la définition les termes d’ « open-source » (issu du monde libre) et « distribué ». La notion qui singularise aussi ce type de bases, c’est qu’il n’y a pas d’acidité de la donnée (ACID : Atomicity, Consistency, Isolation, Durability), toutes les transactions ne peuvent pas être garanties comme dans les bases SGBD classiques.

Nosql

Les différents types de NoSQL

Les bases NoSQL peuvent se définir selon 4 catégories :

  1. La base clef-valeur : c’est la plus simple, elle associe une clef, simple table de hâchage (hashmap), avec une valeur. Cette valeur peut être n’importe laquelle… L’implémentation de ces bases peut servir à faire une gestion de panier sur un site d’ e-commerce, stocker les informations de session d’un site web ou alors la gestion des profils et des préférences d’utilisateur d’un site web.
  2. La base document : c’est aussi une base clef-valeur où la valeur, cette fois, est un document structuré (XML, JSON, BSON,…) sur lequel nous pouvons requêter. L’indexation de ces documents est possible et des opérations de MapReduce sont aussi disponibles. L’implémentation de ces bases peut servir à la gestion des logs d’événements d’une application ou d’un système, la gestion d’un blog ou toute autre application web.
  3. La base orientée colonne ou BigTable : ici les données sont structurées en ligne et en colonne avec une clef unique pour chaque enregistrement. Les données peuvent être assemblées en groupe de colonne. L’implémentation de ces bases peut servir à la gestion des logs d’événements d’une application ou d’un système, la gestion d’un blog ou toute autre application web.
  4. La base graphe: les données sont alors stockées sous forme de nœud ou d’entités reliées entre elles par des relations ou des arcs. Elle est ACID. L’implémentation de ces bases peut servir à la gestion de réseau sociaux (relation de connexion entre les utilisateurs), les moteurs de recommandations et pour les applications de routage ou spatiale.

Dans chacune de ces catégories, il y a un leader et une kyrielle de concurrents. Pas simple de faire un choix parmi tout cela. Peut-être que cela pourra vous aiguiller : comparaison détaillée des solutions NoSQL populaires

Le match NoSQL versus RDBMS (bases SGBD classiques)

Les bases de données relationnelles offrent toujours un vaste éventail d’avantages. Notamment avec de nombreuses fonctionnalités disponibles par rapport aux bases de données NoSQL les plus populaires.

En revanche, les SGBD classiques ont beaucoup de peine à rivaliser avec les performances des bases NoSQL surtout dans le contexte d’un site web populaire en répartition de charge fréquenté par des millions de visiteurs dans le monde entier. Le ROI sur de telles infrastructures relationnelles est nettement défavorable par rapport à celui d’une infrastructure NoSQL si l’on additionne : les coûts logiciels et matériels ainsi que les compétences en intégration et optimisation de ces plateformes. En effet, les bases NoSQL sont pour la plupart Open Source et prévues dès le départ pour cette problématique.

Les avantages indéniables des bases de données NoSQL sont la flexibilité et la modularité de la structure, qui permettent d’obtenir des applicatifs qui collent aux mieux avec les besoins du métier. Mais ce match n’est pas perdu pour autant par les SGBD traditionnels, car avec le « In-Memory » leur puissance de traitement des données, même en transactionnel, leur permet d’avoir d’excellentes performances. Enfin, tous les grands noms des SGBD traditionnels ont fait évoluer leurs produits afin de les connecter avec le mode NoSQL (notamment avec le type de colonne JSON).

Comment monter en compétences sur le NoSQL

Le web regorge de blogs et posts sur le sujet, il suffit de se servir. Mais si vous voulez suivre un cursus sur le sujet correspondant à un cheminement vers le NoSQL, je vous conseille de vous tourner vers les MOOC. De nombreuses universités ont mis à disposition des supports de cours en ligne (vidéo, ppt, ateliers) sur le sujet. Certains sont payants et permettent d’acquérir une validation reconnue, d’autres sont gratuits et sans examen de passage. Enfin il y a ceux qui sont gratuits et permettent d’acquérir une validation de son cursus : bigdatauniversity.com et coursera.org

Conclusion

En résumé, il faut choisir la base la plus adaptée pour les nouveaux projets en fonction de ses besoins. Pour les projets existants qui doivent évoluer, on peut très bien imaginer un mode mixte : une base de données relationnelle et une base NoSQL.

2 thoughts on “Astek se penche sur les bases NoSQL

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


*