Descripción general de las API, bibliotecas cliente y controladores de ORM

Interfaces disponibles

Puedes usar una de varias interfaces programáticas cuando interactúas con Spanner. Estas son las interfaces disponibles, en el orden en que recomendamos usarlas:

  • Bibliotecas cliente: Las bibliotecas cliente de Spanner están disponibles en varios lenguajes y se basan en gRPC. Estas bibliotecas cliente proporcionan una capa de abstracción sobre gRPC y controlan los detalles de la administración de sesiones, la ejecución de transacciones, los reintentos y mucho más.
  • Controladores de ORM y framework: Google admite controladores de Spanner de código abierto para varias bibliotecas y frameworks de asignación relacional de objetos (ORM) populares, como JDBC. Estos controladores permiten el uso de bases de datos de Spanner a través de las APIs definidas por esos frameworks.
  • API de RPC: Si no hay una biblioteca cliente o un controlador de ORM disponibles para tu lenguaje de programación preferido, usa la API de RPC, que se basa en gRPC. gRPC ofrece una serie de beneficios de rendimiento en comparación con el uso de la API de REST, incluida la representación de objetos en formato de búfer de protocolo (que son más rápidos de producir y consumir en comparación con JSON) y conexiones persistentes (que generan menos sobrecarga por solicitud). Obtén más información sobre estos y otros beneficios en Conceptos de gRPC.
  • API de REST: Si no puedes usar las bibliotecas cliente de Spanner o la API de RPC, usa la API de REST. Ten en cuenta que algunas funciones que están disponibles en la API de RPC no se admiten en la API de REST, como se documenta a continuación.

API de RPC frente a API de REST

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

Función ¿Está disponible en la API de RPC? ¿Está disponible en la API de REST?
Cancelar una solicitud Sí No
Establecer una fecha límite o tiempo de espera para una solicitud Sí No
Enviar una solicitud de transmisión Sí. consulta ExecuteStreamingSQL y StreamingRead. Parcial. La transmisión HTTP es compatible, pero el control de flujo a nivel de aplicación no lo es.

Compatibilidad con las funciones de las bibliotecas cliente

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

Cliente Go Java Node.js Python Ruby C++ PHP C# Rust
DDL por lotes
DML por lotes
Opción de líder configurable
Consultas de gráficos
Tablas intercaladas
Tipo JSON
Mutaciones
DML particionado
Lectura particionada
Interfaz de PostgreSQL
Prioridad de la solicitud
Etiquetado de solicitudes
Etiquetado de sesiones
Lecturas inactivas
Sugerencias de instrucciones
Métricas del cliente