Información general sobre las APIs, las bibliotecas de cliente y los controladores ORM

Interfaces disponibles

Puedes usar una de las varias interfaces de programación al interactuar con Spanner. Estas son las interfaces disponibles, en el orden en que recomendamos usarlas:

  • Bibliotecas de cliente: las bibliotecas de cliente de Spanner están disponibles en varios lenguajes y se basan en gRPC. Estas bibliotecas de cliente proporcionan una capa de abstracción sobre gRPC y gestionan los detalles de la gestión de sesiones, la ejecución de transacciones, los reintentos y más.
  • Controladores de ORM y frameworks: Google admite controladores de Spanner de código abierto para varias bibliotecas y frameworks de asignación de objetos relacionales (ORM) populares, como JDBC. Estos controladores permiten usar bases de datos de Spanner a través de las APIs definidas por esos frameworks.
  • API RPC: si no hay disponible una biblioteca de cliente o un controlador ORM para el lenguaje de programación que elijas, usa la API RPC, que se basa en gRPC. gRPC ofrece varias ventajas de rendimiento en comparación con la API REST, como la representación de objetos en formato de búfer de protocolo (que son más rápidos de producir y consumir que JSON) y las conexiones persistentes (que reducen la sobrecarga por solicitud). Consulta más información sobre estas y otras ventajas en Conceptos de gRPC.
  • API REST: si no puedes usar las bibliotecas de cliente de Spanner ni la API RPC, usa la API REST. Ten en cuenta que algunas funciones que están disponibles en la API RPC no son compatibles con la API REST, tal como se indica más abajo.

API de RPC y API REST

En esta tabla se comparan las funciones de Spanner disponibles a través de sus interfaces de API REST y RPC.

Función ¿Se admite en la API RPC? ¿Se admite en la API REST?
Cancelar una solicitud No
Definir un plazo o un tiempo de espera para una solicitud No
Enviar una solicitud de streaming Sí. Consulta ExecuteStreamingSQL y StreamingRead. Parcial. Se admite streaming HTTP, pero no el control de flujo a nivel de aplicación.

Compatibilidad con funciones de bibliotecas de cliente

En la siguiente tabla se enumeran las bibliotecas de cliente y se indican las principales funciones de Spanner que admite cada una.

Cliente Go Java Node.js Python Ruby C++ PHP C#
DDL por lotes
DML por lotes
Opción de líder configurable
Consultas de gráficos
Tablas intercaladas
Tipo JSON
Mutaciones
DML particionado
Lectura con particiones
Interfaz PostgreSQL
Prioridad de la solicitud
Etiquetado de solicitudes
Etiquetado de sesiones
Lecturas obsoletas
Sugerencias de declaraciones