Azure Cosmos DB : NoSQL mondial
Explorez l’architecture multimodèle et multirégion de Cosmos DB, comprenez les clés de partition et choisissez le niveau de cohérence adapté aux besoins de votre application.
Azure Cosmos DB : NoSQL mondial est une leçon Azure Fundamentals gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Azure Fundamentals, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Azure Fundamentals comprend 4 leçons au total.
Qu’est-ce qu’Azure Cosmos DB ?
Azure Cosmos DB est le service de base de données NoSQL multimodèle et distribué à l’échelle mondiale de Microsoft. Il est conçu pour offrir une latence de lecture et d’écriture de quelques millisecondes, quelle que soit l’échelle et partout dans le monde. Contrairement aux bases de données traditionnelles limitées à une seule région, Cosmos DB peut répliquer de manière transparente les données dans des dizaines de régions Azure simultanément.
Prise en charge de plusieurs API et modèles
Cosmos DB prend en charge plusieurs API de bases de données au sein d’un même service. Vous pouvez utiliser l’API NoSQL native (documents JSON), l’API MongoDB pour les applications reposant sur des pilotes MongoDB, l’API Apache Cassandra pour les charges de travail en colonnes larges, l’API Gremlin pour les données de graphes et l’API Table pour les données clé-valeur. Chaque API expose le moteur sous-jacent de Cosmos DB au moyen d’une interface familière.
Comptes, bases de données et conteneurs
La hiérarchie des ressources Cosmos DB comporte trois niveaux. Un compte est la ressource de niveau supérieur qui définit la liste des régions de réplication et le niveau de cohérence. Dans un compte, vous créez des bases de données servant d’espaces de noms logiques. Dans chaque base de données, vous créez des conteneurs — l’unité qui contient les éléments (documents) et dans laquelle le débit est provisionné.
# Create a Cosmos DB account with the NoSQL API
az cosmosdb create \
--name mycosmosaccount \
--resource-group myRG \
--kind GlobalDocumentDB \
--locations regionName=eastus failoverPriority=0 isZoneRedundant=true
# Create a database
az cosmosdb sql database create \
--account-name mycosmosaccount \
--resource-group myRG \
--name myDatabaseClés de partition : la base de la mise à l’échelle
Une clé de partition est une propriété présente dans chaque élément, que Cosmos DB utilise pour distribuer les données entre les partitions physiques. Le choix de la clé de partition est essentiel : elle doit présenter une forte cardinalité (de nombreuses valeurs distinctes), répartir uniformément le trafic d’écriture et apparaître dans la majorité de vos requêtes. Un mauvais choix de clé de partition entraîne des partitions saturées qui limitent le débit et dégradent les performances.
// Example container with /userId as partition key
// Items in the container:
{
'id': 'order-001',
'userId': 'user-42',
'product': 'Widget',
'total': 29.99
}
// userId distributes orders across partitionsDébit : modèle RU/s
Cosmos DB facture le débit en unités de requête par seconde (RU/s). Une RU correspond approximativement au coût de lecture d’un document de 1 KB par son ID. Les écritures, les requêtes et les suppressions consomment davantage de RU selon la taille de l’élément et la complexité de l’index. Vous pouvez provisionner les RU/s au niveau du conteneur ou partager un pool entre tous les conteneurs d’une base de données, et passer en mode autoscale pour laisser Cosmos DB ajuster automatiquement le débit.
# Create a container with 400 RU/s
az cosmosdb sql container create \
--account-name mycosmosaccount \
--resource-group myRG \
--database-name myDatabase \
--name orders \
--partition-key-path '/userId' \
--throughput 400Distribution mondiale
La fonctionnalité la plus puissante de Cosmos DB est sa capacité à répliquer les données à l’échelle mondiale en quelques clics. Vous ajoutez des régions à votre compte, puis Cosmos DB synchronise automatiquement toutes les écritures dans chaque région. Chaque région peut servir simultanément les lectures et les écritures dans une configuration à écritures multiples (multi-maître), ce qui réduit la latence pour les utilisateurs géographiquement dispersés.
# Add a second region to the Cosmos DB account
az cosmosdb update \
--name mycosmosaccount \
--resource-group myRG \
--locations regionName=eastus failoverPriority=0 \
regionName=westeurope failoverPriority=1Cinq niveaux de cohérence
Cosmos DB propose cinq niveaux de cohérence réglables, classés du plus fort au plus faible : Strong (lectures linéarisables, latence la plus élevée), Bounded Staleness (les lectures accusent un retard limité sur les écritures), Session (valeur par défaut — lectures cohérentes pour vos propres écritures au sein d’une session), Consistent Prefix (les lectures n’observent jamais des écritures dans le désordre) et Eventual (lectures les plus rapides, garanties les plus faibles). Choisissez en fonction de la tolérance de votre application à l’utilisation de données obsolètes.
Indexation automatique
Par défaut, Cosmos DB indexe automatiquement chaque propriété de chaque élément que vous insérez, sans vous obliger à définir un schéma au préalable. Cela permet d’effectuer des requêtes ponctuelles flexibles sans maintenance des index. Vous pouvez personnaliser la stratégie d’indexation afin d’exclure les chemins qui ne sont jamais interrogés (pour réduire les coûts de stockage) ou d’ajouter des index composites pour les requêtes ORDER BY portant sur plusieurs propriétés.
// Custom indexing policy example
{
'indexingMode': 'consistent',
'includedPaths': [{ 'path': '/*' }],
'excludedPaths': [
{ 'path': '/largeTextBlob/?' },
{ 'path': '/_etag/?' }
]
}Flux de modifications pour les applications pilotées par les événements
Le flux de modifications est un journal trié de toutes les opérations de création et de mise à jour effectuées sur un conteneur Cosmos DB. Les applications s’abonnent au flux de modifications pour déclencher un traitement en aval — par exemple, mettre à jour un index de recherche, envoyer des notifications ou écrire dans une vue matérialisée. Le flux de modifications constitue la base des modèles pilotés par les événements et CQRS dans les architectures Cosmos DB.
Time-to-Live (TTL) pour les données à expiration
Cosmos DB prend en charge Time-to-Live (TTL), une propriété que vous définissez sur un conteneur ou sur des éléments individuels pour les supprimer automatiquement après un nombre de secondes défini. Cette fonctionnalité convient parfaitement aux données de session, aux entrées de cache, aux journaux d’audit soumis à des périodes de conservation réglementaires ou à toute donnée dont l’expiration est connue. Les suppressions TTL sont effectuées comme des tâches en arrière-plan et ne consomment pas les RU/s provisionnées.
// Enable TTL on a container (TTL in seconds)
az cosmosdb sql container update \
--account-name mycosmosaccount \
--resource-group myRG \
--database-name myDatabase \
--name sessions \
--ttl 3600Tarification et niveau Serverless
Cosmos DB propose deux modes de facturation. Le débit provisionné est facturé par RU/s-heure, quelle que soit l’utilisation réelle, et convient aux charges de travail stables et prévisibles. Le mode Serverless est facturé en fonction des RU consommées et des GB stockés, sans coût minimal, ce qui le rend économique pour le développement, le prototypage et les pics de trafic. Cosmos DB Serverless est actuellement limité à une seule région.
Vérification rapide
Testez votre compréhension des concepts de Microsoft Azure Fundamentals (AZ-900) abordés dans cette leçon.
Récapitulatif de la leçon
Dans cette leçon, vous avez appris que Cosmos DB est un service NoSQL multimodèle distribué à l’échelle mondiale, que les clés de partition déterminent la manière dont les données sont réparties et doivent être choisies avec soin, et que cinq niveaux de cohérence vous permettent de trouver un équilibre entre latence et fraîcheur des données. Nous allons maintenant découvrir les services Azure gérés pour les moteurs de bases de données open source.
Questions Fréquemment Posées
La leçon « Azure Cosmos DB : NoSQL mondial » est-elle gratuite ?
Oui — le texte complet de « Azure Cosmos DB : NoSQL mondial » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Azure Fundamentals, passe à CoddyKit PRO. Le cours Azure Fundamentals comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Azure Cosmos DB : NoSQL mondial » ?
Explorez l’architecture multimodèle et multirégion de Cosmos DB, comprenez les clés de partition et choisissez le niveau de cohérence adapté aux besoins de votre application. Tu pratiques Azure Fundamentals avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Azure Fundamentals ?
Aucune expérience préalable n'est requise. Azure Fundamentals sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Azure Cosmos DB : NoSQL mondial » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Azure Fundamentals ?
Oui. Chaque leçon Azure Fundamentals inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Azure SQL Database
- Azure Cosmos DB : NoSQL mondial
- Bases de données Azure pour moteurs open source
- Migration de bases de données vers Azure