Ce qui saute vraiment aux yeux en comparant MongoDB vs DynamoDB, c’est leur manière dif­fé­rente d’en­re­gis­trer des données et de les gérer. De plus, DynamoDB est inséré dans le Cosmos AWS alors que MongoDB offre plus de liberté.

MongoDB vs DynamoDB : les deux bases de données NoSQL à succès

S’il était autrefois difficile de con­tour­ner la base de données SQL, l’arrivée de volumes de données de plus en plus im­por­tants a conduit les ap­pli­ca­tions et les sites Web à trouver une nouvelle approche des données. Les solutions sont souvent ce que l’on appelle des systèmes NoSQL (Not only SQL), comme MongoDB et DynamoDB qui tra­vail­lent de manière non re­la­tion­nelle et sont ainsi nettement plus flexibles et surtout plus aptes à l’évo­lu­ti­vité. Ces solutions sont orientées document plutôt que tableaux, ce qui permet de stocker des données non struc­tu­rées ou semi-struc­tu­rées en éco­no­mi­sant de la place et de manière claire. La base de données ac­com­pagne l’en­tre­prise dans l’évolution de ses exigences.

Qu’est-ce que MongoDB ?

MongoDB a été créé en 2009 par 10gen (aujourd’hui MongoDB, Inc.). C’est devenu l’une des solutions les plus ap­pré­ciées dans le domaine des systèmes de gestion de bases de données SQL. Elle est écrite en C++ et en­re­gistre les données sous la forme de documents binaires JSON (BSON). MongoDB est une open source com­mer­cia­li­sée par le Server Side Public License (SSPL) qui offre des packs d’as­sis­tance com­mer­ciale en option. La base de données dont le nom est dérivé de l’anglais « huMONGOus » (gi­gan­tesque) est connue pour sa flexi­bi­lité et son évo­lu­ti­vité. MongoDB utilise le langage de requête MongoDB Query Langage (MQL) pour ses requêtes.

Qu’est-ce que DynamoDB ?

DynamoDB existe depuis 2012. Cette base de données NoSQL sans serveur qui provient d’Amazon est mise à dis­po­si­tion par AWS (Amazon Web Services) en tant que service en­tiè­re­ment géré. L’ap­pli­ca­tion pro­prié­taire était écrite en Java autrefois, afin de gérer des volumes de données toujours plus im­por­tants des activités e-commerce de la maison. Cette base de données travaille orientée documents et re­pré­sente une des solutions les plus rapides offrant le plus d’évo­lu­ti­vité dans le segment NoSQL. DynamoDB utilise aussi des tableaux, mais ceux-ci sont non re­la­tion­nels. La cons­truc­tion du système s’adresse aux grandes ainsi qu’aux plus petites en­tre­prises dont le volume de données et la charge de travail aug­men­tent au fil du temps.

MongoDB vs DynamoDB : champs d’uti­li­sa­tion et évo­lu­ti­vité

Notre com­pa­ra­tif MongoDB vs DynamoDB montre évi­dem­ment que les deux bases de données NoSQL ont des domaines d’ap­pli­ca­tion si­mi­laires : MongoDB et DynamoDB entrent en ligne de compte là où des volumes de données im­por­tants doivent être stockés et gérés de manière claire. MongoDB est adaptée à l’évo­lu­ti­vité ho­ri­zon­tale d’une technique que l’on nomme sharding. Les grands en­re­gis­tre­ments sont au­to­ma­ti­que­ment frag­men­tés et la charge est répartie sur dif­fé­rents serveurs. Comme le système peut tra­vail­ler sans problème avec des données non struc­tu­rées, il s’adresse par­fai­te­ment à la gestion et à la mise à dis­po­si­tion de sites Web et d’ap­pli­ca­tions e-commerce. Tous les contenus né­ces­saires, y compris les images et les vidéos, sont stockés dans un seul document. Le retrait se fait im­mé­dia­te­ment et sans entraîner de retard par­ti­cu­lier pendant que le système fonc­tionne.

DynamoDB offre des options d’uti­li­sa­tion si­mi­laires. Amazon re­com­mande d’utiliser sa propre base de données, surtout pour les ap­pli­ca­tions, les charges de travail médias, l’e-commerce et les pla­te­formes de jeu. Cette demande est tout à fait com­pré­hen­sible : ce système ne pâtit pas de la com­pa­rai­son MongoDB vs DynamoDB et offre, au moins en théorie, des pos­si­bi­li­tés d’évo­lu­ti­vité infinies.

L’une des dif­fé­rences les plus notables entre les systèmes, c’est l’in­té­gra­tion dans AWS. DynamoDB ne fonc­tionne pas en dehors de cet en­vi­ron­ne­ment et s’adresse de fait aux uti­li­sa­teurs qui vivent et peuvent tra­vail­ler avec cette res­tric­tion. Vous obtenez pour cela une gestion ample et vous profitez de processus d’écriture et de lecture ex­trê­me­ment rapides même en cas de volumes de données qui aug­men­tent ra­pi­de­ment.

