Fonctionnement d’Azure Cosmos DB for NoSQL

Effectué

Maintenant que nous connaissons les concepts de base d’Azure Cosmos DB, voyons les ressources et informations qui sont nécessaires pour commencer à utiliser un compte. Ces informations doivent vous aider à déterminer si Azure Cosmos DB for NoSQL convient à votre jeu de données. Par ailleurs, elles doivent vous aider à déterminer la quantité, le cas échéant, de configuration supplémentaire nécessaire.

Quels sont les composants d’Azure Cosmos DB for NoSQL ?

Pour commencer à utiliser Azure Cosmos DB, vous créez d’abord différentes ressources dans Azure, comme des comptes, des bases de données, des conteneurs et des éléments.

Diagramme montrant comment un compte Azure Cosmos DB for NoSQL est la ressource parente d’une base de données, qui est elle-même une ressource parente d’un conteneur.

Comptes

Comptes sont les unités fondamentales de haute disponibilité et d’isolation des locataires pour les applications SaaS. Au niveau du compte, vous pouvez configurer les régions associées à vos données dans Azure Cosmos DB for NoSQL. Les comptes contiennent également le nom DNS global unique utilisé pour les demandes adressées à l’API. Vous pouvez aussi définir le niveau de cohérence par défaut des demandes au niveau du compte. Vous pouvez gérer ou créer des comptes en utilisant le portail Azure, des modèles Azure Resource Manager, Azure CLI ou Azure PowerShell.

Bases de données

Chaque compte peut contenir une ou plusieurs bases de données. Une base de données est une unité logique de gestion pour des conteneurs dans Azure Cosmos DB for NoSQL.

Containers

Les conteneurs sont l’unité fondamentale de la scalabilité dans Azure Cosmos DB for NoSQL. Avec Azure Cosmos DB, vous provisionnez le débit au niveau du conteneur. Vous pouvez aussi configurer une stratégie d’indexation ou une valeur de durée de vie par défaut au niveau du conteneur. Azure Cosmos DB for NoSQL va partitionner automatiquement et de façon transparente les données d’un conteneur.

Éléments

L’API NoSQL pour Azure Cosmos DB stocke des documents individuels au format JSON en tant qu’éléments dans le conteneur. Azure Cosmos DB for NoSQL prend en charge nativement les fichiers JSON, et peut fournir des performances rapides et prévisibles, car les opérations d’écriture sur les documents JSON sont atomiques.

Diagramme montrant différents éléments stockés dans un conteneur.

Partitionnement et clés de partition

Chaque conteneur Azure Cosmos DB for NoSQL est requis pour spécifier un chemin de clé de partition utilisé pour distribuer des données pour le scale-out. En arrière-plan, Azure Cosmos DB for NoSQL utilise ce chemin pour partitionner logiquement les données en utilisant des valeurs de clé de partition. Considérez par exemple le document JSON suivant :

{
  "id": "35b5bf7d-5f0e-4209-b7cb-8c5c70c3bb59",
  "deviceDisplayName": "shared-printer",
  "acquiredYear": 2019,
  "department": {
    "name": "information-technology",
    "metadata": {
      "location": "floor-5-unit-27"
    }
  },
  "queuedDocuments": [
    {
      "sender": "user-293749329",
      "sentTime": "2019-07-26T05:12:37",
      "pages": 5,
      "spoolRef": "3f4b759c-3230-4269-a88e-de7620ad91c0"
    },
    {
      "device": {
        "type": "mobile"
      },
      "sentTime": "2019-11-12T13:08:42",
      "spoolRefs": [
        "6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
        "79e78fe2-93aa-4688-89db-a7278b034aa6"
      ]
    }
  ]
}

Si votre conteneur spécifie un chemin de clé de partition /department/name, la valeur de la clé de partition de ce document est information-technology. En arrière-plan, Azure Cosmos DB for NoSQL gère automatiquement les ressources physiques nécessaires pour prendre en charge votre charge de travail de données.

La sélection d’un chemin de clé de partition pour un conteneur est essentielle pour permettre aux applications de mettre à l’échelle et constitue l’une des décisions de conception les plus importantes pour une nouvelle charge de travail. Consultez la documentation sur le choix d’une clé de partition pour obtenir une explication technique plus poussée et les bonnes pratiques.