Qu'est-ce qu'une base de données clé-valeur ?

Une base de données clé-valeur est un type de NoSQL base de données qui stocke les données sous la forme d'une collection de paires clé-valeur où chaque clé unique est associée à une valeur de données spécifique. La vitesse et l'efficacité des bases de données clé-valeur en font un bon choix pour les besoins de stockage et d'extraction de données simples lorsque l'accent est mis sur la haute performance. Leur structure sans schéma permet une certaine flexibilité dans la représentation des données, ce qui les rend adaptées à une grande variété d'applications, des systèmes de cache aux analyses en temps réel.

Cette page couvre :

Fonctionnement des bases de données clé-valeur

Pour illustrer le fonctionnement d'une base de données clé-valeur, nous utiliserons un exemple simple tiré de la base de données clé-valeur Couchbase. Couchbase stocke les données sous forme de documents, comme le document ci-dessous, qui se trouve être un document JSON. JSON est un format de données populaire parce qu'il est facile à lire et à écrire pour les humains et les machines, qu'il est léger et qu'il est bien connu et largement soutenu.

key value database

Dans une base de données clé-valeur, chaque document dans son intégralité est une valeur et possède une clé. C'est ce système de stockage qui fait d'une base de données une base de données clé-valeur. Dans cet exemple, airline_10 est la clé et le JSON est la valeur. Les données contenues dans un document peuvent prendre la forme de paires clé-valeur (comme dans cet exemple), mais ce n'est pas obligatoire. Par exemple, les données peuvent être XML, binaires ou de nombreuses autres formes de données structurées, semi-structurées ou non structurées.

Caractéristiques de la base de données clé-valeur

Bien que chaque base de données clé-valeur soit unique, elles partagent de nombreuses caractéristiques qui en font un choix convaincant pour de nombreux cas d'utilisation modernes. Voici quelques-unes des caractéristiques les plus importantes :

Conception sans schéma - L'absence de schéma fixe permet une représentation souple des données. Les bases de données clé-valeur intègrent diverses structures de données au sein d'une même base, ce qui vous permet de faire évoluer facilement vos structures de données au fil du temps.

Modèle de données simple - Grâce à un modèle de données simple, les bases de données clé-valeur sont faciles à utiliser pour les besoins de base. Les méthodes d'accès aux données sont également assez simples (par exemple, obtenir, remplacer, supprimer).

Prise en charge des types de données complexes - Vous pouvez stocker des structures de données complexes et imbriquées en tant que valeurs. Cette fonctionnalité vous permet de représenter divers types de données dans une seule paire clé-valeur pour une modélisation complète des données.

Support de clé secondaire - Les clés secondaires vous permettent d'accéder à des valeurs en utilisant plus d'une clé. Cette fonctionnalité accroît la flexibilité de la recherche de données en étendant les capacités d'interrogation de votre application et en facilitant des schémas d'accès plus diversifiés.

Partitionnement et partage - La prise en charge du partitionnement et du partage des données peut améliorer le traitement parallèle, l'équilibrage des charges et l'évolutivité. Les bases de données clé-valeur les plus avancées prennent en charge la distribution automatique de votre base de données sur plusieurs centres de données. La solution Couchbase base de données distribuéepar exemple, fournit ce support par le biais d'un partage automatique.

Réplication - La réplication des données sur plusieurs nœuds garantit la redondance, la haute disponibilité et la tolérance aux pannes afin de réduire le risque de perte de données ou d'interruption de service.

Support ACID - L'ACID (atomicité, cohérence, isolation, durabilité) pour les transactions est un pilier des bases de données relationnelles, assurant l'intégrité et la fiabilité des données même en cas de défaillance ou d'erreur du système. Historiquement, l'ACID a mis du temps à s'imposer dans les bases de données NoSQL parce qu'elle contrecarre les avantages d'une vitesse plus rapide, mais elle est de plus en plus répandue. Couchbase, par exemple, prend en charge transactions ACID multi-documents distribuées à l'échelle sans sacrifier la flexibilité ou la haute disponibilité.

Cas d'utilisation de la base de données clé-valeur

La polyvalence des bases de données clé-valeur en fait une option idéale pour répondre à un large éventail d'exigences des applications modernes avec simplicité, rapidité et évolutivité. Les bases de données clé-valeur sont souvent choisies pour :

