DynamoDB vs Azure Cosmos DB
DynamoDB et Azure Cosmos DB sont les bases de données NoSQL managées phares d'AWS et d'Azure. Les deux sont entièrement managées et peuvent tourner en serverless, partitionner les données par clé et monter en charge horizontalement. Les plus grandes différences pratiques sont l'alignement cloud, les API multi-modèles de Cosmos DB et ses cinq niveaux de cohérence ajustables, et la façon dont chacune facture le débit.
Faut-il utiliser DynamoDB ou Cosmos DB ?
Choisis DynamoDB si tu es sur AWS et que tu veux un magasin clé-valeur et document serverless avec une facturation par requête et une intégration AWS profonde. Choisis Azure Cosmos DB si tu es sur Azure, que tu veux des API multi-modèles (document, Cassandra, graphe Gremlin, Table), cinq niveaux de cohérence explicites, ou des écritures multi-régions clés en main. L'alignement cloud tranche généralement avant les fonctionnalités.
DynamoDB vs Cosmos DB en un coup d'œil
| Caractéristique | DynamoDB | Azure Cosmos DB |
|---|---|---|
| Modèle de données | Clé-valeur et document NoSQL ; éléments jusqu'à 400 Ko dans les tables | Multi-modèle ; l'API native pour NoSQL stocke des documents JSON, plus des API compatibles au niveau du protocole pour MongoDB, Cassandra, Gremlin (graphe) et Table |
| Langage de requête / API | API native (GetItem, Query, Scan) plus PartiQL, un langage compatible SQL | Langage de requête de type SQL sur JSON dans l'API NoSQL, plus le langage de requête propre à chaque API de compatibilité |
| Partitionnement / clés | Clé de partition avec une clé de tri optionnelle pour une clé primaire composite | Clé de partition par conteneur ; éléments regroupés en partitions logiques |
| Cohérence | À terme par défaut ; lectures fortement cohérentes disponibles par requête | Cinq niveaux — strong, bounded staleness, session, consistent prefix, eventual — choisis au niveau du compte ou de la requête |
| Écritures multi-régions | Global Tables offre une réplication multi-Région, active-active | Distribution globale clés en main ; peut activer les écritures multi-régions (ce qui exclut le niveau de forte cohérence) |
| Modèle de montée en charge | Partitionnement automatique ; capacité serverless à la demande ou provisionnée | Débit provisionné (RU/s), autoscale ou serverless ; capacité mesurée en Request Units |
| Transactions | Transactions ACID sur plusieurs éléments au sein d'une Région | Transactions ACID au sein d'une partition logique (par ex. batch transactionnel / procédures stockées) |
| Modèle tarifaire | À la demande (par requête) ou RCU/WCU provisionnés, plus le stockage ; AWS uniquement | Request Units par seconde (provisionné, autoscale ou serverless) plus le stockage, facturé sur chaque région activée |
| Meilleurs usages | Applications basées sur AWS avec un accès par clé prévisible voulant du NoSQL serverless zéro-ops | Applications basées sur Azure voulant des API multi-modèles, un réglage de cohérence explicite ou une distribution globale multi-écriture |
Quand DynamoDB est le meilleur choix
- Tu es sur AWS. DynamoDB s'intègre nativement avec IAM, Lambda, Streams et l'écosystème AWS plus large, éliminant le code de liaison que tu aurais autrement écrit.
- Tu veux une tarification simple par requête. La capacité à la demande facture par lecture et écriture, sans débit à provisionner et sans coût à l'arrêt.
- Tes schémas d'accès sont connus et basés sur des clés. Le modèle clé de partition/clé de tri de DynamoDB offre une faible latence cohérente quand tu conçois les clés autour de tes requêtes — voir la conception mono-table.
- Tu veux une réplication multi-Région active-active sur AWS. Global Tables l'offre en tant que configuration.
Quand Cosmos DB est le meilleur choix
- Tu es sur Azure. Cosmos DB s'intègre avec l'identité Azure, Functions et la plateforme environnante de la même façon que DynamoDB le fait avec AWS.
- Tu as besoin d'API multi-modèles. Un seul service expose des API document, Cassandra, graphe Gremlin et Table, ce qui peut faciliter les migrations depuis ces écosystèmes.
- Tu veux une cohérence explicite et ajustable. Cosmos DB offre cinq niveaux de cohérence nommés entre strong et eventual — y compris bounded staleness et session — choisis par compte ou par requête.
- Tu as besoin d'écritures multi-régions clés en main. Cosmos DB peut accepter des écritures dans plusieurs régions avec une distribution globale clés en main (au prix du niveau de cohérence le plus fort).
Travailler avec DynamoDB
Si tu atterris sur DynamoDB, DynoTable en est un client de bureau natif sur macOS, Windows et Linux. Il lit ta chaîne d'identifiants AWS standard, donc tes données restent dans DynamoDB sans rien à migrer. Au-delà de parcourir et d'éditer les éléments en ligne, son SQL Workbench exprime des requêtes de forme relationnelle — jointures, GROUP BY, agrégats — dans le cadre des règles de schéma d'accès de DynamoDB en les compilant en Query/Scan, et son assistant IA tourne sur tes propres identifiants AWS Bedrock.
Le DynamoDB Expression Builder gratuit génère des expressions de condition de clé, de filtre et de mise à jour avec une gestion correcte des mots réservés et des noms d'attributs au format SDK, CLI et PartiQL. DynoTable est une application commerciale à code fermé ; cette page décrit ce qu'elle fait, pas comment elle est construite.
FAQ
Cosmos DB est-il la même chose que DynamoDB ?
Non. Ce sont des produits distincts de Microsoft et d'AWS. Les deux sont des bases de données NoSQL managées, capables de serverless, qui partitionnent par clé, mais Cosmos DB est multi-modèle avec plusieurs API compatibles au niveau du protocole et cinq niveaux de cohérence, tandis que DynamoDB est un magasin clé-valeur et document natif d'AWS avec un modèle de lecture à deux niveaux (à terme ou fort) et PartiQL.
DynamoDB a-t-il des niveaux de cohérence comme Cosmos DB ?
DynamoDB offre deux modes de lecture plutôt que cinq niveaux nommés : lectures à terme (par défaut) et lectures fortement cohérentes choisies par requête au sein d'une Région. Cosmos DB expose un spectre — strong, bounded staleness, session, consistent prefix et eventual — configuré au niveau du compte ou de la requête.
Puis-je migrer de Cosmos DB vers DynamoDB ?
Tu peux, mais prévois un remodelage plutôt qu'un lift-and-shift. Les deux sont du NoSQL partitionné par clé, donc les concepts se transposent, mais tu re-mappes les clés de partition/tri et réécris les requêtes vers l'API de DynamoDB ou PartiQL, et tout usage de l'API Gremlin ou Cassandra de Cosmos DB nécessite un modèle de données différent sur DynamoDB. Pars de tes schémas d'accès — voir comment modéliser les données dans DynamoDB.
Ressources liées
- Apprends la cohérence DynamoDB et les Global Tables multi-Région.
- Modélise les schémas d'accès avec la conception mono-table et comment modéliser les données dans DynamoDB.
- Construis des expressions avec le DynamoDB Expression Builder gratuit.
- Télécharger DynoTable pour travailler avec tes tables DynamoDB.
Dernière vérification le 2026-07-12 par rapport au AWS DynamoDB Developer Guide officiel et à la documentation Microsoft Azure Cosmos DB. Azure Cosmos DB est une marque de Microsoft ; mentionnée ici à des fins d'identification uniquement.