Interface do PostgreSQL

A interface do PostgreSQL para o Spanner permite aproveitar a infraestrutura totalmente gerenciada, escalonável e altamente disponível do Spanner usando ferramentas e sintaxe conhecidas do PostgreSQL. Esta página ajuda você a entender os recursos e limitações do PostgreSQL interface gráfica do usuário.

Benefícios da interface do PostgreSQL

  • Portabilidade: a interface do PostgreSQL oferece acesso a uma ampla variedade de recursos do Spanner, usando esquemas, consultas e clientes compatíveis com o PostgreSQL de código aberto. Isso simplifica a migração de um aplicativo criado no Spanner para outro PostgreSQL. Essa portabilidade oferece flexibilidade de implantação e oferece suporte a cenários de recuperação de desastres, como uma saída sobrecarregada.
  • Familiaridade: se você já usa o PostgreSQL, pode aproveitar começou com o Spanner usando muitos dos bancos de dados PostgreSQL declarações e ferramentas. O uso do PostgreSQL em todo o portfólio de bancos de dados significa menos variações entre produtos específicos e um conjunto comum de práticas recomendadas.
  • Características do Spanner: como é baseado em A base atual do Spanner, A interface PostgreSQL oferece todos A disponibilidade, a consistência e o custo-benefício atuais do Spanner sem ter que comprometer nenhum dos recursos disponíveis no ecossistema GoogleSQL complementar.

Recursos do PostgreSQL não compatíveis com o Spanner

É importante entender que a interface PostgreSQL fornece os recursos do Spanner com esquemas, tipos, consultas e clientes compatíveis com o PostgreSQL. Ela não dão suporte a todos os recursos do PostgreSQL. A migração de um aplicativo PostgreSQL para o Spanner, mesmo usando a interface PostgreSQL para o Spanner, provavelmente requer algum retrabalho para acomodar recursos do PostgreSQL sem suporte ou diferenças de comportamento, como otimização de consultas ou design de chave primária. No entanto, depois da migração, suas cargas de trabalho podem aproveitar a confiabilidade e os recursos exclusivos multimodelo do Spanner.

A lista a seguir contém mais informações sobre os tipos de Recursos do PostgreSQL:

  • Funcionalidade compatível do PostgreSQL: a A interface PostgreSQL oferece suporte a muitas das linguagens do PostgreSQL. Isso inclui partes principais do esquema e do sistema de tipos, muitas formas de consulta comuns, uma variedade de funções e operadores e os principais aspectos do catálogo do sistema do PostgreSQL. Aplicativos pode usar muitos clientes PostgreSQL pela conexão Implementação do Spanner do protocolo de transferência do PostgreSQL.
  • Alguns recursos da linguagem PostgreSQL não são compatíveis: extensões, tipos de dados definidos pelo usuário, procedimentos armazenados definidos pelo usuário e outros recursos não têm suporte. Para acessar uma lista completa, consulte A linguagem PostgreSQL no Spanner. Alguns recursos do PostgreSQL têm comportamentos diferentes do PostgreSQL de código aberto. Para mais informações, consulte Problemas conhecidos na interface do PostgreSQL para o Spanner.
  • Plano de controle do Spanner e do Spanner: os bancos de dados com interfaces do PostgreSQL usam ferramentas do Spanner e do Google Cloud para provisionar, proteger, monitorar e otimizar instâncias. O Spanner não oferece suporte a ferramentas, como o pgAdmin para atividades administrativas.
  • Suporte a protocolo de conexão e cliente: o Spanner oferece suporte aos serviços principais de consulta do protocolo de transferência do PostgreSQL usando PGAdapter, um proxy leve executado com a para o aplicativo. Isso permite que muitos clientes do Spanner trabalhem no estado em que se encontram com um no banco de dados da interface PostgreSQL do Spanner, aproveitando o endpoint global e o gerenciamento de conexões do Spanner, Autenticação do IAM. O benchmarking interno do Google mostra que o PGAdapter não adiciona nenhuma latência perceptível em comparação com a conexão direta aos endpoints integrados do Spanner.

Administração e gerenciamento

A interface PostgreSQL dá suporte aos recursos de administração gerenciamento dos bancos de dados do Spanner com os seguintes recursos:

  • Experiência unificada: provisione, gerencie e monitore bancos de dados ativados pela interface do PostgreSQL usando o console, as APIs e as ferramentas atuais do Spanner, como a CLI do Google Cloud.
  • Configuração flexível: configure o Interface PostgreSQL por banco de dados no momento da criação. Uma única instância do Spanner pode acomodar bancos de dados da interface GoogleSQL e PostgreSQL.
  • Benefícios compartilhados: os dois dialetos de banco de dados compartilham o mesmo mecanismo de banco de dados distribuído, garantindo escalonabilidade, consistência, desempenho e segurança consistentes.

Recursos

A interface do PostgreSQL do Spanner oferece dois recursos principais que permitem a integração com o ecossistema do PostgreSQL:

  • Compatibilidade com o dialeto do PostgreSQL

    O Spanner fornece um subconjunto do SQL do PostgreSQL dialeto, incluindo a Linguagem de consulta de dados (DQL), a Linguagem de manipulação de dados (DML) e Linguagem de Definição de Dados (DDL). Além disso, ele inclui extensões para oferecer suporte a recursos específicos do Spanner, como tabelas intercaladas, time to live (TTL) e dicas de consulta.

    Para informações detalhadas sobre a linguagem PostgreSQL compatível, elementos, consulte A linguagem PostgreSQL em no Spanner. Para entender como usar os recursos do Spanner com as o dialeto PostgreSQL, consulte a documentação do .

  • Compatibilidade com o cliente PostgreSQL

    O Spanner permite que você se conecte a bancos de dados de várias clientes:

    • Ferramentas do ecossistema do PostgreSQL: você pode usar ferramentas conhecidas, como o driver JDBC do PostgreSQL e o driver pgx do PostgreSQL, para conectar seus aplicativos a um banco de dados de interface do PostgreSQL. Para acessar uma lista de drivers, ORMs e ferramentas com suporte, consulte Drivers e ORMs do PostgreSQL.

    • Ferramenta de linha de comando psql: o popular ambiente interativo psql é compatível, permitindo executar consultas, analisar metadados e carregar dados diretamente do terminal.

    • PGAdapter: esse proxy leve simplifica o gerenciamento e a autenticação de conexões. Para mais detalhes, consulte a visão geral do PGAdapter.

    • Clientes do Spanner: o Spanner oferece clientes de código aberto para várias linguagens de programação (Java, Go, Python, Node.js, Ruby, PHP, C#, C++), além de um driver JDBC do Spanner e um driver para o pacote SQL do Go. Os clientes do Spanner se conectam diretamente Endpoint global do Spanner sem um proxy. No entanto, Os clientes do Spanner não oferecem compatibilidade com clientes, ORMs ou ferramentas PostgreSQL.

Práticas recomendadas para usar a interface do PostgreSQL

Siga estas práticas recomendadas ao usar a interface do PostgreSQL:

  1. Conectar seus aplicativos: use o conjunto de ferramentas PostgreSQL com suporte para uma conectividade eficiente.
  2. Interagir com seu banco de dados: para trabalhos interativos, escolha entre os seguintes:

A seguir