Übersicht über APIs, Clientbibliotheken und ORM-Treiber

Verfügbare Oberflächen

Sie können eine von mehreren programmatischen Schnittstellen verwenden, wenn Sie mit Spanner interagieren. Wir empfehlen die Nutzung der folgenden verfügbaren Oberflächen in der angegebenen Reihenfolge:

  • Clientbibliotheken: Die Spanner-Clientbibliotheken sind in mehreren Sprachen verfügbar und basieren auf gRPC. Diese Clientbibliotheken bieten eine Abstraktionsebene über gRPC und übernehmen die Details der Sitzungsverwaltung, Transaktionsausführung, Wiederholungsversuche und mehr.
  • ORM- und Framework-Treiber: Google unterstützt Open-Source-Spanner-Treiber für mehrere gängige Bibliotheken und Frameworks für die objektrelationale Zuordnung (ORM), z. B. JDBC. Diese Treiber ermöglichen die Verwendung von Spanner-Datenbanken über APIs, die von diesen Frameworks definiert werden.
  • RPC API: Wenn für Ihre bevorzugte Programmiersprache keine Clientbibliothek oder kein ORM-Treiber verfügbar ist, verwenden Sie die RPC API, die auf gRPC basiert. gRPC bietet im Vergleich zur REST API eine Reihe von Leistungsvorteilen, darunter die Darstellung von Objekten im Protokollzwischenspeicherformat (die im Vergleich zu JSON schneller erstellt und genutzt werden können) und persistente Verbindungen (die zu weniger Overhead pro Anfrage führen). Weitere Informationen zu diesen und anderen Vorteilen finden Sie unter gRPC-Konzepte.
  • REST API: Wenn Sie die Clientbibliotheken von Spanner oder die RPC API nicht verwenden können, verwenden Sie die REST API. Beachten Sie, dass einige Funktionen, die in der RPC API verfügbar sind, in der REST API nicht unterstützt werden, wie unten beschrieben.

RPC und REST API im Vergleich

In dieser Tabelle werden die Spanner-Funktionen verglichen, die über die RPC- und REST API-Schnittstellen verfügbar sind.

Funktion In der RPC-API unterstützt? In der REST-API unterstützt?
Anfrage abbrechen Ja Nein
Frist oder Zeitlimit für Anfrage festlegen Ja Nein
Streaminganfrage senden Ja. Weitere Informationen finden Sie unter ExecuteStreamingSQL und StreamingRead. Teilweise. HTTP-Streaming wird unterstützt, die Ablaufsteuerung auf Anwendungsebene jedoch nicht.

Unterstützung von Funktionen in Clientbibliotheken

In der folgenden Tabelle sind die Clientbibliotheken und die wichtigsten Spanner-Funktionen aufgeführt, die von den einzelnen Bibliotheken unterstützt werden.

Kunde Go Java Node.js Python Ruby C++ PHP C# Rust
Batch-DDL
Batch-DML
Konfigurierbare Leader-Option
Graphabfragen
Verschachtelte Tabellen
JSON-Typ
Mutationen
Partitionierte DML
Partitionierter Lesevorgang
PostgreSQL-Schnittstelle
Anfragepriorität
Tagging anfordern
Sitzungslabel
Veraltete Lesevorgänge
Für Anweisungen unterstützte Hinweise
Clientmesswerte