Interfaces disponíveis
Pode usar uma de várias interfaces programáticas quando interage com o Spanner. Seguem-se as interfaces disponíveis, pela ordem em que recomendamos a sua utilização:
- Bibliotecas cliente: as bibliotecas cliente do Spanner estão disponíveis em vários idiomas e são criadas com base no gRPC. Estas bibliotecas de cliente fornecem uma camada de abstração sobre o gRPC e processam os detalhes da gestão de sessões, da execução de transações, das novas tentativas e muito mais.
- ORM e controladores de frameworks: a Google suporta controladores Spanner de código aberto para várias bibliotecas de mapeamento objeto-relacional (ORMs) e frameworks populares, como o JDBC. Estes controladores permitem a utilização de bases de dados do Spanner através de APIs definidas por essas frameworks.
- API RPC: se não estiver disponível uma biblioteca de cliente ou um controlador ORM para a sua linguagem de programação preferencial, use a API RPC, que é criada com base no gRPC. O gRPC oferece várias vantagens de desempenho em comparação com a utilização da API REST, incluindo a representação de objetos no formato de Protocol Buffer (que são mais rápidos de produzir e consumir em comparação com o JSON) e ligações persistentes (que resultam num menor custo geral por pedido). Leia mais acerca destas e de outras vantagens em Conceitos de gRPC.
- API REST: se não conseguir usar as bibliotecas de cliente do Spanner ou a API RPC, use a API REST. Tenha em atenção que algumas funcionalidades disponíveis na API RPC não são suportadas na API REST, conforme documentado abaixo.
RPC versus API REST
Esta tabela compara as funcionalidades do Spanner disponíveis através das respetivas interfaces de API REST e RPC.
Funcionalidade | Suportado na API RPC? | Suportado na API REST? |
---|---|---|
Cancelar um pedido | Sim | Não |
Definir um prazo ou um limite de tempo num pedido | Sim | Não |
Enviar um pedido de streaming | Sim. Consulte ExecuteStreamingSQL e StreamingRead . |
Parcial. O streaming HTTP é suportado, mas o controlo de fluxo ao nível da aplicação não é. |
Apoio técnico de funcionalidades das bibliotecas cliente
A tabela seguinte apresenta as bibliotecas de cliente, indicando as principais funcionalidades do Spanner que cada uma suporta.