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

Interfaces disponibles

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

  • Bibliotecas cliente: Las bibliotecas cliente de Cloud Spanner están disponibles en varios lenguajes y se compilan en gRPC. Estas bibliotecas cliente proporcionan una capa de abstracción sobre gRPC y manejan los detalles de administración de sesiones, ejecución de transacciones, reintentos y mucho más.
  • Controladores de ORM y de framework: Google admite controladores de Cloud Spanner de código abierto para varias bibliotecas populares de asignación relacional de objetos (ORM) y frameworks, como JDBC. Estos controladores permiten el uso de las bases de datos de Cloud Spanner a través de las API definidas por esos frameworks.
  • API de RPC: Si una biblioteca cliente o controlador de ORM no está disponible para el lenguaje de programación que prefieres, usa la API de RPC, que se compila en gRPC. gRPC ofrece varios beneficios de rendimiento en comparación con el uso de la API de REST, como 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 (lo que genera menos sobrecarga por solicitud). Obtén más información sobre estos y otros beneficios en la página sobre conceptos de gRPC.
  • API de REST: Si no puedes usar las bibliotecas cliente de Cloud 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 son compatibles con la API de REST, como se indica a continuación.

API de RPC frente a API de REST

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

Función ¿Está disponible en la API de RPC? ¿Está disponible en la API de REST?
Cancelar una solicitud No
Establecer una fecha límite o tiempo de espera para una solicitud 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 frameworks y ORM de terceros

En la siguiente tabla, se enumeran todos los controladores de framework y de ORM de código abierto de Cloud Spanner que proporciona Google, y se destacan las principales funciones de Cloud Spanner que admite cada una.

Atributo JDBC Hibernate Datos de Spring R2DBC* Marco de trabajo de la entidad Registro activo SQLAlchemy (SQLAlchemy)
Idioma Java Java Java Java C# Ruby Python
Sugerencias de instrucciones
Mutaciones
DML por lotes
Lecturas inactivas
Tablas intercaladas
DML particionado
Etiquetado de sesiones
Prioridad de la solicitud
Tipo de JSON
Solicitar etiquetado
Limitaciones Ver Ver Ver Ver

* En esta columna, se describe R2DBC cuando se usa específicamente con Spring Data.
† Disponible solo cuando se envían consultas de SQL literales, a través de la anotación @Query de datos de Spring.

Cloud Spanner también admite un ORM compatible con ⌘ con funciones limitadas. Consulta Limitaciones actuales.