Auswählen einer API in Azure Cosmos DB
GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle PostgreSQL
Azure Cosmos DB ist eine vollständig verwaltete und relationale NoSQL-Datenbank für die moderne App-Entwicklung. Azure Cosmos DB nimmt Ihnen die Datenbankverwaltung durch automatische Verwaltung, Updates und Patches ab. Außerdem übernimmt der Dienst die Kapazitätsverwaltung mit kostengünstigen serverlosen und automatischen Skalierungsoptionen, die auf Anwendungsanforderungen reagieren, um die Kapazität an den Bedarf anzupassen.
APIs in Azure Cosmos DB
Azure Cosmos DB bietet mehrere Datenbank-APIs, so z. B. für NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin und Table. Mithilfe dieser APIs können Sie reale Daten anhand von Dokumenten, Schlüssel-Wert-, Graph- und Spaltenfamilien-Datenmodellen modellieren. Diese APIs ermöglichen es Ihren Anwendungen, Azure Cosmos DB so zu handhaben, als ob es sich um verschiedene andere Datenbanktechnologien handelte, jedoch ohne den Verwaltungsaufwand und Skalierungsansätze. Mit seinen verschiedenen APIs hilft Ihnen Azure Cosmos DB, die Ökosysteme, Tools und Fertigkeiten zu nutzen, die Sie bereits für Datenmodellierung und -abfrage besitzen.
Alle APIs bieten automatische Skalierung von Speicher und Durchsatz, Flexibilität und Leistungsgarantien. Es gibt nicht die eine beste API, und Sie können eine beliebige API zum Erstellen Ihrer Anwendung auswählen. In diesem Artikel erfahren Sie, wie Sie eine API auf Grundlage Ihrer Workload- und Teamanforderungen auswählen.
Überlegungen bei der Auswahl einer API
Die API für NoSQL ist für Azure Cosmos DB nativ.
Die APIs für MongoDB, PostgreSQL, Cassandra, Gremlin und Table implementieren das Wire Protocol von Open-Source-Datenbank-Engines. Diese APIs sind unter den folgenden Bedingungen am besten geeignet:
- Wenn Sie über vorhandene MongoDB-, PostgreSQL-, Cassandra- oder Gremlin-Anwendungen verfügen
- Wenn Sie nicht Ihre gesamte Datenzugriffsebene erneut generieren möchten
- Wenn Sie das Open-Source-Entwicklerökosystem, Clienttreiber, Fachwissen und Ressourcen für Ihre Datenbank nutzen möchten
- Wenn Sie die Azure Cosmos DB-Kernfeatures verwenden möchten, z. B.:
- Globale Verteilung
- Elastische Skalierung von Speicher und Durchsatz
- Hochleistung nach Maß
- Geringe Wartezeit
- Möglichkeit zum Ausführen von Transaktions- und Analyseworkloads
- Vollständig verwaltete Plattform
- Wenn Sie modernisierte Apps in einer Umgebung mit mehreren Clouds entwickeln
Sie können mit diesen APIs neue Anwendungen erstellen oder Ihre vorhandenen Daten migrieren. Zum Ausführen der migrierten Apps ändern Sie die Verbindungszeichenfolge Ihrer Anwendung, und setzen Sie die Ausführung wie zuvor fort. Stellen Sie beim Migrieren vorhandener Apps sicher, dass Sie die Featureunterstützung dieser APIs prüfen.
Sie müssen je nach Workload die API auswählen, die Ihren Anforderungen entspricht. Die folgende Abbildung zeigt ein Flussdiagramm zur Auswahl der richtigen API beim Erstellen neuer Apps oder beim Migrieren vorhandener Apps zu Azure Cosmos DB:
Diagramm der Entscheidungsstruktur zur Auswahl einer API in Azure Cosmos DB Die Hälfte des Diagramms veranschaulicht, wie viele vorhandene Open-Source-Datenbankworkloads die entsprechenden APIs für Azure Cosmos DB verwenden können. Die andere Hälfte des Diagramms zeigt, wie neue Anwendungen entweder die API für NoSQL oder Ihre vorhandenen Kenntnisse mit APIs für Open-Source-Datenbanken verwenden können.
API für NoSQL
Die Azure Cosmos DB-API für NoSQL speichert Daten im Dokumentformat. Sie bietet das beste End-to-End-Szenario, da sie uns vollständige Kontrolle über die Schnittstelle, den Dienst und die SDK-Clientbibliotheken ermöglicht. Alle neuen Features, die in Azure Cosmos DB eingeführt werden, sind zuerst für API für NoSQL-Konten verfügbar. NoSQL-Konten bieten Unterstützung für das Abfragen von Elementen mithilfe der SQL-Syntax (Structured Query Language), einer der bekanntesten und beliebtesten Abfragesprachen zum Abfragen von JSON-Objekten. Weitere Informationen finden Sie im Trainingsmodul zur Azure Cosmos DB-API für NoSQL und im Artikel Erste Schritte mit SQL-Abfragen.
Wenn Sie von anderen Datenbanken wie Oracle, DynamoDB, HBase usw. migrieren und die modernisierten Technologien zum Erstellen Ihrer Apps verwenden möchten, wird die API für NoSQL empfohlen. Die API für NoSQL unterstützt Analysen und bietet Leistungsisolation zwischen Betriebs- und Analyseworkloads.
API für MongoDB
Die Azure Cosmos DB-API für MongoDB speichert Daten im BSON-Format in einer Dokumentstruktur. Sie ist mit dem Wire Protocol von MongoDB kompatibel, verwendet jedoch keinen nativen MongoDB-bezogenen Code. Die API für MongoDB ist eine gute Wahl, wenn Sie das umfangreichere MongoDB-Ökosystem und damit verbundene Fertigkeiten nutzen möchten, ohne auf die Nutzung von Azure Cosmos DB-Features zu verzichten.
Zu den von Azure Cosmos DB gebotenen Features, auf die Sie nicht verzichten müssen, zählen u. a.:
- Skalierung
- Hochverfügbarkeit
- Georeplikation
- Mehrere Standorte für Schreibvorgänge
- Automatische und transparente Shardverwaltung
- Transparente Replikation zwischen Betriebs- und Analysespeichern
Sie können Ihre vorhandenen MongoDB-Apps mit der API für MongoDB verwenden, indem Sie einfach die Verbindungszeichenfolge ändern. Sie können alle vorhandenen Daten mit nativen MongoDB-Tools wie mongodump und mongorestore oder mit unserem Tool für die Azure-Databankmigration verschieben. Tools wie die MongoDB-Shell, MongoDB Compass und Robo3T können Abfragen ausführen und mit Daten arbeiten wie mit der nativen MongoDB. Weitere Informationen finden Sie im Artikel zur API für MongoDB.
API für PostgreSQL
Azure Cosmos DB for PostgreSQL ist ein verwalteter Dienst für die Verwendung von PostgreSQL im großen Stil, der mit der praktischen Citus-Open-Source-Funktion für verteilte Tabellen erweitert wurde. Sie speichert Daten entweder auf einem einzelnen Knoten oder verteilt in einer Mehrknotenkonfiguration.
Azure Cosmos DB for PostgreSQL basiert auf dem nativen PostgreSQL und nicht auf einem PostgreSQL-Fork, sodass Sie alle Datenbank-Hauptversionen verwenden können, die von der PostgreSQL-Community unterstützt werden. Der Dienst eignet sich ideal für den Einstieg in eine Einzelknotendatenbank mit umfangreicher Indizierung, Geodatenfunktionen und JSONB-Unterstützung. Wenn Sie mehr Leistung benötigen, können Sie dem Cluster später ohne Downtime Knoten hinzufügen.
Wenn Sie nach einer verwalteten relationalen Open-Source-Datenbank mit hoher Leistung und Georeplikation suchen, ist Azure Cosmos DB for PostgreSQL die richtige Wahl. Weitere Informationen finden Sie unter Einführung in Azure Cosmos DB for PostgreSQL.
API für Apache Cassandra
Die Azure Cosmos DB-API für Cassandra speichert Daten im spaltenorientierten Schema. Apache Cassandra bietet einen Ansatz mit hohem Verteilungsgrad und horizontaler Skalierung zum Speichern großer Datenmengen und gleichzeitig einen flexiblen Ansatz für ein spaltenorientiertes Schema. Die API für Cassandra in Azure Cosmos DB folgt dieser Philosophie für verteilte NoSQL-Datenbanken. Diese API für Cassandra ist Wire Protocol-kompatibel mit nativem Apache Cassandra. Sie sollten die API für Cassandra in Betracht ziehen, wenn Sie von der Elastizität und vollständigen Verwaltung von Azure Cosmos DB profitieren und trotzdem die meisten der nativen Features, Tools und das Ökosystem von Apache Cassandra nutzen möchten. Diese vollständige Verwaltung bedeutet, dass Sie bei der API für Cassandra das Betriebssystem, die Java-VM, den Garbage Collector, die Lese-/Schreibleistung, Knoten, Cluster usw. nicht verwalten müssen.
Sie können Apache Cassandra-Clienttreiber verwenden, um eine Verbindung mit der API für Cassandra herzustellen. Die API für Cassandra ermöglicht Ihnen die Interaktion mit Daten mithilfe der Cassandra-Abfragesprache (Cassandra Query Language, CQL) und Tools wie der CQL-Shell und bereits vertrauten Cassandra-Clienttreibern. Die API für Cassandra unterstützt derzeit nur OLTP-Szenarien. Mithilfe der API für Cassandra können Sie auch die besonderen Features von Azure Cosmos DB nutzen, z. B. den Änderungsfeed. Weitere Informationen finden Sie im Artikel zur API für Cassandra. Wenn Sie bereits mit Apache Cassandra vertraut sind, aber Azure Cosmos DB noch nicht kennen, finden Sie weitere Informationen unter Anpassen an die API für Cassandra.
API für Apache Gremlin
Mit dieser Azure Cosmos DB-API für Gremlin können Benutzer Graphabfragen durchführen und Daten als Kanten und Scheitelpunkte speichern.
Verwenden Sie die API für Gremlin für Szenarien mit diesen Merkmalen:
- Dynamische Daten
- Daten mit komplexen Beziehungen
- Daten, die für eine Modellierung mit relationalen Datenbanken zu komplex sind
- Nutzen des vorhandenen Gremlin-Ökosystems und der vorhandenen Fertigkeiten
Die API für Gremlin kombiniert die Leistung von Algorithmen für Graphdatenbanken mit einer überaus skalierbaren, verwalteten Infrastruktur. Diese API bietet eine besondere und flexible Lösung für gängige Datenprobleme im Zusammenhang mit mangelnder Flexibilität oder relationalen Ansätzen. Die API für Gremlin unterstützt derzeit nur OLTP-Szenarien.
Die API für Gremlin basiert auf dem Framework Apache TinkerPop für Graphcomputing. Die API für Gremlin nutzt zum Erfassen und Abfragen von Daten die gleiche Graphabfragesprache. Sie nutzt die Azure Cosmos DB-Partitionsstrategie, um Lese-/Schreibvorgänge von der Graphdatenbank-Engine durchzuführen. Die API für Gremlin bietet Wire Protocol-Unterstützung mit Open-Source-Gremlin, sodass Sie die Open-Source-Gremlin SDKs zum Erstellen Ihrer Anwendung verwenden können. Die API für Gremlin arbeitet bei komplexen analytischen Graphszenarien auch mit Apache Spark und GraphFrames zusammen. Weitere Informationen finden Sie im Artikel zur API für Gremlin.
API für Table
Die Azure Cosmos DB-API für Table speichert Daten im Schlüssel-Wert-Format. Wenn Sie derzeit Azure Table Storage verwenden, werden Sie möglicherweise einige Einschränkungen in Bezug auf Latenz, Skalierung, Durchsatz, globale Verteilung, Indexverwaltung und niedrige Abfrageleistung feststellen. Die API für Table überwindet diese Einschränkungen und wird zum Migrieren Ihrer App empfohlen, wenn Sie von den Vorteilen von Azure Cosmos DB profitieren möchten. Die API für Table unterstützt nur OLTP-Szenarien.
Anwendungen, die für Azure Table Storage geschrieben wurden, können mit geringfügigen Codeänderungen zur API für Table migriert werden und Premiumfunktionalität nutzen. Weitere Informationen finden Sie im Artikel zur API für Table.
Kapazitätsplanung bei der Migration von Daten
Sie möchten die Kapazitätsplanung für eine Migration zu Azure Cosmos DB for NoSQL und MongoDB aus einem vorhandenen Datenbankcluster durchführen? Sie können Informationen zu Ihrem vorhandenen Datenbankcluster für die Kapazitätsplanung verwenden.
- Weitere Informationen zum Schätzen der Anforderungseinheiten, wenn Sie nur die Anzahl der virtuellen Kerne und Server in Ihrem vorhandenen Shard- und replizierten Datenbankcluster kennen, lesen Sie die Informationen zum Schätzen von Anforderungseinheiten mithilfe von virtuellen Kernen oder CPUs.
- Weitere Informationen zum Schätzen von Anforderungseinheiten, wenn Sie typische Anforderungsraten für die aktuelle Workload Ihrer Datenbank kennen, finden Sie unter Kapazitätsplaner für die API für NoSQL und API für MongoDB