Funktionsweise von Azure Cosmos DB for NoSQL

Abgeschlossen

Da Sie sich nun mit den Grundlagen von Azure Cosmos DB vertraut gemacht haben, können Sie sich nun ansehen, welche Ressourcen und Informationen erforderlich sind, um mit einem Konto arbeiten zu können. Diese Informationen sollen Ihnen bei der Entscheidung helfen, ob Azure Cosmos DB for NoSQL für Ihren Datenbestand geeignet ist. Außerdem sollten sie Sie bei der Entscheidung unterstützen, in welchem Umfang (wenn überhaupt) zusätzliche Konfiguration erforderlich ist.

Aus welchen Komponenten besteht Azure Cosmos DB for NoSQL?

Damit Sie mit der Verwendung von Azure Cosmos DB beginnen können, müssen Sie zunächst verschiedene Ressourcen in Azure erstellen, z. B. Konten, Datenbanken, Container und Elemente.

Abbildung eines Azure Cosmos DB for NoSQL-Kontos als übergeordnete Ressource für eine Datenbank, die selbst wiederum übergeordnete Ressource für einen Container ist.

Konten

Konten sind die grundlegenden Einheiten für Verteilung und Hochverfügbarkeit. Auf Kontoebene können Sie die Region[en] für Ihre Daten in Azure Cosmos DB for NoSQL konfigurieren. Konten können auch den global eindeutigen DNS-Namen enthalten, der für API-Anforderungen verwendet wird. Sie können die Standardkonsistenzebene für Anforderungen auch auf Kontoebene festlegen. Sie können Konten über das Azure-Portal, über Azure Resource Manager-Vorlagen, die Azure CLI oder Azure PowerShell verwalten oder erstellen.

Datenbanken

Jedes Konto kann eine oder mehrere Datenbanken enthalten. Eine Datenbank ist eine logische Einheit für die Verwaltung von Containern in Azure Cosmos DB for NoSQL.

Container

Container sind die grundlegende Einheit für die Skalierbarkeit von Azure Cosmos DB for NoSQL. In Azure Cosmos DB wird Durchsatz auf Containerebene sichergestellt. Sie können optional auch eine Indizierungsrichtlinie oder einen Standardwert für die Gültigkeitsdauer auf Containerebene festlegen. Azure Cosmos DB for NoSQL partitioniert die Daten in einem Container automatisch und transparent.

Elemente

Die NoSQL-API für Azure Cosmos DB speichert einzelne Dokumente im JSON-Format als Elemente im Container. Azure Cosmos DB for NoSQL unterstützt JSON-Dateien nativ, und sie kann für schnelle und vorhersagbare Leistung sorgen, da Schreibvorgänge in JSON-Dokumenten atomisch sind.

Abbildung verschiedener in einem Container gespeicherter Elemente

Partitionierung und Partitionierungsschlüssel

Jeder Azure Cosmos DB for NoSQL-Container muss einen Partitionsschlüsselpfad angeben. Unter der Haube verwendet Azure Cosmos DB for NoSQL diesen Pfad, um Daten mithilfe von Partitionsschlüsselwerten logisch zu partitionieren. Betrachten Sie beispielsweise das folgenden JSON-Dokument:

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

Wenn Ihr Container einen Partitionsschlüsselpfad für /department/name angibt, lautet der Partitionsschlüsselwert dieses Dokuments information-technology. Unter der Haube verwaltet Azure Cosmos DB for NoSQL die physischen Ressourcen automatisch, die zur Unterstützung Ihrer Datenworkload erforderlich sind.

Die Auswahl eines Partitionsschlüsselpfads für einen Container kann eine der wichtigsten Entwurfsentscheidungen für eine neue Workload sein. Sehen Sie sich die Dokumentation zum Auswählen eines Partitionsschlüssels an, wenn Sie an detaillierteren technischen Informationen und Best Practices interessiert sind.