Was ist Azure Cosmos DB for NoSQL?

Abgeschlossen

Zu Beginn finden Sie hier einige Definitionen sowie einen kurzen Überblick über Azure Cosmos DB for NoSQL. Mit dieser Übersicht können Sie entscheiden, ob sich Azure Cosmos DB für Ihre Ziele eignet.

Was ist eine NoSQL-Datenbank?

Entwickler benötigen neue Arten von Datenbanken, die die speziellen Herausforderungen moderner Apps erfüllen können. NoSQL-Datenbanken wurden entwickelt, um Anforderungen wie die folgenden zu erfüllen:

  • Hohe Datenvolumen.
  • Daten aus verschiedenen Quellen und in verschiedener Formaten.
  • Dynamische Datenschemas für das Speichern verschiedener Datentypen.
  • Verwendung von Hochgeschwindigkeits- und/oder Echtzeitdaten.

Sie definieren NoSQL-Datenbanken über einige gemeinsame Merkmale und nicht mit einer bestimmten formellen Definition. Zu diesen Merkmalen gehören die folgenden:

  • Ein nicht relationaler Datenspeicher.
  • Entwurf für horizontale Skalierung.
  • Kein Erzwingen eines bestimmten Schemas.

NoSQL-Datenbanken erzwingen in der Regel keine relationalen Einschränkungen und verhängen auch keine Sperren für Daten, wodurch Schreibvorgänge schnell erfolgen können. Oft liegt der Entwurfsfokus auch auf horizontaler Skalierung, in Form von Sharding oder Partitionierung. So kann größenunabhängige Hochleistung gewährleistet werden.

Es gibt zwar viele NoSQL-Datenmodelle, generell werden jedoch vier allgemeine Datenmodellfamilien für das Modellieren von Daten in einer NoSQL-Datenbank verwendet:

Abbildung verschiedener NoSQL-Modelle: Schlüssel-Wert-Speicher, Speicher für Dokumente, Speicher für Graphen, Speicher für Spaltenfamilien

Für dieses Modul liegt der Fokus auf dem von Azure Cosmos DB for NoSQL unterstützten Datenmodell: dem Dokumentdatenmodell.

Warum sollte eine NoSQL-Datenbank mit dem Datenmodell für Dokumente verwendet werden?

Das Datenmodell für Dokumente unterteilt Daten in einzelne Dokumententitäten. Ein Dokument kann einen beliebig strukturierten Datentyp aufweisen, in der Regel wird jedoch das JSON-Format für die Daten verwendet. Azure Cosmos DB for NoSQL unterstützt das JSON-Format nativ.

Abbildung eines hierarchischen Datenmodells für Dokumente, das übergeordnete Entitäten, untergeordnete Entitäten sowie Linien enthält, die diese verbinden.

Bei einem Dokument handelt es sich um eine atomische Entität, das eine eigene Datenform aufweisen kann, unabhängig davon, was in anderen Dokumenten in derselben Datenbank gespeichert ist. Aufgrund dieser Flexibilität ist kein vordefiniertes Schema erforderlich, was das Erstellen neuer Anwendungen innerhalb kurzer Zeit vereinfacht. Außerdem ermöglicht diese Flexibilität Szenarios, in denen verschiedene Datentypen zusammen gespeichert werden können und in denen sich Modelle während der Lebensdauer einer Anwendung weiterentwickeln können.

Was ist ein JSON-Dokument?

Bei JavaScript Object Notation oder JSON handelt es sich um ein einfaches Datenformat. Bei der Entwicklung von JSON stand eine hohe Kompatibilität mit der literalen Notation eines Objekts in der JavaScript-Sprache im Fokus. Viele Frameworks, Browser und auch Datenbanken unterstützen JavaScript nativ, was JSON zu einem beliebten Format für das Übertragen und Speichern von Daten macht.

Hier sehen Sie ein Beispiel für ein JSON-Dokument:

{
  "device": {
    "type": "mobile"
  },
  "sentTime": "2019-11-12T13:08:42",
  "spoolRefs": [
    "6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
    "79e78fe2-93aa-4688-89db-a7278b034aa6"
  ]
}

Wie Sie sehen können, ist JSON ein relativ lesbares Datenformat, das Inhalte eindeutig verfügbar macht. Das Analysieren von JSON und die Verwendung in JavaScript-Anwendungen sind ebenfalls verhältnismäßig einfach.

Was ist Azure Cosmos DB for NoSQL?

Azure Cosmos DB for NoSQL ist ein schneller NoSQL-Datenbankdienst, der umfangreiche Abfragen verschiedener Daten ermöglicht. Er unterstützt die Bereitstellung konfigurierbarer und zuverlässiger Leistung, ist global verteilt und ermöglicht schnelle Entwicklung.

Abbildung einer Weltkarte mit vier global verteilten Knoten, die über Linien miteinander verbunden sind.

Die NoSQL-API ist der Kern oder die native API für das Arbeiten mit Dokumenten. Die NoSQL-API unterstützt die schnelle und flexible Entwicklung mit JSON-Dokumenten, einer Abfragesprache mit ähnlicher Syntax und Clientbibliotheken für gängige Programmiersprachen. Azure Cosmos DB stellt weitere APIs bereit, z. B. Mongo, Gremlin und Cassandra. Diese APIs bieten Kompatibilität mit jedem Datenbankökosystem, während sie gleichzeitig auf dieselbe zugrunde liegende Infrastruktur der nativen NoSQL-API abgebildet werden können.

Azure Cosmos DB for NoSQL bietet einige Vorteile:

  • Garantierte Geschwindigkeit mit beliebiger Skalierung, sogar bei Bursts, mit sofortigen und schnellen Lesevorgängen mit uneingeschränkter Elastizität und Multimasterschreibvorgängen an beliebigen Orten auf der Welt.
  • Schnelle und flexible App-Entwicklung mit SDKs für gängige Sprachen, eine native NoSQL-API mit APIs für MongoDB, Cassandra und Gremlin und No-ETL-Analysen (Extrahieren, Transformieren und Laden).
  • Eignung für unternehmenskritische Anwendungen mit garantierter Geschäftskontinuität, einer Verfügbarkeit von 99,999 Prozent und Sicherheit auf Unternehmensebene.
  • Vollständig verwaltete und kosteneffiziente serverlose Datenbank mit sofortiger und automatischer Skalierung entsprechend der Anwendungsanforderungen.

Diese Funktionen machen Azure Cosmos DB zur idealen Lösung für die moderne Anwendungsentwicklung. Azure Cosmos DB for NoSQL eignet sich ideal für Anwendungen, auf die Folgendes zutrifft:

  • Unvorhersagbare Spitzen und Einbrüche beim Datenverkehr
  • Umfangreiche Datenerzeugung
  • Bedarf für Echtzeitbenutzerfunktionen
  • Basis für die Sicherstellung der Geschäftskontinuität

Azure Cosmos DB for NoSQL kann native JSON-Dokumente beliebig mit flexiblem Schema speichern. Daten werden automatisch indiziert und können mit einer Variante der SQL-Abfragesprache, die für JSON-Daten entwickelt wurde, abgefragt werden. Der Zugriff auf die NoSQL-API ist über SDKs für gängige Frameworks wie .NET, Python, Java und Node.js möglich.