Interfaces disponíveis
É possível usar uma das várias interfaces programáticas ao interagir com o Spanner. Estas são as interfaces disponíveis, na ordem em que recomendamos usá-las:
- Bibliotecas de cliente: as bibliotecas de cliente do Spanner estão disponíveis em várias linguagens e são criadas no gRPC. Essas bibliotecas de cliente fornecem uma camada de abstração sobre o gRPC e processam os detalhes de gerenciamento de sessão, execução de transações, novas tentativas e muito mais.
- Drivers ORM e framework: o Google é compatível com drivers do Spanner de código aberto para várias bibliotecas conhecidas de mapeamento relacional de objetos (ORM) e frameworks, como JDBC. Esses drivers permitem usar bancos de dados do Spanner por meio de APIs definidas por esses frameworks.
- API RPC: se uma biblioteca de cliente ou um driver ORM não estiver disponível para a linguagem de programação escolhida, use a API RPC, que é criada com base no gRPC. O gRPC oferece vários benefícios de desempenho em comparação com o uso da API REST, incluindo a representação de objetos no formato de buffer de protocolo (que são mais rápidos de produzir e consumir em comparação com JSON) e conexões persistentes (que resultam em menos sobrecarga por solicitação). Leia mais sobre esses e outros benefícios em Conceitos de gRPC.
- API REST: se não for possível usar as bibliotecas de cliente do Spanner ou a API RPC, use a API REST. Alguns recursos disponíveis na API RPC não são aceitos na API REST, conforme documentado abaixo.
API REST x RPC
Esta tabela compara os recursos do Spanner disponíveis nas interfaces da API REST e RPC.
| Recurso | Aceito na API RPC? | Aceito na API REST? |
|---|---|---|
| Cancelar uma solicitação | Sim | Não |
| Definir um prazo ou tempo limite de uma solicitação | Sim | Não |
| Enviar uma solicitação de streaming | Sim. consulte ExecuteStreamingSQL e StreamingRead. |
Parcialmente. Streaming HTTP é compatível, mas o controle de fluxo no nível do aplicativo, não. |
Suporte a recursos de bibliotecas de cliente
A tabela a seguir lista as bibliotecas de cliente, informando os principais recursos do Spanner compatíveis com cada uma.