Interface do PostgreSQL

Nesta página, descrevemos a interface PostgreSQL do Cloud Spanner e os componentes dela. Ele também fornece orientação sobre como escolher entre o PostgreSQL e o Google Standard SQL e oferece práticas recomendadas para adotar e usar a interface do PostgreSQL.

A interface do PostgreSQL disponibiliza os recursos do Cloud Spanner, escala totalmente gerenciada, ilimitada, consistência forte, alto desempenho e até 99,999% de disponibilidade global, acessíveis a partir do ecossistema PostgreSQL de código aberto. Ela proporciona familiaridade para desenvolvedores e portabilidade para aplicativos. Para a sintaxe do SQL compatível, a interface do PostgreSQL usa a mesma semântica que o PostgreSQL. Isso significa que os aplicativos criados na interface do PostgreSQL podem ser prontamente transferidos para outro ambiente do PostgreSQL, obviamente sem os benefícios não funcionais, como escalonabilidade e disponibilidade, que são exclusivos do Cloud Spanner. No entanto, 100% de compatibilidade com o PostgreSQL não é a meta.

A interface do PostgreSQL fornece um subconjunto avançado do dialeto SQL de código aberto PostgreSQL, incluindo sintaxe de consulta, funções e operadores comuns. Além disso, ele é compatível com uma coleção principal de tipos de dados de código aberto do PostgreSQL, sintaxe DDL e visualizações de esquemas de informações. Os aplicativos podem se conectar a um banco de dados do Cloud Spanner ativado para interface do PostgreSQL usando clientes nativos do Cloud Spanner ou um proxy sidecar que implementa o protocolo de transmissão aberta do PostgreSQL. Inicialmente, o suporte ao protocolo por cabo é destinado ao uso com psql, a conhecida ferramenta de linha de comando PostgreSQL.

Os administradores provisionam, gerenciam e monitoram bancos de dados ativados pela interface do PostgreSQL usando o console, as APIs e as ferramentas atuais do Cloud Spanner, como o gcloud. A interface do PostgreSQL é configurada por banco de dados no momento da criação. Uma instância do Cloud Spanner pode conter bancos de dados da interface SQL padrão do Google e do Cloud Spanner.

Componentes da interface do PostgreSQL

A interface do PostgreSQL consiste em dois recursos principais, suporte ao dialeto SQL do PostgreSQL e suporte a clientes que se conectam a bancos de dados da interface PostgreSQL ativada.

Compatibilidade com a linguagem SQL do PostgreSQL

A interface do PostgreSQL fornece um subconjunto do dialeto SQL do PostgreSQL, incluindo DQL, DML e DDL, além de extensões para oferecer compatibilidade com a funcionalidade do Cloud Spanner, como tabelas intercaladas e dicas de consulta. Para informações detalhadas sobre a compatibilidade com a linguagem do PostgreSQL do Cloud Spanner, consulte A linguagem PostgreSQL no Cloud Spanner.

Suporte ao cliente PostgreSQL

Os desenvolvedores podem conectar seus aplicativos a um banco de dados da interface PostgreSQL usando clientes nativos do Cloud Spanner de código aberto. A versão de pré-lançamento é compatível inicialmente com ambientes Java, JDBC, Go e Python.

A interface do PostgreSQL também oferece suporte ao protocolo eletrônico do PostgreSQL por meio do PGAdapter, um proxy de código aberto patrocinado pelo Google. Ele é traduzido entre o protocolo eletrônico usado pelo PostgreSQL de código aberto e o protocolo de cabo gRPC que o Cloud Spanner usa. usos. Veja mais informações em Sobre o PGAdapter.

Como escolher entre o PostgreSQL padrão e o Google SQL

Ao criar um banco de dados do Cloud Spanner, é possível escolher entre o SQL padrão do Google e os dialetos PostgreSQL de código aberto. O dialeto determina a sintaxe e a semântica das consultas e dos tipos de dados que os aplicativos usarão, bem como a forma como eles se conectam ao banco de dados.

O fator decisivo ao escolher usar o PostgreSQL ou o Google Standard SQL em um determinado aplicativo ou projeto deve ser a necessidade e as metas de negócios, e não suporte de linguagem SQL para recursos do Cloud Spanner. Os dialetos de linguagem SQL são pares que compartilham as mesmas características em relação aos recursos do Cloud Spanner:

  • Ambos são implementados com base na mesma base de armazenamento distribuído e processamento de consultas. Dessa forma, eles compartilham características de desempenho, escalonabilidade, consistência e disponibilidade.
  • Os dois expressam a funcionalidade do banco de dados do Cloud Spanner por meio de um subconjunto das respectivas construções da linguagem padrão (o ANSI 2001 para um, o padrão de fato de código aberto para o outro), com extensões adicionadas para oferecer suporte ao Cloud Funcionalidade do Spanner, como tabelas intercaladas e dicas de consulta.
  • Em ambos os casos, você usa as interfaces de gerenciamento do Cloud Spanner: o Console do Cloud, a ferramenta de linha de comando gcloud e as bibliotecas de cliente do Cloud Spanner para automação do DevOps.
  • Em ambos os casos, você usa as interfaces de desenvolvimento de aplicativos do Cloud Spanner, as bibliotecas de cliente do Cloud Spanner, REST e as APIs RPC.
  • Em ambos os tipos, você usa os esquemas de sistema INFORMATION_SCHEMA e SPANNER_SYS do Cloud Spanner para consultar metadados e estatísticas do banco de dados.

A versão de pré-lançamento ainda não atinge a paridade total entre as interfaces do SQL padrão do Google e do PostgreSQL. No entanto, em longo prazo, é preciso determinar se é necessário usar o PostgreSQL ou o Google Standard SQL para um determinado aplicativo ou projeto da seguinte maneira:

  • Escolha o PostgreSQL se a equipe de desenvolvimento estiver familiarizada com o ecossistema do PostgreSQL de código aberto ou se sua organização estiver padronizando o uso do PostgreSQL.

  • Escolha o Google Standard SQL se a equipe de desenvolvimento estiver familiar a ele, seja na experiência anterior do Cloud Spanner ou trabalhando com outros bancos de dados do Google Cloud, como BigQuery, que também são compatíveis com o Google Standard SQL. Caso sua organização tenha ou padronize o uso do Google Standard SQL ou do padrão ANSI 2011 subjacente.

Práticas recomendadas para usar a interface do PostgreSQL

Para usar a visualização da interface do PostgreSQL de forma eficaz, o Google recomenda que você:

  • Use o Console do Cloud ou a ferramenta de linha de comando gcloud para criar um banco de dados PostgreSQL em uma instância do Cloud Spanner. É possível criar os bancos de dados PostgreSQL e Google Standard SQL na mesma instância.

  • Use as bibliotecas de cliente do Cloud Spanner para conectar aplicativos que acessam seu banco de dados.

  • Use a ferramenta de linha de comando psql por meio do proxy PGAdapter para trabalhar de maneira interativa com seu banco de dados. Também é possível usar as páginas Gravar DDL e Consultar do Console do Cloud.

A seguir