Article 1 sur 9
La grande diversité des bases de données NoSQL
Les bases de données NoSQL ont progressivement gagné en popularité au fur et à mesure que le volume de données (surtout semi-structurées et non structurées) à traiter explosait littéralement ainsi que la complexité de leur modalisation. En effet, contrairement aux classiques bases de données relationnelles (schéma prédéfini, évolutives verticalement et gourmandes en ressources matérielles notamment) qui n’ont pas été conçues à l’origine pour une manipulation massive de données, les bases de type NoSQL sont beaucoup plus rentables en distribuant efficacement les données et en ne suivant pas ce modèle traditionnel et rigide de normalisation de données ou de mapping relationnel.
Ce sont surtout les grands acteurs du cloud (AWS, Google, Facebook, etc.) qui ont démocratisé ces bases de données NoSQL d’abord pour répondre à leurs propres besoins d’efficacité et de performances. « A partir de 2004, après une série de bugs, pendant la période des fêtes et des soldes, rencontrée sur l’architecture monolithique de notre plate-forme de commerce électronique Amazon.com, nous avons commencé à réfléchir à ce que nous pouvions améliorer. Nous avions donc fait le choix des microservices et des API, l’accès direct à la base de données n’étant plus une option. De plus, nos modèles d’utilisation, notamment pour la gestion des sessions ou des paniers des consommateurs, ne nécessitaient pas la complexité d’une base de données relationnelle d’où la création de notre base clé-valeur non relationnelle Dynamo », donne en exemple Sébastien Stormacq, développeur senior chez AWS.
À chaque besoin, sa base de données
Dans cette galaxie des bases de données NoSQL, il existe plusieurs types de bases qui peuvent, dans certains cas, correspondre à des besoins différents. Déjà les bases de données à clé-valeur comme DynamoDB ou Redis, lesquelles conviennent parfaitement pour les applications web dans la gestion de sessions ou des paniers ; ces bases, qui exploitent une méthode clé-valeur simple pour stocker des données, sont essentiellement sollicitées pour leurs performances.
Les bases de données de type documents comme MongoDB ou CouchBase stockent et interrogent les données sous forme de documents de type JSON ou XML, c’est-à-dire en utilisant le même format de modèle de document que celui utilisé dans leur code d’application. Chaque document est différent et peut comporter un nombre de champs variable, la taille et le contenu de chaque document varient également. Ce type de base de données est utilisé pour les applications qui gèrent du caching et du contenu (des données clients à la gestion de catalogue produits). Pour Hervé Oliny, Solutions Engineering Southern Europe chez Couchbase, une base de données documentaire répond à une très grande diversité d’usages due entre autres à sa flexibilité et son évolution. Un avis que partage Jérôme Delozière, senior vice-président - Continental Europe & Middle East chez MongoDB, qui parle même de bases de données généralistes répondant à tout type de cas d’usages.
Citons ensuite les bases de données orientées colonnes comme Cassandra (projet lancé par Facebook en 2007), idéales pour faire de la visualisation de données. Ces dernières sont stockées sous forme de colonnes dynamiques alors que dans la majorité des bases de données relationnelles, elles le sont en lignes. Enfin, les bases de données orientées graphe (comme Neo4J, Oracle Graph ou AWS Neptune) reposent, quant à elles, sur des graphes à l’instar de l’architecture graphique des réseaux sociaux. Elles sont d’ailleurs parfaitement adaptées à la modélisation des données connectées complexes que l’on retrouve dans une multitude de cas d’usages, de la santé, à la finance en passant par la grande distribution et les réseaux sociaux.
De plus en plus de bases en mode serverless
En outre, les bases de données NoSQL sont, de plus en plus, proposées en mode managé (DBaaS) sans gestion du serveur (serverless). L’objectif des éditeurs est bien d’aider les développeurs à créer des applications sans avoir à penser à l’infrastructure de la base de données ou la gestion des capacités. De leur côté, les entreprises recherchent d’ailleurs à adopter une architecture serverless, car cette dernière réduit les coûts de possession et de maintenance des serveurs. Dans une configuration serverless, les entreprises délèguent la gestion des serveurs ou VM et ne paient que les fonctions qu’elles utilisent, principalement le stockage et le calcul. Bref, avec le serverless, il n’y a pas de mise à l’échelle, toute l’évolutivité est opérée par le fournisseur.
Et d'autres bases de données NoSQL...
D’autres bases de données sont aussi à mettre dans la catégorie des « NoSQL » comme celles de type Time Series, à l’instar de celles d’InfluxDB, de Grafana ou d’AWS avec Timestream ou encore Oracle NoSQL Database For Time Series, pour des applications liées à l’IoT, la télémétrie, la surveillance et même le DevOps. « Ce type de base de données sert à stocker des flux d’événements, comme des données issues des capteurs permettant par la suite de réaliser des requêtes très précises », souligne Sébastien Stormacq. De même, il existe des bases de données dites immuables permettant notamment de tenir des journaux comptables ou d’ajouter des données de tel à tel compte, mais que l’on ne peut pas modifier. Proche d’une blockchain dans son approche, Amazon Quantum Ledger Database (QLDB) est par exemple une base de données de registre entièrement gérée qui fournit un journal des transactions transparent, immuable et vérifiable par chiffrement appartenant à une autorité centrale de confiance.