Grundlegendes zu verteilten relationalen Datenbanken

GILT FÜR: Azure Cosmos DB for PostgreSQL (unterstützt von der Citus-Datenbankerweiterung auf PostgreSQL)

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

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

Herausforderungen

Wenn Sie von großen Datenvolumen oder transaktionsintensiven Workloads lesen, ist es leicht vorstellbar, dass diese Workloads viel größer sind als die Workloads, mit denen Ihre Anwendung konfrontiert sein könnte. Die Annahme, dass Ihre Workload klein bleibt, kann am Anfang eines Projekts, einer Idee oder einer Organisation eine sichere Annahme sein. Diese Annahme kann jedoch schnell zu einem Szenario führen, in dem die Workload Ihrer Anwendung weit über Ihre Vorstellungen hinaus anwächst. Es ist nicht ungewöhnlich, von Workloads zu hören, die den maximalen Durchsatz oder die maximale Verarbeitungsleistung der Einzelinstanzdatenbank erreichen, die am Anfang eines Projekts wirtschaftlich und leistungsfähig war.

Relationale Datenbanken

Relationale Datenbanken organisieren Daten in einem Tabellenformat mit Zeilen und Spalten sowie Beziehungen zwischen verschiedenen Tabellen in den Datenbanken. Relationale Datenbanken sind in verschiedenen Unternehmen üblich. Diese Unternehmen verfügen häufig über eine Fülle von Softwareentwicklern, die Code für eine relationale Datenbank geschrieben haben, oder Administratoren, die Schemas entwerfen und relationale Datenbankplattformen verwalten. Relationale Datenbanken unterstützen Transaktionen auch häufig mit ACID-Garantien.

Leider werden viele relationale Datenbanksysteme von Organisationen zunächst als Systeme mit nur einem Knoten konfiguriert, was zu Einschränkungen bei Compute-, Arbeitsspeicher- und Netzwerkressourcen führt. Dieser Kontext kann zu einer falschen Annahme führen, dass alle relationalen Datenbanken nur mit einem Knoten betrieben werden.

Verteilte Datenbanken

In vielen Whitepapers zu cloudnativen Lösungen ist häufig von den Vorteilen von NoSQL-Datenbanken die Rede, was den Anschein erweckt, dass relationale Datenbanken für große Datenbanken oder verteilte Workloads keine vernünftige Wahl seien. Wenngleich viele verteilte Datenbanken nicht relational sind, gibt es Optionen für verteilte relationale Datenbankworkloads.

Viele dieser Optionen für verteilte relationale Datenbanken setzen voraus, dass Ihre Organisation von Anfang des Projekts an eine große Skalierung und Verteilung einplant. Diese Planungsanforderung kann zu Projektbeginn zu erheblicher Komplexität führen, da Sie sicherstellen müssen, dass alle relevanten Serverknoten von Ihrem Team konfiguriert, verwaltet und gewartet werden. Die Planungs-, Implementierungs- und Netzwerkanforderungen einer global verteilten relationalen Datenbank können leicht weitaus komplexer werden als die Einrichtung einer einzelnen Instanz (oder eines einzelnen Knotens).

Azure Cosmos DB

Azure Cosmos DB ist eine Datenbankplattform, die verteilte Daten-APIs mit NoSQL- und relationalen Varianten bietet. Konkret basiert die relationale API für Azure Cosmos DB auf PostgreSQL und der Citus-Erweiterung.

Citus ist eine PostgreSQL-Erweiterung, durch die Postgres die Verteilung von Daten und Transaktionen unterstützen kann. Azure Cosmos DB for PostgreSQL ist ein vollständig verwalteter mit Citus arbeitender Dienst, der Hochverfügbarkeit automatisch ermöglicht, ohne dass einzelne Serverknoten manuell geplant, verwaltet und gewartet werden müssen. Mit der API für PostgreSQL können Sie mit einem vollständig verwalteten Einzelknotencluster beginnen, Ihre Datenbanklösung entwickeln und sie dann schlüsselfertig skalieren, wenn die Anforderungen Ihrer Anwendung im Laufe der Zeit zunehmen. Mit der API für PostgreSQL müssen Sie weder ein komplexes Verteilungsprojekt im Voraus planen noch im Nachhinein ein Projekt für die Migration Ihrer Daten von einem einzelnen Knoten in eine verteilte Datenbank planen.

Nächste Schritte

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