Grundlegendes zu verteilten NoSQL-Datenbanken

GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle

Azure Cosmos DB ist eine global verteilte Datenbankplattform für NoSQL- und relationale Datenbanken jeder Größenordnung. In diesem Artikel werden verteilte NoSQL-Datenbanken im Kontext der verschiedenen NoSQL-API-Optionen der Azure Cosmos DB untersucht.

Weitere Informationen zu anderen Datenspeicheroptionen in Azure finden Sie unter Wählen des richtigen Datenspeichers im Azure Architecture Center.

Herausforderungen

Eine der Herausforderungen beim Verwalten eines Datenbanksystems ist die Tatsache, dass viele Datenbank-Engines Sperren und Latches anwenden, um eine strenge ACID-Semantik zu erzwingen. Dieser Ansatz ist in Szenarios von Vorteil, in denen Datenbanken eine hohe Konsistenz des Zustands der Daten erfordern, unabhängig davon, wie darauf zugegriffen wird. Dieser Ansatz verspricht zwar hohe Konsistenz, macht aber große Kompromisse in Bezug auf Parallelität, Latenz und Verfügbarkeit. Diese Einschränkung ist im Grunde eine Architektureinschränkung und zwingt jedes Team mit einer hohen Transaktionsworkload dazu, Problemumgehungen wie das manuelle Verteilen oder Sharding von Daten über viele verschiedene Datenbanken oder Datenbankknoten zu finden. Diese Problemumgehungen können zeitaufwändig und schwierig zu implementieren sein.

NoSQL-Datenbanken

NoSQL-Datenbanken beziehen sich auf Datenbanken, die entwickelt wurden, um die horizontale Skalierung durch Anpassen der Konsistenz zu vereinfachen, um die Kompromisse bei Parallelität, Latenz und Verfügbarkeit zu minimieren. NoSQL-Datenbanken bieten konfigurierbare Konsistenzebenen, damit Daten auf viele Knoten skaliert werden können und eine Geschwindigkeit oder Verfügbarkeit bieten, die den Anforderungen Ihrer Anwendung besser entspricht.

Verteilte Datenbanken

Verteilte Datenbanken beziehen sich auf Datenbanken, die über viele verschiedene Instanzen oder Standorte hinweg skaliert werden. Während viele NoSQL-Datenbanken auf Skalierung ausgelegt sind, sind nicht alle unbedingt verteilte Datenbanken. Darüber hinaus erfordern viele NoSQL-Datenbanken Zeit und Mühe, um sie auf redundante Knoten für lokale Redundanz oder global für Georedundanz zu verteilen. Die Planungs-, Implementierungs- und Netzwerkanforderungen für eine global verteilte Datenbank können komplex sein.

Azure Cosmos DB

Bei einer verteilten Datenbank, die gleichzeitig eine NoSQL-Datenbank ist, waren Workloads mit umfangreichen Transaktionen auf einmal einfacher zu erstellen und zu verwalten. Azure Cosmos DB ist eine Datenbankplattform, die verteilte Daten-APIs mit NoSQL- und relationalen Varianten bietet. Insbesondere bieten viele der NoSQL-APIs verschiedene Konsistenzoptionen, mit denen Sie die Konsistenz- oder Verfügbarkeitsebene optimieren können, die Ihren realen Anwendungsanforderungen entspricht. Ihre Datenbank kann so konfiguriert werden, dass sie eine hohe Konsistenz mit Kompromissen bei Geschwindigkeit und Verfügbarkeit bietet. Ebenso könnte Ihre Datenbank so konfiguriert werden, dass sie die beste Leistung mit vorhersagbaren Kompromissen bei Konsistenz und Latenz Ihrer replizierten Daten bietet. Azure Cosmos DB verteilt Ihre Daten automatisch und dynamisch auf lokale Instanzen oder global. Azure Cosmos DB kann auch ACID-Garantien bieten und den Durchsatz skalieren, um den Anforderungen Ihrer Anwendung zu entsprechen.

Nächste Schritte

Möchten Sie erste Schritte mit Azure Cosmos DB unternehmen?