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 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 marco de trabajo y ORM: Google admite controladores de Spanner de código abierto para varias bibliotecas de asignación relacional de objeto (ORM) y marcos de trabajo populares, como JDBC. Estos controladores permiten el uso de bases de datos de Spanner mediante las API definidas por esos marcos de trabajo. Para obtener más información, consulta Descripción general de los controladores.
- 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 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 características de Spanner disponibles a través de sus interfaces de la API de REST y RPC.
Atributo | ¿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 características de bibliotecas cliente
En la siguiente tabla, se enumeran las bibliotecas cliente y se indican las características principales de Cloud Spanner que admite cada una.