41 votes

Quels sont les avantages et les inconvénients de DynamoDB par rapport aux autres bases de données NoSQL ?

Nous utilisons le module complémentaire de base de données MongoDB sur Heroku pour notre produit SaaS. Maintenant qu'Amazon a lancé DynamoDB, un service de base de données en nuage, je me demandais comment cela changeait le paysage des offres NoSQL ?

Plus précisément, pour les fournisseurs de services en nuage ou SaaS, en quoi l'utilisation de DynamoDB est-elle meilleure ou pire que celle de MongoDB, par exemple ? Y a-t-il des avantages en termes de coût, de performance, d'évolutivité, de fiabilité, de pilotes, de communauté, etc. à utiliser l'un plutôt que l'autre ?

1 votes

DynamoDB et MongoDB sont deux bases de données NOSQL différentes. DynamoDB est une base de données de type clé-valeur alors que MongoDB est une base de données documentaire. Ces deux bases de données ne sont donc pas comparables.

10voto

Bryan Migliorisi Points 4057

Pour commencer, il sera entièrement géré par l'équipe d'experts d'Amazon. Vous pouvez donc parier qu'il évoluera très bien sans pratiquement aucune contribution de l'utilisateur final (développeur).

De plus, étant donné qu'il est construit et géré par Amazon, vous pouvez supposer qu'ils l'ont conçu pour qu'il fonctionne très bien avec leur infrastructure et que les performances seront excellentes. En plus d'être spécifiquement conçu pour leur infrastructure, ils ont choisi d'utiliser des disques SSD pour le stockage, de sorte que, dès le départ, le débit du disque sera nettement supérieur à celui des autres magasins de données sur AWS qui sont sauvegardés sur disque dur.

Je n'ai pas encore vu de pilotes et je pense qu'il est trop tôt pour dire comment la communauté va réagir à cela, mais je soupçonne qu'Amazon aura des pilotes pour toutes les langues les plus populaires et la communauté va probablement bien recevoir cela - et à son tour créer des pilotes et des outils supplémentaires.

5voto

Tyler Brock Points 9769

L'utilisation de MongoDB par le biais d'un add-on pour Heroku transforme effectivement MongoDB en un produit SaaS également.

En réalité, il s'agirait de comparer le service offert par le fournisseur choisi à ce qu'Amazon peut offrir, plutôt que de comparer une solution de persistance à une autre.

C'est très difficile à faire. Chaque fournisseur offrira des niveaux de service différents à des prix différents et l'on pourrait considérer comme bienvenue l'option de l'exécuter sur son propre matériel en local à des fins de développement.

5voto

barbolo Points 682

Le lien suivant contient un tableau qui résume les attributs de DynamoDB et de Cassandra :

http://www.datastax.com/dev/blog/amazon-dynamodb

La possibilité d'indexer des colonnes autres que la clé primaire est un élément qui doit être amélioré dans DynamoDB afin de le rendre plus utilisable.

MISE À JOUR 1 (06/04/2013)

Le 18 avril 2013, Amazon a annoncé la prise en charge des index secondaires locaux, ce qui a rendu DynamoDB vraiment génial :

http://aws.amazon.com/about-aws/whats-new/2013/04/18/amazon-dynamodb-announces-local-secondary-indexes/

0 votes

Le lien de comparaison n'est pas non plus à jour : DynamoDB prend en charge les éléments jusqu'à 400 Ko (au lieu de 64 Ko). aws.amazon.com/blogs/aws/dynamodb-update-json-and-more

5voto

gh02038 Points 41

Je pense que la principale différence à prendre en compte est que MongoDB est un logiciel que vous pouvez installer n'importe où (y compris sur AWS ou sur un autre service en nuage ou en interne) alors que DynamoDB est un SaaS disponible exclusivement en tant que service hébergé par Amazon (AWS). Si vous souhaitez conserver la possibilité d'héberger votre application en interne, DynamoDB n'est pas une option. Si l'hébergement en dehors d'AWS n'est pas envisagé, DynamoDB devrait être votre choix par défaut, à moins que des caractéristiques très spécifiques ne soient plus importantes.

3voto

Kai G Points 1203

Je pense que l'une des principales différences entre DynamoDB et les autres offres NoSQL est le débit provisionné - vous payez pour un niveau de débit spécifique sur une table et si vous gardez vos données bien partitionnées, vous pouvez toujours vous attendre à ce que ce débit soit atteint. Ainsi, au fur et à mesure que la charge de votre application augmente, vous pouvez monter en charge et maintenir des performances plus ou moins constantes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X