Mise en cache
Les bases de données clés-valeurs excellent dans les scénarios de mise en cache où l'accès rapide aux données fréquemment utilisées est crucial pour l'optimisation des performances.

Profils d'utilisateurs
Les bases de données clés-valeurs sont bien adaptées pour fournir une solution rapide et évolutive pour le stockage et la gestion des informations liées à l'utilisateur telles que le nom d'utilisateur, l'adresse électronique et les préférences de l'utilisateur.

Stockage de la session
Les bases de données clé-valeur sont efficaces pour gérer les données de session car elles garantissent un accès et des mises à jour rapides pour les connexions, les authentifications et les interactions.

Analyse en temps réel
Grâce à un accès rapide aux données, les bases de données clés-valeurs conviennent aux scénarios d'analyse dans lesquels une récupération rapide des données est essentielle. Les exemples incluent la tarification dynamique, les offres marketing personnalisées et les scores de crédit en temps réel.

Catalogues de produits
Les bases de données clé-valeur constituent un moyen simple et efficace de gérer les catalogues de produits, en particulier dans les scénarios où les produits ont une grande variété d'attributs différents. La représentation des détails des produits à l'aide de paires clé-valeur permet des mises à jour flexibles et une récupération rapide pour les applications de commerce électronique.

Avantages et inconvénients des bases de données clé-valeur

Les bases de données relationnelles traditionnelles sont les bases de données les plus utilisées et utilisent le langage d'interrogation le plus populaire, SQL. Les avantages et inconvénients suivants des bases de données clés-valeurs sont donc présentés dans le cadre de l'évaluation de la qualité des bases de données relationnelles. comparaison avec les bases de données relationnelles et SQL.

Avantages

Simplicité - Les bases de données clé-valeur ont un modèle de données simple qui réduit la complexité de la conception de la base de données et des opérations d'interrogation. Cette simplicité facilite l'utilisation et le développement.

Haute performance - Les bases de données clé-valeur sont optimisées pour des opérations de lecture et d'écriture rapides, ce qui permet un accès rapide aux données stockées. Cette optimisation est un facteur clé dans la fourniture de performances globales élevées pour les applications exigeant une grande rapidité.

Évolutivité - Les bases de données clé-valeur offrent l'extensibilité horizontale en permettant l'ajout de nœuds pour gérer l'augmentation du volume de données et du trafic. Cette évolutivité horizontale rend plus facile et plus abordable la croissance d'un système pour répondre à l'évolution des besoins. Couchbase utilise le sharding automatique basé sur les clés pour distribuer les données de façon homogène dans un cluster. Les développeurs n'ont donc pas à se préoccuper de la configuration des clés de shard, du partitionnement ou des points chauds.

Flexibilité - Une conception sans schéma prend en charge diverses structures de données dans une seule base de données et s'adapte facilement à l'évolution des structures de données. Ces capacités sont particulièrement avantageuses lorsque les modèles de données doivent être modifiés au fil du temps.

Mise en cache efficace - Les bases de données clé-valeur sont très efficaces pour cache car leur structure simple permet un accès rapide et direct aux données sans structures relationnelles complexes. Les performances globales du système sont améliorées car il n'est plus nécessaire d'aller chercher à plusieurs reprises les mêmes données dans des systèmes de stockage plus lents.

Inconvénients

Capacités d'interrogation limitées - Les bases de données clés-valeurs ne disposent pas de capacités d'interrogation avancées par rapport aux bases de données relationnelles, ce qui les rend moins adaptées aux scénarios d'interrogation et d'analyse complexes qui impliquent des jointures et des relations multiples. Couchbase résout ce problème en utilisant SQL++ pour prendre en charge des syntaxes sophistiquées telles que les JOIN et les sous-requêtes, et il fournit également un accès innovant aux fonctionnalités JSON telles que les objets imbriqués et les tableaux.

Défis en matière d'intégrité des données - Garantir l'intégrité des données peut s'avérer difficile dans les bases de données clé-valeur, en particulier dans les environnements distribués. Nombre d'entre elles n'appliquent pas le même niveau de cohérence et d'intégrité référentielle que les bases de données relationnelles traditionnelles. Une approche différente de la modélisation des données, telle que la modélisation des données JSON, peut atténuer les difficultés. Voir également notre discussion sur la prise en charge de l'ACID dans la section des fonctionnalités ci-dessus.

