Vista geral das APIs, das bibliotecas cliente e dos controladores ORM

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.

Cliente Go Java Node.js Python Ruby C++ PHP C#
DDL em lote
DML em lote
Opção de líder configurável
Consultas de gráficos
Tabelas intercaladas
Tipo JSON
Mutações
DML particionada
Leitura com partições
Interface do PostgreSQL
Prioridade do pedido
Etiquetagem de pedidos
Etiquetagem de sessões
Leituras desatualizadas
Sugestões de declarações