Verfügbare Oberflächen
Für die Interaktion mit Spanner können Sie eine von mehreren programmatischen Schnittstellen verwenden. Wir empfehlen die Nutzung der folgenden verfügbaren Oberflächen in der angegebenen Reihenfolge:
- Clientbibliotheken: Die Spanner-Clientbibliotheken basieren auf gRPC und sind in mehreren Sprachen verfügbar. 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 die Programmiersprache Ihrer Wahl 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 Protocol Buffer-Format (die schneller zu erstellen und zu verwenden sind als JSON) 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 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 Clientbibliotheken für Funktionen
In der folgenden Tabelle sind die Clientbibliotheken und die wichtigsten Spanner-Funktionen aufgeführt, die jeweils unterstützt werden.