JPO : Webinar d'information sur nos formations → RDV mardi à 17h30.

Amazon DynamoDB : la base de données NoSQL d’AWS

logo stylisé Amazon DynamoDBa

Depuis quelques années, et avec l’explosion des volumes de données à traiter, l’utilisation des bases de données NoSQL ou “not only SQL” monte en flèche, avec l’émergence en parallèle de nouveaux outils pour les gérer. Un des logiciels de gestion de ces bases de données les plus ergonomiques et efficaces est Amazon DynamoDB.

Une base de données NoSQL est une base de données qui ne repose pas sur l’architecture standard des bases de données relationnelles, avec lesquelles on interagit classiquement grâce à SQL. En effet, SQL permet de faire des requêtes sur des bases de données sous forme de tableaux.
Les bases NoSQL peuvent être de différents types :

  • Orientées graphes 
  • Orientées documents 
  • Orientées clefs/valeurs 
  • Orientées colonnes 

Les bases de données SQL sont structurées en tableaux, ce qui fait qu’elles sont plus difficiles à distribuer en différents serveurs. Pour les distribuer il faut faire du “vertical scaling”, ce qui nécessite d’augmenter les puissances des données. Elles sont moins scalables et performantes que les bases de données NoSQL, car ces dernières supportent la méthode du “horizontal scaling”, qui au lieu de nécessiter l’augmentation de la puissance d’un seul serveur, permet de distribuer les données parmi plusieurs serveurs et donc de partager les performances. On peut ainsi moduler le nombre de serveurs à utiliser en fonction de la puissance nécessaire. 

Sur le papier, les bases NoSQL permettent une plus grande performance et sont plus scalables. Néanmoins, elles nécessitent plus de technique, car elles ne disposent pas de certaines fonctionnalités automatiques dont sont munies les bases SQL, comme les transactions. Pour les grandes entreprises, qui doivent stocker un nombre important de données, les bases de données NoSQL permettent d’être beaucoup plus flexible et de prendre en charge plus de données, avec un grand nombre de structures possibles.

Qu’est-ce qu’Amazon DynamoDB ?

DynamoDB offre un service de base de données entièrement géré, avec des systèmes intégrés de sécurité, de sauvegarde, de restauration et de mise en cache en mémoire pour les applications à l’échelle d’Internet. Cela signifie que l’on peut créer et gérer des applications dans le cloud à l’aide du logiciel sans avoir besoin de faire appel à un seul serveur. Tout cela est pris en charge par l’application. Il faut savoir que c’est une base de données multimodèle : elle est orientée clefs/valeurs, mais aussi documents. 

Voici d’abord quelques mots sur l’histoire de DynamoDB, d’après Werner Vogels, l’architecte d’AWS et le Chief Technology Officer d’Amazon. La célèbre plateforme de commerce en ligne est constituée de centaines de services découplés, développés et gérés de manière décentralisée. Chaque service conserve ses propres données et a une API que les autres services peuvent utiliser. Plus important encore, l’accès aux données d’un service qui n’est pas le sien n’est pas autorisé. Du fait de la croissance rapide d’Amazon, cette architecture des bases de données n’était plus adaptée. Il fallait trouver une solution au fait que les bases de données devaient être plus évolutives et la communication entre les données des différents services devenait indispensable. En réponse, ils ont commencé à développer un ensemble de technologies de stockage et de base de données pour répondre aux exigences d’évolutivité et de fiabilité de la plateforme de commerce électronique Amazon.com. Selon Werner Vogels, “Dynamo est né de notre besoin d’une base de données clé/valeur hautement fiable et ultra évolutive. Cette base de données non relationnelle, ou NoSQL, était destinée aux cas d’utilisation qui étaient au cœur des opérations de commerce électronique d’Amazon, tels que le panier d’achat et le service de session. Nous devions faire un travail révolutionnaire. Après le lancement réussi du premier système Dynamo, nous avons documenté nos expériences dans un article afin que d’autres puissent en bénéficier. Depuis lors, plusieurs clones de Dynamo ont été construits et l’article sur Dynamo a servi de base à plusieurs autres types de bases de données distribuées.”

 

Comment fonctionne Amazon DynamoDB ?

DynamoDB divise les informations en tables (qui ne sont pas des tables relationnelles !), en articles et en attributs. Chaque table est composée d’articles, eux-mêmes contenant au moins un attribut. Les articles se différencient entre eux par les attributs qu’ils contiennent et les données que ces attributs stockent. Les bases de données Amazon DynamoDB ne sont donc pas régies par des schémas. Chaque article est identifié grâce à sa clé de partitionnement. Chaque article dispose aussi d’une clé de tri, qui permet de le classer avec les autres articles sur les partitions au sein des tables. Les requêtes sur les tables DynamoDB ne sont possibles que si l’on dispose d’une de ces deux clés. Toutes les données sont conservées sur des disques durs SSD et répliquées 3 fois. 

Via des APIs, on peut accéder aux données des bases DynamoDB directement depuis des applications. Il y a 3 types d’opérations qui doivent être connues : 

  • Data Plane : appliquées aux tables. Cette opération permet d’écrire et de lire les données avec 4 outils : create, read, update et delete. 
  • Control Plane : Grâce au Control Plane, on peut gérer et créer des tables dans la base de données. Il permet aussi de contrôler les flux et les indexes. 
  • DynamoDB Streams : Cette opération permet, sur une seule table, d’activer ou de désactiver un flux. 

Un des avantages de DynamoDB est sa compatibilité avec les autres logiciels de son constructeur, Amazon Web Services, qui propose un grand nombre de services, allant d’outils d’analyse de données ou de machine learning à des outils de mise en réseau et de stockage. De plus, il est plus accessible au grand public que ses concurrents, car il est entièrement géré. Il suffit de lancer le logiciel dans sa console AWS pour gérer ses bases de données NoSQL, alors que pour un concurrent comme MongoDB, il faut suivre une longue liste d’instructions. 

Enfin, l’adaptabilité que DynamoDB offre est incontestablement un de ses plus grands avantages, avec une capacité d’adaptation à différents volumes de données qui permet d’accompagner le développement des entreprises de la plus confortable des manières possibles. Les développeurs qui mettent à l’échelle des applications basées sur le cloud peuvent commencer avec juste la capacité dont ils ont besoin, puis augmenter la capacité de demande d’une table donnée à mesure que leur application gagne en popularité. Leurs tables peuvent également croître sans limite à mesure que leurs utilisateurs stockent des quantités croissantes de données. 

DynamoDB propose aussi un tout nouvel outil de cryptage de ses données afin d’assurer la sécurité de ses bases de données. Pour plus d’informations sur la protection des données et la cybersécurité en général.

Vous souhaitez vous former sur les bases de données NoSQL ? Notre formation de Data Engineer est faite pour vous ! Il permet à terme de développer des outils pour gérer de grands volumes de données et de les rendre accessibles et exploitables à toute son équipe.
Vous pouvez avoir plus d’informations
sur notre site ou directement prendre un rendez-vous avec notre équipe formation

Facebook
Twitter
LinkedIn

Tag de l'article :

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone

S'inscrire à la JPO :

Vous souhaitez recevoir notre newsletter data 💌 hebdomadaire ?