Courbe d'apprentissage pour le paradigme NoSQL - L'adaptation à NoSQL peut représenter une courbe d'apprentissage intimidante pour les développeurs habitués à SQL et aux modèles de bases de données relationnelles. Couchbase utilise SQL++ afin que les développeurs puissent utiliser leurs compétences SQL existantes pour créer des applications modernes avec tous les avantages de JSON.

Exemples de bases de données clé-valeur

  • Redis est une base de données clé-valeur en mémoire, open source, connue pour sa rapidité et sa polyvalence. Elle prend en charge diverses structures de données telles que les chaînes de caractères, les hachages, les listes et les ensembles. En tant que base de données entièrement en mémoire, Redis est souvent utilisé comme cache avec une autre base de données.
  • Amazon DynamoDB est un service de base de données documents et clés-valeurs entièrement géré, fourni par Amazon Web Services (AWS). Il est couramment utilisé pour les applications avec des charges de travail dynamiques et est intégré dans l'écosystème AWS, ce qui le rend pratique pour les applications basées sur le cloud.
  • Couchbase fournit une structure de document JSON flexible qui facilite le stockage et la récupération de données complexes. Il est reconnu pour sa facilité d'extensibilité et sa distribution efficace des données. Parmi ses caractéristiques uniques, citons son langage d'interrogation SQL++ et sa capacité à fonctionner comme une base de données de documents, un magasin de valeurs clés et un cache.

Couchbase et magasin de valeurs clés

Couchbase est une base de données NoSQL qui fonctionne à la fois comme un magasin de valeurs clés et comme une base de données orientée documents. Son langage de requête SQL++ permet aux développeurs de passer facilement des bases de données traditionnelles à la flexibilité de JSON pour alimenter les applications modernes de leur organisation.

Pour le stockage des données, Couchbase organise les données sous forme de paires clé-valeur, et le modèle orienté document de Couchbase permet aux valeurs d'être des documents JSON complexes. Les documents au format JSON peuvent être indexés dans des index secondaires, qui sont des index sur n'importe quelle clé-valeur ou clé de document. Cette flexibilité s'adapte aux données structurées, semi-structurées et non structurées.

Couchbase est optimisé pour performances élevées en lecture et en écritureIl convient donc aux scénarios dans lesquels l'accès rapide aux données est crucial. Il prend en charge l'évolutivité horizontale et gère efficacement le volume de données et l'augmentation du trafic en répartissant les données sur plusieurs nœuds.

Le présent article de blog vous guide à travers un échantillon de données pour vous montrer comment fonctionne le magasin clé-valeur Couchbase.

Conclusion

Les bases de données clés-valeurs sont une alternative moderne aux bases de données relationnelles traditionnelles qui offrent de meilleures performances, une meilleure évolutivité et une plus grande flexibilité pour de nombreux cas d'utilisation. Leur conception sans schéma permet de créer diverses structures de données et de les faire évoluer facilement au fil du temps. Un modèle de données simple les rend conviviales, tandis que des fonctions avancées les rendent aptes à répondre aux besoins exigeants des entreprises.

Bien que les bases de données clé-valeur présentent certains inconvénients par rapport aux bases de données relationnelles, les solutions les plus avancées deviennent rapidement plus sophistiquées et ajoutent des capacités pour remédier aux limitations précédentes. Couchbase est un exemple de base de données cloud NoSQL distribuée et de key-value store de premier plan qui offre polyvalence, performance, évolutivité et valeur pour les applications cloud, mobiles, IA et edge.

Pour en savoir plus sur les bases de données clé-valeur et les technologies connexes, consultez les sites suivants resources:

Types de bases de données
6 types de modèles de données
Qu'est-ce que Couchbase ?
Comment Couchbase sauvegarde les données
Comprendre le service de données Couchbase
Opérations clé-valeur dans Couchbase
Opérations clé-valeur avec Python
Opérations clé-valeur avec PHP
Opérations CRUD clé-valeur dans Couchbase
En savoir plus sur Couchbase key-value store