Visão geral de APIs, bibliotecas de cliente e drivers ORM

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 do gerenciamento de sessões, execução de transações, novas tentativas e muito mais.
  • Drivers de ORM e framework: o Suporte do Google oferece suporte a drivers de código aberto do Spanner para várias bibliotecas de mapeamento relacional de objetos (ORMs) e frameworks conhecidos, como JDBC. Esses drivers permitem o uso de 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 sua linguagem de programação de preferência, use a API RPC, que é criada 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 do 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 compatíveis com a API REST, conforme documentado abaixo.

API REST x RPC

Esta tabela compara os recursos do Spanner disponíveis nas interfaces de API RPC e API REST.

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, observando os principais recursos do Spanner compatíveis com cada uma.

Cliente Go Java Node.js Python Ruby C++ PHP C# Rust
DDL em lote
DML em lote
Opção de líder configurável
Consultas de gráfico
Tabelas intercaladas
Tipo JSON
Mutações
DML particionada
Leitura particionada
Interface do PostgreSQL
Prioridade da solicitação
Tagging de solicitação
Rotulagem de sessão
Leituras desatualizadas
Dicas de instrução
Métricas do cliente