Skip to content
Learni
Voir tous les tutoriels
Cloud & Bases de données

Comment maîtriser Azure Cosmos DB en 2026

Read in English

Introduction

Azure Cosmos DB est la base de données NoSQL multi-modèles de Microsoft Azure, conçue pour des applications à haute scalabilité et faible latence mondiale. Lancée en 2017, elle s'est imposée en 2026 comme la référence pour les apps distribuées, supportant des milliards de requêtes par jour chez des géants comme Coca-Cola ou Verizon.

Pourquoi l'adopter ? Contrairement aux bases relationnelles traditionnelles comme SQL Server, Cosmos DB excelle dans les scénarios Big Data, IoT et e-commerce où les données sont hétérogènes et les pics de trafic imprévisibles. Elle offre une distribution globale transparente (multi-régions actives), des SLA de 99,999 % de disponibilité et une facturation au consommé via les Request Units (RU/s).

Ce tutoriel débutant, 100 % conceptuel, vous guide des bases théoriques aux bonnes pratiques avancées. À la fin, vous saurez modéliser vos données, choisir les bons paramètres et éviter les pièges coûteux. Pas de code : focus sur la théorie actionnable pour bookmarker et réviser.

Prérequis

  • Un compte Azure gratuit (crédit de 200 € pour tester).
  • Connaissances de base en bases de données (relationnelles ou NoSQL).
  • Compréhension des concepts JSON et schémas flexibles.
  • Accès au portail Azure (portal.azure.com).

Qu'est-ce qu'Azure Cosmos DB ? Les fondations

Azure Cosmos DB est une base de données distribuée globalement, serverless par défaut en 2026, qui abstrait la complexité de la réplication et du partitionnement.

Analogie : Imaginez un supermarché géant avec des rayons dupliqués dans chaque ville. Cosmos DB est ce supermarché : vos données sont répliquées automatiquement dans plusieurs régions Azure, avec lecture/écriture forte ou éventuelle selon vos besoins.

Caractéristiques clés :

  • Multi-modèles : SQL (Core), MongoDB, Cassandra, Gremlin (graph), Table (Azure Table).
  • Scalabilité horizontale : Ajoutez des RU/s ou des conteneurs sans downtime.
  • Indexation automatique : Tout est indexé par défaut, mais personnalisable.

Exemple concret : Une app e-commerce stocke produits (JSON), utilisateurs (MongoDB) et relations graph (recommandations) dans un seul compte Cosmos DB.

Les modèles de données supportés

Cosmos DB brille par sa polyvalence : choisissez l'API au niveau du compte.

ModèleUsage idéalExemple
------------------------------
SQL (Core)Documents JSON flexiblesCatalogues produits, logs IoT
MongoDBApps existantes MongoCMS, apps mobiles
CassandraWorkloads tabulaires hautes écrituresTime-series, capteurs
GremlinGraphes complexesRéseaux sociaux, fraudes
TableDonnées clé-valeur simplesConfigs, sessions
Choix stratégique : Pour un débutant, commencez par SQL API (99 % des cas). Elle supporte des requêtes SQL-like sur JSON : SELECT * FROM c WHERE c.age > 30. Évitez de mixer APIs dans un compte pour simplifier la gestion.

Concepts clés : Conteneurs, partitions et RU/s

Hiérarchie des objets :

  1. Compte : Point d'entrée global (régions, clés API).
  2. Base de données : Logique (groupes de conteneurs).
  3. Conteneur : Unité de stockage scalable (équivaut à une table).

Partitionnement logique : Clé de partition (ex: /userId) distribue les données sur des partitions physiques. Règle d'or : Choisissez une clé à cardinalité élevée (millions de valeurs uniques) pour scaler.

Request Units (RU/s) : Unité de throughput. 1 RU/s ≈ 1 lecture de 1 Ko. Provisionnez autoscale pour les pics (10-100x auto).

Exemple : Dans un conteneur 'Orders', clé /customerId : toutes les commandes d'un client vont dans la même partition physique → Requêtes rapides par client.

Scalabilité globale et cohérence

Cosmos DB excelle en multi-région : Activez 2+ régions pour zéro latence (<10 ms).

Modèles de cohérence (5 niveaux) :

  • Strong : Lecture voit toutes les écritures (rare, coûteux).
  • Bounded Staleness : Limite la fraîcheur (idéal e-commerce).
  • Session : Cohérent par session utilisateur (défaut apps web).
  • Consistent Prefix : Ordre des écritures préservé.
  • Eventual : Éventuel (chat apps).

Analogie : Comme un orchestre mondial : 'Session' garde le rythme par musicien, 'Strong' synchronise tout.

Étude de cas : Netflix utilise Cosmos DB pour 1 milliard+ de profils utilisateurs, avec réplication EU/US en <150 ms.

Bonnes pratiques essentielles

  • Modélisez pour la requête : Dénormalisez les données (dupliquez pour éviter les JOINs coûteux). Ex: Intégrez 'user details' dans chaque 'order'.
  • Choisissez la clé de partition idéale : Haute cardinalité + hotspots évités (pas /status si 90 % = 'active').
  • Utilisez autoscale RU/s : Économisez 60-80 % vs provisionné fixe pour workloads variables.
  • Activez Free Tier : 1000 RU/s + 25 Go gratuits par compte pour prototyper.
  • Surveillez via Metrics : Portail Azure → Graphiques RU consommés, latence, throttles.

Erreurs courantes à éviter

  • Mauvaise clé de partition : Cause hotspots → 429 Throttled. Solution: Testez avec Query Metrics.
  • Oublier l'indexation : Par défaut tout indexé → Coûts RU élevés. Créez un indexing policy excluant champs inutiles.
  • Provisionnement sous-optimal : Trop bas → Throttles ; trop haut → Gaspillage. Utilisez Capacity Calculator Azure.
  • Ignorer la cohérence : Session par défaut OK, mais validez pour apps critiques (banque → Strong).

Pour aller plus loin

Maîtrisez Cosmos DB en pratiquant :


Découvrez nos formations Learni sur Azure : Formations complètes avec labs pratiques sur Cosmos DB, incluant code réel et certification DP-420.