• 20 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 09/03/2023

Explorez les alternatives non relationnelles

Les bases de données non-relationnelles (NoSQL) stockent des données volumineuses et non structurées (sans schéma fixe). Voici ce que propose AWS  :

  • DynamoDB

  • DocumentDB

  • OpenSearch

  • Keyspaces

  • Neptune

  • QLDB

DynamoDB

DynamoDB est le service de base de données clé-valeur NoSQL propriétaire et sans serveur, conçu pour exécuter des applications hautes performances à n'importe quelle échelle.

Le schéma ci-dessous présente ses principales caractéristiques :

Schéma en 2 niveaux. Application (C), les AZ a-c reliés par une fleche (D). AZ b comporte DynamoDB (B), à coté duquel on voit une fleche verticale à double sens (E). DynamoDB est rélié avec “application” par des fleches “ecriture” et “lec
Les caractéristiques principales du service DynamoDB

A - Répond à des millions de requêtes par seconde.

B - Pour une utilisation peu fréquente et un stockage longue durée, utilisez la classe DynamoDB Standard – Accès peu fréquent (IA). 

C - Un rôle IAM est nécessaire pour être authentifié et autorisé sur DynamoDB.

D - Haute disponibilité grâce à la réplication sur tous les AZ de façon transparente, sans approvisionnement et sans maintenance.

E - DynamoDB stocke une centaine de TB de données.

DynamoDB vous permet de créer des tables pour stocker des données appelées éléments (items) qui sont constitués d’attributs. Ci-dessous la structure d’une table : 

Table DynamoDB avec les colonnes suivantes : Commentaire_ID et Article ID (clé primaire, A). Nom, Texte, Date, expireA (TTL, clé primaire composite, D) qui constituent les attributs (C).
Explication de la structure d’une table DynamoDB

A - La clé primaire doit toujours être unique pour chaque élément (item) de la table. 

Il y a deux genres de clés primaires : 

  • clé de partition

  • ou clé de partition + clé de tri

B - Tous les éléments avec la même valeur de clé de partition sont stockés dans la même partition, par ordre de valeur de la clé de tri.

C - Les attributs peuvent être différents selon les éléments. Créez un attribut comme index secondaire, vous permettant d'interroger les données grâce à une clé alternative, en plus des requêtes sur la clé primaire.

D - Time-To-Live (TTL) est un attribut optionnel permettant de définir un timestamp pour l'élément (item) au bout duquel DynamoDB le purge automatiquement. 

1672444800=”2022/12/31 00:00:00”

E - La taille max d’un élément = 400 KB.

F - DynamoDB stocke les données d’une table dans des partitions. Une partition est une allocation de stockage, automatiquement répliquée dans plusieurs AZ d’une même région.

DynamoDB fournit d’autres fonctionnalités (features) pour s’intégrer plus efficacement avec d’autres services :

  • DynamoDB Streams : enclenche un flux (stream) ordonné d’informations, à chaque fois qu’un élément est créé/modifié/supprimé, pour invoquer d’autres services AWS qui y appliquent un traitement.

Un chemin mène du site web vers DynamoDB Table, puis DynamoDB Stream, puis le bloc “Appliquer un traitement” qui comporte Lambda, EC2, ECS, puis le bloc “stocker” qui comporte OpenSearch, Keyspaces et DynamoDB.
Fonctionnement de la fonctionnalité DynamoDB Stream
  • DynamoDB Accelerator (DAX) : un cache en mémoire entièrement géré, hautement disponible et transparent pour DynamoDB, qui réduit les temps de réponse jusqu'à dix fois.

Icône “site web” est relié par une flèche à double sens (A,B) avec le bloc “Cluster DAX” qui comporte les caches (C). Ce dernier est relié par une flèche (D) avec un bloc “DynamoDB” qui comporte les tables.
Principe de la fonctionnalité de DynamoDB Accelerator

