Aller au contenu

Comparaison des solutions infonuagiques d’AWS : bases de données non relationnelles

21 mars 2024

Omotayo Akinbode

Aujourd’hui, le nuage contient presque autant de types de bases de données qu’il y a de cas d’utilisation. Certes, cela permet d’élargir le champ d’application des données, mais comment savoir quel service convient le mieux à nos besoins? Dans un autre article, nous présentions les différentes bases de données relationnelles d’AWS, en montrant montrant tirer le meilleur parti de chacune. Dans les prochaines lignes, nous nous pencherons sur les bases de données non relationnelles de la gamme AWS.

Les bases de données non relationnelles

Les bases dites « non relationnelles » (NoSQL) ne stockent pas les données sous forme de tables (colonnes et rangées), en fonction de relations prédéfinies, mais plutôt par types de données, ce qui les rend plus flexibles que les bases dites « relationnelles ».

1) Clé-valeur

Ce modèle stocke les données par paires clé-valeur. À l’image d’un dictionnaire, la clé est l’identifiant unique (le mot) et la valeur les attributs qui y sont associés (la définition). Sur AWS, les deux principales bases de données clé-valeur sont DynamoDB et Keyspaces.

A) Amazon DynamoDB

Entièrement gérée et sans serveur, DynamoDB est l’une des bases de données NoSQL les plus utilisées parce qu’elle prend en charge des transactions (norme ACID) sur plusieurs tables; elle permet aussi la mise en cache en mémoire avec DAX. Quelques-unes de ses fonctionnalités :

  1. Tables globales : base de données multirégion et multimaître.
  2. Permet la sauvegarde et la restauration d’un instantané.
  3. Latence de quelques millisecondes à toutes échelles.
  4. Opérations CRUD (créer, lire, mettre à jour, supprimer) par interface de programmation d’applications.
  5. Aucune requête d’analyse directe (les jointures ne sont pas permises).
  6. Les schémas d’accès doivent être connus d’avance pour optimiser la conception et la performance.

B) Amazon Keyspaces

Entièrement gérée et sans serveur, Keyspaces permet d’exécuter sur AWS les charges de travail Cassandra, une base de données NoSQL à code source libre. Keyspaces offre le mode de capacité à la demande ou allouée.

C) Amazon S3

Permet de stocker de grandes quantités de données (semi-structurées ou non structurées). Le nom de chaque fichier téléversé représente la clé, et son contenu la valeur.

2) Document

Ce modèle permet le stockage et la gestion de documents de type JSON. Il est couramment utilisé par les développeurs puisqu’il prend en charge le même format de données que leur code d’application. Le stockage s’effectue par paires champ-valeur. Il n’y a qu’une base de données document sur AWS.

Amazon DocumentDB

Cette base de données document, entièrement gérée, permet d’exécuter des charges de travail MongoDB. Les documents JSON y sont stockés en collections, c’est-à-dire en groupes similaires à une table. DocumentDB utilise la même architecture qu’Aurora.

3) En mémoire

Ce modèle permet d’exécuter des tâches en mémoire, notamment dans les cas où l’accès aux données sur un disque pourrait s’avérer dispendieux. La base de données en mémoire permet ainsi d’accéder plus rapidement aux copies de données.

Exemple pratique

Si vous avez une application fréquemment consultée pour obtenir les mêmes renseignements (ex. : tableau de classement de jeu), vous devriez opter pour une base de données en mémoire (Amazon ElastiCache pour Redis), qui permet de stocker, surtout aux fins de lecture, les données fréquemment consultées.

A) Amazon ElastiCache

Principal service en mémoire entièrement géré d’AWS. Il possède sa propre couche de mise en cache dédiée (cache à distance) et est compatible avec deux moteurs en mémoire (Redis et Memcached). Redis convient aux applications complexes comme les files d’attente de messages, la mise en cache de session, les tableaux de classement, etc. À l’inverse, Memcached convient aux caches simples de la base de données Aurora (cache intégré) et est utile lorsqu’on travaille avec un programme en chapelet.

B) DynamoDB Accelerator (DAX)

Service de cache en mémoire pour DynamoDB. Il permet d’accélérer les opérations en mémoire et améliore la performance de DynamoDB. Il existe deux types de caches DAX : le cache d’éléments et le cache de requêtes. Le premier stocke les résultats d’index, alors que le second stocke les résultats des requêtes et analyses. DAX est tout indiqué lorsque, par exemple, les utilisateurs accèdent à certains éléments plus fréquemment.

