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 em gRPC. Essas bibliotecas de cliente fornecem uma camada de abstração sobre o gRPC e lidam com os detalhes de gerenciamento de sessão, execução de transações, tentativas e muito mais.
  • Drivers de framework e ORM: o Google oferece suporte a drivers do Spanner de código aberto para várias bibliotecas e frameworks de mapeamento objeto-relacional (ORMs, na sigla em inglês) 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 driver ORM não estiver disponível para sua opção de linguagem de programação, use a API RPC, que é criada no gRPC. Ele oferece uma série de benefícios de desempenho em comparação ao uso da API REST, incluindo a representação de objetos no formato de buffer de protocolo (que são mais rápidos para produzir e consumir se comparados ao JSON) e conexões persistentes (que resultam em sobrecarga menor 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 compatíveis com a API REST, conforme documentado abaixo.

API REST x RPC

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

Engenharia de 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 aos recursos das bibliotecas de cliente

A tabela a seguir lista as bibliotecas de cliente e destaca os principais recursos do Spanner compatíveis com cada uma delas.

Cliente Go Java Node.js Python Ruby C++ PHP C#
Dicas de instrução
Mutações
DML em lote
DDL em lote
Leituras desatualizadas
Tabelas intercaladas
DML particionada
Rotulagem de sessões
Prioridade da solicitação
Tipo JSON
Solicitar inclusão de tag
Opção de líder configurável
Leitura particionada
Interface PostgreSQL