Fonc­tion­ne­ment

Les deux bases de données ont des objectifs si­mi­laires, certes. Mais lorsque l’on compare MongoDB vs DynamoDB de plus près, il est évident que leur approche est dif­fé­rente : MongoDB renonce to­ta­le­ment aux tableaux SQL typiques et en­re­gistre à la place les données dans des documents qui sont à leur tour regroupés dans des col­lec­tions. Ces documents en format BSON se composent de paires clés-valeur et peuvent avoir dif­fé­rents schémas. Vous pouvez les modifier en ajoutant ou en sup­pri­mant un champ. Si les clés se composent toujours d’une chaîne de ca­rac­tères, les valeurs peuvent quant à elles contenir des chaînes de ca­rac­tères, d’autres documents, des tableaux ou des valeurs boo­léennes. La recherche de texte dans MongoDB se fait via l’index de texte.

DynamoDB fonc­tionne comme mémoire clé-valeur NoSQL qui stocke les données sur des disques durs SSD. Les données peuvent être déposées sans schéma comme valeurs nu­mé­riques, chaînes de ca­rac­tères ou binaires. Les in­for­ma­tions sont divisées dans des tableaux non re­la­tion­nels qui se composent d’articles contenant au moins un attribut. Les opé­ra­tions « Create », « Read », « Update » et « Delete » sont à dis­po­si­tion pour écrire et lire.

Structure de données

D’autres con­trastes entre MongoDB vs DynamoDB con­cer­nent la structure de données et la taille maximale des données. Le format de stockage de MongoDB qui s’appelle BSON est une forme binaire de Ja­vaS­cript Object Notation (JSON) qui fonc­tionne sans schéma. Pour créer un nouveau document, vous n’avez pas besoin de créer une propre col­lec­tion en amont. Au lieu de cela, vous créez le document à l’aide d’une commande simple qui sera ensuite soit insérée dans une col­lec­tion existante ou bien en créera une au­to­ma­ti­que­ment. Le système accepte les données d’une taille maximale de 16 Mo.

La structure de données de DynamoDB fait plutôt penser à une forme de tableaux de solution SQL classique. Il y a, ici aussi, des tableaux qui con­tien­nent des éléments avec des par­ti­cu­la­ri­tés, même si le nombre de ces pro­prié­tés peut varier. Avant de pouvoir utiliser un tableau, vous devez d’abord le créer et définir une clé primaire qui par­ti­tionne les données. Chacune de ces par­ti­tions contient trois nœuds avec une copie des données. Comme la base de données est plei­ne­ment gérée par le système, cette étape est en­tiè­re­ment au­to­ma­ti­sée. Une autre dif­fé­rence visible entre MongoDB vs DynamoDB se dessine dans la taille des documents stockés : le service d’Amazon fixe la limite à 400 Ko maximum.

Dis­po­ni­bi­lité des données

Gé­né­ra­le­ment, DynamoDB divise les trois nœuds que nous avons évoqués en un nœud primaire (nœud maître) et deux nœuds esclaves. Toutes les opé­ra­tions d’écriture et de lecture sont ef­fec­tuées sur le nœud primaire. Après cela seulement a lieu la ré­pli­ca­tion sur les deux nœuds esclaves. Mais il est également possible de répartir les opé­ra­tions de lecture sur les trois nœuds afin d’éviter toute perte de per­for­mances.

En comparant MongoDB vs DynamoDB, il apparaît que la plus vieille solution répartit les données sur plusieurs nœuds et évite ainsi tous problèmes dus à une panne de serveur. Tout comme chez le con­cur­rent d’Amazon, il y a un nœud primaire qui reçoit les étapes d’écriture et met les données à dis­po­si­tion pour les nœuds esclaves. En cas de panne du nœud principal, un autre nœud le remplace au­to­ma­ti­que­ment et devient alors nœud maître, lequel possède déjà toutes les données grâce à la ré­pli­ca­tion. Mais ce processus prend durer jusqu’à 60 secondes.

In­fras­truc­ture, com­pa­ti­bi­lité et langages de pro­gram­ma­tion

Une des dif­fé­rences les plus visibles entre MongoDB vs DynamoDB se dessine dans la mise à dis­po­si­tion et l’in­fras­truc­ture des deux services. MongoDB est une solution en­tiè­re­ment open source gratuite avec des offres de support pro­prié­taires. Le système de gestion de base de données est com­pa­tible avec la plupart des solutions Cloud, des systèmes d’ex­ploi­ta­tion et des con­te­neurs. Les uti­li­sa­teurs décident du contrôle et de l’effort de gestion qu’ils sou­hai­tent avoir et dont ils ont besoin. La base de données doit être con­fi­gu­rée et maintenue de manière in­di­vi­duelle. Bien que cette tâche soit exigeante et demande beaucoup de temps, elle offre aussi une plus grande liberté.

