Bearbeiten

Share via


Häufig gestellte Fragen zu Azure Cosmos DB for NoSQL

GILT FÜR: NoSQL

Wie beginne ich mit dem Entwickeln für Azure Cosmos DB for NoSQL?

Zuerst müssen Sie sich für ein Azure-Abonnement registrieren. Nachdem Sie sich für ein Azure-Abonnement registriert haben, können Sie diesem eine API für NoSQL-Container hinzufügen.

Software Development Kits (SDKs) sind für .NET, Python, Node.js, JavaScript, Go und Java verfügbar. Entwickler können außerdem die REST-API für die Interaktion mit Azure Cosmos DB-Ressourcen auf weiteren Plattformen und mit anderen Sprachen nutzen.

Gibt es Azure Cosmos DB for NoSQL-Beispiele für die ersten Schritte?

Sehen Sie sich diese Schnellstart-Codebeispiele und -vorlagen für die API für NoSQL an:

Unterstützt Azure Cosmos DB for NoSQL schemafreie Daten?

Ja. Die API für NoSQL ermöglicht Anwendungen das Speichern beliebiger JSON-Dokumente als Elemente ohne Schemadefinitionen oder Hinweise. Die Daten stehen unmittelbar zur Abfrage über die Azure Cosmos DB for NoSQL-Abfragesprache zur Verfügung.

Unterstützt Azure Cosmos DB for NoSQL ACID-Transaktionen (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit)?

Ja. Die API für NoSQL unterstützt dokumentübergreifende Transaktionen, die als Batches in den SDKs oder in Form von gespeicherten JavaScript-Prozeduren und -Triggern ausgedrückt werden. Die Transaktionen werden einer Partition in jedem Container zugeordnet und mit ACID-Semantik nach dem Prinzip „alles oder nichts“ ausgeführt. Sie sind dabei von anderem gleichzeitig ausgeführtem Code und Benutzeranforderungen isoliert. Treten Ausnahmen auf, wird für die gesamte Transaktion ein Rollback ausgeführt.

Wie erstelle ich eine Azure Cosmos DB for NoSQL-Datenbank?

Sie können Datenbanken mit einem dieser Tools erstellen:

Wie kann ich native Benutzer und Berechtigungen in Azure Cosmos DB for NoSQL-Datenbanken konfigurieren?

Sie können Benutzer und Berechtigungen mit einem der Azure Cosmos DB for NoSQL SDKs oder mithilfe der REST-API erstellen. Weitere Informationen finden Sie unter Konfigurieren von Benutzern und Ressourcentoken. Das Erstellen von Berechtigungen mit Ressourcentoken ist auf Containerebene und den untergeordneten Ebenen (z. B. Dokumente, Anlagen) zulässig. Auf Datenbank- oder Kontoebene kann derzeit keine Berechtigung erstellt werden.

Kann ich mich bei Azure Cosmos DB for NoSQL mit meinen vorhandenen Microsoft Entra ID-Konten authentifizieren?

Ja! Azure Cosmos DB unterstützt die Microsoft Entra-Authentifizierung zum Verwalten des Diensts und seiner Ressourcen (Steuerungsebene) und zum Ausführen von Daten, Vorgängen und Abfragen (Datenebene). Die Authentifizierung auf Steuerungsebene erfolgt mithilfe des Features für rollenbasierte Zugriffssteuerung von Azure. Sie können eine vorkonfigurierte integrierte Rolle](../../role-based-access-control/built-in-roles.md) verwenden oder eine benutzerdefinierte Rolle erstellen. Mit der rollenbasierten Zugriffssteuerung von Azure können Sie Konten, Datenbanken, Container und Metadaten verwalten. Die Steuerungsebene umfasst Vorgänge wie etwa diese Beispiele.

  • Erstellen, Ersetzen oder Löschen von Datenbanken – Erstellen, Ersetzen oder Löschen von Containern – Lesen oder Ersetzen des Datenbankdurchsatzes – Lesen oder Ersetzen des Containerdurchsatzes. Weitere Informationen finden Sie unter Rollenbasierte Zugriffssteuerung auf Steuerungsebene in Azure Cosmos DB. Die Authentifizierung auf Datenebene verwendet eine benutzerdefinierte API für die Implementierung der nativen rollenbasierten Zugriffssteuerung für NoSQL. Mit dieser nativen Implementierung können Sie auch vorkonfigurierte oder benutzerdefinierte Rollen verwenden. Mit der nativen rollenbasierten Zugriffssteuerung können Sie Abfragen ausführen, Elemente verwalten oder andere allgemeine Vorgänge ausführen. Die Datenebene umfasst Vorgänge wie etwa diese Beispiele.
  • Erstellen, Ersetzen, Aktualisieren oder Löschen von Elementen – Patchen von Elementen – Ausführen von Abfragen. Weitere Informationen finden Sie unter Rollenbasierte Zugriffssteuerung auf Datenebene in Azure Cosmos DB.

Unterstützt Azure Cosmos DB for NoSQL die Abfragesprache SQL?

