Übersicht über APIs, Clientbibliotheken und ORM-Treiber

Verfügbare Oberflächen

Für die Interaktion mit Spanner können Sie eine von mehreren programmgesteuerten Benutzeroberflächen verwenden. 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 hinaus und verarbeiten die Details für Sitzungsverwaltung, Transaktionsausführung, Wiederholungsversuche und mehr.
  • ORM- und Framework-Treiber: Google unterstützt Open-Source-Spanner-Treiber für verschiedene beliebte objektrelationale Zuordnungsbibliotheken (ORMs) und Frameworks, wie 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 verfügbar ist, verwenden Sie die RPC API. Sie basiert auf gRPC. gRPC bietet eine Reihe von Leistungsvorteilen gegenüber der REST API. Dazu gehören Objektdarstellungen im Protokollpufferformat, die im Vergleich zu JSON schneller erstellt und genutzt werden können, sowie permanente Verbindungen, die den Systemaufwand pro Anfrage reduzieren. 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 in der RPC API verfügbaren Funktionen in der REST API nicht unterstützt werden (wie unten angegeben).

RPC und REST API im Vergleich

In dieser Tabelle werden die Spanner-Funktionen verglichen, die über die zugehörigen 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 Clientbibliotheksfunktionen

In der folgenden Tabelle sind die Clientbibliotheken aufgeführt. Außerdem werden die wichtigsten Spanner-Features angegeben, die jeweils unterstützt werden.

Kunde Go Java Node.js Python Ruby C++ PHP C#
Batch-DDL
Batch-DML
Konfigurierbare Führungsoption
Graphabfragen
Überlappende Tabellen
JSON-Typ
Mutationen
Partitionierte DML
Partitionierte Lesevorgänge
PostgreSQL-Oberfläche
Priorität der Anfrage
Tagging anfordern
Sitzungslabel
Veraltete Lesevorgänge
Für Anweisungen unterstützte Hinweise