A - DAX est compatible avec les API de DynamoDB, donc aucune modification de la logique du site web à réaliser.

B - Traite des millions de requêtes par seconde, avec des latences de plusieurs millisecondes à quelques microsecondes.

C - Par défaut : 5 minutes TTL pour le cache.

D - Idéal pour mettre en cache des requêtes fréquentes de type query/scan qui prennent du temps à être calculées par DynamoDB.

  • Tables Globales : créent des tables automatiquement répliquées dans plusieurs régions avec des temps de réponse très faibles.

Le schéma de la table globale comporte 3 régions : Dubaï, Singapore et Paris, tous reliés entre eux par des flèches.
Principe de la fonctionnalité des Tables Globales

A - Les données peuvent être lues et créées dans n’importe quelle région.

B - Réplication multiactive : chaque modification dans une région est automatiquement répliquée dans les autres régions.

C - Dans chaque région, DynamoDB Streams doit être activé.

DocumentDB

C’est un service entièrement géré et compatible avec MongoDB

Schéma en 2 niveaux : application et les AZ a-c reliés entre eux par une flèche (Service hautement disponible avec des réplicas répartis sur tous les AZ.). AZ b comporte DynamoDB (Compatible mongoDB. Les données sont indexées en JSON. L’espace di
Caractéristiques du service DocumentDB

OpenSearch

Ce service est entièrement géré et compatible avec le moteur de recherche NoSQL ElasticSearch, avec lequel vous pouvez rechercher très rapidement n'importe quel mot/valeur. OpenSearch est couramment utilisé en complément d'une autre base de données.

Une flèche relie l’application avec OpenSearch (OpenSearch possède son propre langage de requête différent de SQL). Une autre relie OpenSearch dashboard (un outil de visualisation pour construire des tableaux de bord) avec OpenSearch.
Caractéristiques du service OpenSearch

Keyspaces

C’est un service entièrement géré et sans serveur compatible avec la base de données NoSQL Cassandra. Idéal pour stocker des données de l’Internet des Objets (IoT) ou de séries chronologiques.

Une flèche relie l’application avec Keyspaces. Keyspaces est un service sans serveur qui réplique les tables 3 fois sur plusieurs AZ. Il utilise le langage de requête de  Cassandra : CQL. Keyspaces augmente/réduit automatiquement les tables en fonct
Caractéristiques du service Keyspaces

Neptune

Ce service entièrement géré fournit des bases orientées graphes. Les réseaux sociaux sont un exemple de cas d’usages.

Logo
Logo Amazon Neptune

Quantum Ledger Database (QLDB)

Un service entièrement géré et sans serveur, qui fournit un registre centralisé et inaltérable stockant l’historique de transactions financières. 

logo
Logo Amazon QLDB

Questions types de l'examen

Voici un exemple de question sur les sujets vus dans ce chapitre que vous pourriez avoir à l'examen. Essayez d'y réfléchir vous-même avant de vérifier la réponse.

Une organisation de vente au détail déploie une nouvelle application qui lira et écrira des données dans une base de données. L'entreprise souhaite déployer l'application dans trois régions AWS différentes dans une configuration active-active. Les bases de données doivent être répliquées pour maintenir la synchronisation des informations.

Quelle solution répond le mieux à ces exigences ?

  • Amazon DynamoDB avec tables globales

  • Migrer les données avec AWS Batch

  • Amazon Athena avec réplication interrégionale Amazon S3

  • Base de données Amazon Aurora Globale

En résumé

  • DynamoDB est le service propriétaire d’AWS pour les bases de données non relationnelles.

  • Les services DocumentDB, OpenSearch, Keyspaces, Neptunes et QLDB permettent de créer des bases de données non relationnelles, basées sur des solutions open-source ou du marché.

Maintenant, comment créer une application pour mettre en cache des données en complément des bases de données relationnelles et non relationnelles ? Allons voir le chapitre suivant !

Exemple de certificat de réussite
Exemple de certificat de réussite