Structured Query Language (SQL) ist eine Sprache, die normalerweise zum Abfragen relationaler Daten verwendet wird. Die API für NoSQL verfügt über eine benutzerdefinierte NoSQL-Abfragesprache, die von SQL abgeleitet wurde. Die NoSQL-Abfragesprache enthält eine Teilmenge der Abfragesprache, die normalerweise mit SQL Server in Verbindung gebracht wird, sowie verschiedene NoSQL-spezifische Verbesserungen. Die NoSQL-Abfragesprache bietet umfassende hierarchische und relationale Operatoren sowie Erweiterbarkeit über JavaScript-basierte benutzerdefinierte Funktionen. Die JSON-Grammatik ermöglicht die Modellierung von JSON-Dokumenten als Struktur mit beschrifteten Knoten. Diese werden sowohl von den automatischen Indizierungstechniken als auch vom SQL-Abfragedialekt von Azure Cosmos DB verwendet. Informationen zur Verwendung dieser Abfragesprache finden Sie unter NoSQL-Abfragen.

Unterstützt Azure Cosmos DB for NoSQL SQL-Aggregationsfunktionen?

Die API für NoSQL unterstützt die Aggregation über Aggregationsfunktionen wie COUNT, MAX, AVG und SUM über die NoSQL-Abfragesprache.

Wie bietet Azure Cosmos DB for NoSQL Parallelität?

Die API für NoSQL unterstützt die Steuerung für optimistische Nebenläufigkeit (OCC) durch HTTP-Entitätstags bzw. ETags. Jede API für NoSQL-Ressource verfügt über ein ETag. Das ETag wird jedes Mal auf dem Server festgelegt, wenn ein Dokument aktualisiert wird. Der ETag-Header und der aktuelle Wert sind in allen Antwortnachrichten enthalten. ETags können mit dem Header If-Match verwendet werden, um den Server entscheiden zu lassen, ob eine Ressource aktualisiert werden soll. Der „If-Match“-Wert ist der ETag-Wert, für den eine Überprüfung erfolgt. Wenn der ETag-Wert mit dem ETag-Wert des Servers übereinstimmt, wird die Ressource aktualisiert. Wenn das ETag nicht mehr aktuell ist, lehnt der Server den Vorgang mit dem Antwortcode „HTTP 412 – Vorbedingungsfehler“ ab. Der Client ruft anschließend die Ressource erneut ab, um den aktuellen ETag-Wert für die Ressource zu erhalten. Darüber hinaus können ETags mit dem Header If-None-Match verwendet werden, um festzustellen, ob ein erneutes Abrufen einer Ressource erforderlich ist.

Die meisten APIs für NoSQL SDKs umfassen Klassen zum Verwalten der Steuerung von optimistischer Nebenläufigkeit.

Wie kann ich eine Masseneinfügung für Dokumente in Azure Cosmos DB for NoSQL ausführen?

Verwenden Sie das Feature für den Massenimport im .NET SDK oder im Java SDK, damit die API für NoSQL große Datenmengen importieren kann. Dieses Feature optimiert den bereitgestellten Durchsatz zum Importieren großer Datenmengen.

Alternativ können Sie Apache Spark verwenden, um Daten im großen Stil mit Python oder Scala zu importieren.

Ja. Da es sich bei Azure Cosmos DB for NoSQL um einen RESTful-Dienst handelt, sind Ressourcenlinks unveränderbar und können zwischengespeichert werden. Clients der API für NoSQL können einen „If-None-Match“-Header für Lesevorgänge für ressourcenähnliche Dokumente oder Container festlegen und dann ihre lokalen Kopien aktualisieren, nachdem sich die Serverversion ändert.

Ist eine lokale Instanz von Azure Cosmos DB for NoSQL verfügbar?

Ja. Der Azure Cosmos DB-Emulator stellt eine originalgetreue Emulation des Azure Cosmos DB-Diensts bereit. Er unterstützt über verschiedene APIs Funktionen, die mit Azure Cosmos DB identisch sind. Zu diesen Funktionen gehören Unterstützung für das Erstellen von Elementen, das Abfragen von Elementen, das Bereitstellen von Containern und das Skalieren von Containern. Sie können Anwendungen mithilfe der Endpunkte des Emulators entwickeln und testen. Anschließend können Sie die Anwendungen global in Azure bereitstellen, indem Sie die Verbindungszeichenfolge vom Emulator in den Livedienst ändern.

Warum werden lange Gleitkommawerte in einem Azure Cosmos DB for NoSQL-Element gerundet, wenn der Daten-Explorer im Portal verwendet wird?

Diese Einschränkung des Daten-Explorers ist eine Einschränkung von JavaScript. JavaScript verwendet Gleitkommazahlen mit doppelter Genauigkeit entsprechend der Angabe in IEEE 754 (Institute of Electrical and Electronics Engineers). Dieser Datentyp kann nur Zahlen zwischen -(253 – 1) und 253-1 (d. h. 9.007.199.254.740.991) sicher darstellen.