Funzionamento di Azure Cosmos DB per NoSQL

Completato

Una volta appresi i concetti di base di Azure Cosmos DB, è possibile vedere quali risorse e informazioni sono necessarie per iniziare a lavorare con un account. Queste informazioni consentono di decidere se Azure Cosmos DB for NoSQL è appropriato per il set di dati in uso. Inoltre, dovrebbe aiutare a decidere se e quante configurazioni aggiuntive è necessario specificare.

Quali sono i componenti di Azure Cosmos DB for NoSQL?

Per iniziare a usare Azure Cosmos DB, è necessario creare varie risorse in Azure, ad esempio account, database, contenitori ed elementi.

Diagramma che illustra un account Azure Cosmos DB for NoSQL come risorsa padre di un database, che a sua volta è una risorsa padre di un contenitore.

Account

Gli account sono le unità fondamentali di disponibilità elevata e isolamento del tenant per le applicazioni SaaS. A livello di account, è possibile configurare le aree per i dati in Azure Cosmos DB for NoSQL. Gli account contengono anche il nome DNS univoco globale usato per le richieste API. È anche possibile impostare il livello di coerenza predefinito per le richieste a livello di account. È possibile gestire o creare account usando il portale di Azure, i modelli di Azure Resource Manager, l'interfaccia della riga di comando di Azure o Azure PowerShell.

Database

Ogni account può contenere uno o più database. Un database è un'unità logica di gestione per i contenitori in Azure Cosmos DB for NoSQL.

Contenitori

I contenitori sono l'unità fondamentale di scalabilità in Azure Cosmos DB for NoSQL. Con Azure Cosmos DB, si effettua il provisioning della velocità effettiva a livello di contenitore. Facoltativamente, è anche possibile configurare un criterio di indicizzazione o un valore di durata predefinito a livello di contenitore. Azure Cosmos DB for NoSQL ripartirà in modo automatico e trasparente i dati in un contenitore.

Articoli

L'API No SQL per Azure Cosmos DB archivia i singoli documenti in formato JSON come elementi all'interno del contenitore. Azure Cosmos DB for NoSQL supporta in modo nativo i file JSON e può offrire prestazioni veloci e prevedibili perché le operazioni di scrittura nei documenti JSON sono atomiche.

Diagramma che mostra vari elementi archiviati in un contenitore.

Partizionamento e chiavi di partizione

Ogni contenitore Azure Cosmos DB per NoSQL è necessario per specificare un percorso di chiave di partizione usato per distribuire i dati per la scalabilità orizzontale. Dietro le quinte Azure Cosmos DB for NoSQL usa questo percorso per partizionare logicamente i dati usando valori di chiave di partizione. Si consideri ad esempio il documento JSON seguente:

{
  "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"
      ]
    }
  ]
}

Se il contenitore per il percorso della chiave di partizione specifica /department/name, il valore della chiave di partizione di questo documento sarà information-technology. Dietro le quinte Azure Cosmos DB for NoSQL gestisce automaticamente le risorse fisiche necessarie per supportare il carico di lavoro dei dati.

La selezione di un percorso di chiave di partizione per un contenitore è fondamentale per consentire la scalabilità delle applicazioni ed è una delle decisioni di progettazione più importanti per un nuovo carico di lavoro. Per una spiegazione tecnica più dettagliata e le procedure consigliate, vedere la documentazione relativa alla scelta di una chiave di partizione.