4) Graphe

Ce modèle permet de détailler avec précision les relations entre les données au moyen de nœuds (objet, état) et d’arêtes (relation entre deux nœuds ).

Amazon Neptune

La base de données graphe entièrement gérée d’AWS. Elle facilite la visualisation des relations complexes entre les ensembles. Elle utilise Apache TinkerPop Gremlin et RDF/SPARQL comme langages de requête.

Exemple pratique

Détection de la fraude et moteurs de recommandations. Les transactions sont stockées en tant que graphes, ce qui aide à repérer, dans un ensemble, les éléments reliés entre eux. Il devient ainsi plus facile de reconstituer, par exemple, la trame d’une fraude.

5) Recherche

Ce modèle facilite la recherche d’information en tous genres dans votre entrepôt de données, et permet la visualisation et l’analyse de données (fichiers journaux, fichiers textes, messages, etc.) en temps quasi réel.

Amazon OpenSearch Service

Le service de recherche entièrement géré d’AWS. Anciennement Amazon Elasticsearch Service, cette branche en code source libre d’Elasticsearch et de Kibana a récemment changé de nom.

Exemple pratique

Service surtout utilisé par les développeurs, pour la recherche plein texte et l’analyse des journaux. À titre d’exemple, on peut rechercher la présence d’un certain mot dans les documents; l’outil fournit un dénombrement agrégé du mot et résume les données.

6) Série chronologique

Ce modèle permet de stocker et d’extraire efficacement des billions d’événements en temps réel. Les données sont stockées par paires temps-valeur. Vu que l’on travaille avec des points de données temporels, ce procédé facilite l’analyse de séries chronologiques.

Amazon Timestream

Cette base de données série chronologique, sans serveur et entièrement gérée, sert à traiter d’énormes volumes de données au fil du temps.

Exemple pratique

Les marchés de valeurs mobilières et les appareils de l’IdO produisent un énorme volume de données dont l’analyse doit être axée sur le temps. Les capacités en mémoire de Timestream maximisent la performance des cas d’utilisation en temps réel (sur l’analyse des données les plus récentes).

7) Registre

Ce modèle repose sur le principe d’ajout sans possibilité d’écrasement ni de suppression. Il s’agit d’un registre transparent, inaltérable et vérifiable par cryptographie.

Amazon QLDB

Cette base de données registre, sans serveur et entièrement gérée, utilise PartiQL comme langage de requête et Amazon ION comme format de stockage. Ses trois principales fonctionnalités sont le registre, le journal et les tables.

  • Le registre se compose d’un journal et d’une liste de tables.
  • Le journal présente l’historique de modification des tables (chaque entrée effectuée, vérifiable par cryptographie).
  • Les tables sont des ensembles de documents (les données proprement dites) stockés au format ION.

Exemple pratique

Une agence gouvernementale requiert un moyen de retracer l’historique de propriété des véhicules. Dans ce contexte, un système de rapport immuable comme QLDB, qui bâtit l’historique de propriété des véhicules au fil du temps, serait tout indiqué.

 


 

Enfin, voici un tableau comparatif des bases de données NoSQL :

Base de données Type de données Charge de travail Volume de données Performance
Amazon DynamoDB Semi-structurées Clé-valeur transactionnelle / Magasin de documents Plage de To supérieure Débit très élevé, faible latence (très faible avec DAX)
Amazon Keyspaces Semi-structurées Cassandra S.O. Faible latence
Amazon DocumentDB Semi-structurées MongoDB Jusqu’à 64 To Débit élevé, faible latence
Amazon ElastiCache Semi-structurées / Non structurées Mise en cache en mémoire Plage de To inférieure Débit élevé, très faible latence
Amazon Neptune Structurées en graphes Ensembles de données ultraconnectés Plage de To moyenne Débit élevé, faible latence
Amazon QLDB Structurées / Semi-structurées Transactionnelle S.O. Débit élevé, faible latence

Conclusion

L’essor des bases de données non relationnelles a permis de simplifier et d’optimiser les architectures dorsales pour une variété d’anciens et de nouveaux cas d’utilisation. Pour faciliter l’accès à ces bases de données, chacune conçue pour répondre à des besoins précis, AWS a entrepris de les réunir sur sa plateforme. On y trouve par exemple QLDB, un service de création de registres, et Keyspaces, qui permet d’effectuer des tâches de travail Cassandra. N’hésitez pas à nous joindre si vous cherchez une solution infonuagique adaptée à votre entreprise.

Vous Avez un Projet?