Panoramica di API, librerie client e driver ORM

Interfacce disponibili

Puoi utilizzare una delle numerose interfacce programmatiche quando interagisci con Spanner. Di seguito sono riportate le interfacce disponibili, nell'ordine in cui consigliamo di utilizzarle:

  • Librerie client: le librerie client di Spanner sono disponibili in più linguaggi e sono basate su gRPC. Queste librerie client forniscono un livello di astrazione su gRPC e gestiscono i dettagli della gestione delle sessioni, dell'esecuzione delle transazioni, dei nuovi tentativi e altro ancora.
  • Driver del framework e del framework ORM: Google supporta i driver Spanner open source per diversi framework e librerie di mapping relazionali agli oggetti (ORM) molto noti, come JDBC. Questi driver consentono di usare i database Spanner tramite le API definite da questi framework.
  • API RPC: se una libreria client o un driver ORM non è disponibile per il linguaggio di programmazione che preferisci, utilizza l'API RPC, basata su gRPC. gRPC offre numerosi vantaggi in termini di prestazioni rispetto all'utilizzo dell'API REST, tra cui la rappresentazione di oggetti in formato di buffer di protocollo (più veloce da produrre e utilizzare rispetto a JSON) e connessioni permanenti (che riduce un overhead per richiesta). Scopri di più su questi e altri vantaggi nella pagina dei concetti di gRPC.
  • API REST: se non riesci a utilizzare le librerie client di Spanner o l'API RPC, utilizza l'API REST. Tieni presente che alcune funzionalità disponibili nell'API RPC non sono supportate nell'API REST, come documentato di seguito.

RPC e API REST

Questa tabella mette a confronto le funzionalità di Spanner disponibili tramite le interfacce RPC e API REST.

Selezione delle Supportata nell'API RPC? Supportata nell'API REST?
Annullamento di una richiesta No
Impostare una scadenza o un timeout per una richiesta No
Invio di una richiesta di streaming Sì. Vedi ExecuteStreamingSQL e StreamingRead. Parziale. È supportato il flusso di dati HTTP, al contrario del controllo del flusso a livello di applicazione.

Supporto delle funzionalità delle librerie client

La tabella seguente elenca le librerie client, indicando le principali funzionalità di Spanner supportate da ognuna.

Client Go Java Node.js Python Ruby C++ PHP C#
Suggerimenti relativi alle dichiarazioni
Mutazioni
DML batch
DDL batch
Letture obsolete
Tabelle con interleaving
DML partizionato
Etichettatura sessione
Priorità della richiesta
Tipo JSON
Richiedere il tagging
Opzione leader configurabile
Lettura partizionata
Interfaccia PostgreSQL