Nesta página, descrevemos a interface do PostgreSQL para o Cloud Spanner e os respectivos componentes. Ele fornece orientações sobre como escolher entre o PostgreSQL e o SQL padrão do Google, além de 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 a interface SQL e PostgreSQL padrão do Google para bancos de dados 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 e o SQL padrão do Google
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 para escolher usar o PostgreSQL ou o SQL padrão do Google para um determinado aplicativo ou projeto é a necessidade e as metas de negócios, não a compatibilidade com a 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.
- Os dois usam as interfaces de gerenciamento do Cloud Spanner: o Console do Cloud, a CLI do Google Cloud e as bibliotecas de cliente do Cloud Spanner para automação de 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
eSPANNER_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 SQL e PostgreSQL padrão do Google. No entanto, em longo prazo, você precisa determinar se precisa usar o PostgreSQL ou o SQL padrão do Google 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 SQL padrão do Google se a equipe de desenvolvimento estiver familiarizada com o SQL padrão do Google, seja com base na experiência anterior do Cloud Spanner ou trabalhando com outros bancos de dados do Google Cloud, como o
BigQuery
, que também é compatível com o SQL padrão do Google. Isso também é recomendado se sua organização usa ou está padronizando o uso do SQL padrão do Google 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 CLI do Google Cloud para criar seu banco de dados PostgreSQL em uma instância do Cloud Spanner. É possível criar bancos de dados SQL padrão do PostgreSQL e do Google 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. Se preferir, use as páginas Gravar DDL e Consulta no Console do Cloud.
A seguir
Siga o guia de início rápido para criar e interagir com um banco de dados do PostgreSQL.
Saiba mais sobre o suporte à linguagem PostgreSQL do Cloud Spanner.
Saiba mais sobre o PGAdapter.