Compute Engine
La solution IaaS idéale pour gérer vos charges de travail
  • vCPU aux coûts avan­ta­geux et cœurs dédiés per­for­mants
  • Sans en­ga­ge­ment pour plus de flexi­bi­lité
  • As­sis­tance par des experts 24h/24 et 7j/7 incluse

DynamoDB suit une tout autre approche : la base de données fait partie de l’en­vi­ron­ne­ment AWS et ne peut pas fonc­tion­ner en dehors de celui-ci. Vous pouvez certes, utiliser DynamoDB de manière optimale avec d’autres outils que ceux de la maison Amazon mais l’ap­pli­ca­tion n’est que peu com­pa­tible avec d’autres solutions. La base de données gérée dans sa totalité est im­mé­dia­te­ment prête à l’emploi et s’occupe au­to­ma­ti­que­ment des mises à jour, de l’évo­lu­ti­vité et des autres tâches. De fait, les uti­li­sa­teurs ont seulement un aperçu limité du travail « en coulisses ».

Le tableau suivant résume les langages de pro­gram­ma­tion soutenus par les deux systèmes :

Langage de pro­gram­ma­tion Soutenu par MongoDB Soutenu par DynamoDB
Ac­tions­cript
C
C#
C++
Clojure
Cold­Fu­sion
D
Dart
Delphi
Erlang
Go
Groovy
Haskell
Java
Ja­vaS­cript
Kotlin
Lisp
Lua
MatLab
.net
Perl
PHP
Po­wer­Shell
Prolog
Python
R
Ruby
Scala
Smalltalk
Swift

Sécurité

DynamoDB s’occupe également de toutes les activités relatives à la sécurité pour ses uti­li­sa­teurs. La base de données qui fait partie du Cosmos AWS et du modèle IAM (Identity and Access Ma­na­ge­ment) est très bien protégée et intégrée. De plus, il n’existe aucune connexion directe à Internet car les demandes sont d’abord trans­mises à une pas­se­relle d’API.

Notre com­pa­ra­tif MongoDB vs DynamoDB souligne que l’effort de travail est nettement plus élevé en utilisant MongoDB si vous souhaitez assurer la sécurité de votre base de données. Les au­to­ri­sa­tions d’accès, les rôles et les pare-feux doivent être installés et maintenus de manière autonome, du moins dans les versions standard du système. Les solutions gérées qui four­nis­sent toutes les fonc­tion­na­li­tés de sécurité né­ces­saires, per­met­tent de débloquer la situation.

Conseil

La solution la plus sûre : choi­sis­sez Managed MongoDB sur IONOS et profitez du savoir-faire de nos experts. Vous obtenez ainsi l’en­vi­ron­ne­ment optimal pour vos données. Découvrez les dif­fé­rentes fonc­tion­na­li­tés et les dif­fé­rents tarifs sur notre site Web officiel.

MongoDB vs DynamoDB : quelles en­tre­prises utilisent MongoDB ou DynamoDB ?

Parmi les en­tre­prises qui ont en­tiè­re­ment ou par­tiel­le­ment recours à MongoDB, nous avons :

  • Adobe
  • Amadeus
  • AppScale
  • Craftbase
  • Disney
  • Etsy
  • Fours­quare
  • Lyft
  • MTV
  • The New York Times
  • Via Varejo

Les en­tre­prises et les pla­te­formes qui gèrent leurs données à l’aide de DynamoDB sont par exemple :

  • Airbnb
  • Amazon
  • Comcast
  • Disney
  • Dropbox
  • Netflix
  • Nike
  • Redfin
  • Samsung
  • Tinder
  • Zoom

Quel service répond à vos besoins ?

MongoDB et DynamoDB sont deux systèmes de gestion de bases de données très puissants qui restent flexibles et évolutifs grâce à leur approche NoSQL. Mais l’angle d’approche des deux solutions est différent. Si vous cherchez un système par­fai­te­ment intégré à Cosmos AWS, qui possède une ar­chi­tec­ture de sécurité solide et qui s’occupe de la plupart des tâches ad­mi­nis­tra­tives à votre place, DynamoDB est la meilleure option. Pour avoir plus de liberté con­cer­nant l’en­vi­ron­ne­ment Cloud et la con­fi­gu­ra­tion, nous vous con­seil­lons d’opter pour le service de MongoDB.

Conseil

Notre Digital Guide comporte de nombreux articles sur l’univers des bases de données. Consultez par exemple nos articles qui comparent MariaDB vs MySQL, qui pré­sen­tent les meil­leures bases de données en open source ou qui vous aident dans vos premiers pas avec MongoDB.

Aller au menu principal