Interface PostgreSQL para o Spanner

Nesta página, descrevemos a Interface PostgreSQL para o Spanner e seus componentes. Ela fornece orientações sobre como escolher entre o PostgreSQL GoogleSQL e oferece práticas recomendadas para adotar e usar o Interface PostgreSQL.

A interface PostgreSQL torna os recursos Spanner: totalmente gerenciado, escala ilimitada, consistência forte, alto desempenho e até 99,999% de disponibilidade global, acessíveis de ecossistema de código aberto PostgreSQL. Ela inclui um subconjunto central o dialeto SQL do PostgreSQL, o suporte à ferramenta de linha de comando psql, os clientes de linguagem grandes e integração com as ferramentas atuais do Google, como o Dataflow. Ao contrário de outros serviços que gerenciam instâncias reais do banco de dados PostgreSQL, O Spanner usa a sintaxe compatível com PostgreSQL para expor recursos de escalonamento horizontal atuais. Isso dá familiaridade para os desenvolvedores e para aplicativos, mas não 100% de compatibilidade com PostgreSQL. Os aplicativos que dependem dos recursos do PostgreSQL, como os procedimentos, gatilhos, extensões ou níveis de isolamento configuráveis exigirão para execução no Spanner. No entanto, a sintaxe SQL que O Spanner dá suporte ao PostgreSQL semanticamente equivalente, ou seja, esquemas e consultas escritos na interface PostgreSQL podem ser facilmente transferidos para outro ambiente PostgreSQL.

A Interface PostgreSQL dá suporte a funções A sintaxe SQL do PostgreSQL, incluindo consultas, funções e operadores. Além disso, ele é compatível com muitos tipos de dados, sintaxe DDL e visualizações de esquemas de informações. Os aplicativos podem se conectar Banco de dados do Spanner com a interface PostgreSQL ativada usando clientes nativos do Spanner, ou PGAdapter, uma proxy leve que implementa o protocolo aberto PostgreSQL. Inicialmente, o suporte ao protocolo de conexão é destinado ao uso com a ferramenta de linha de comando psql.

Os administradores provisionam, gerenciam e monitoram bancos de dados habilitados para a interface PostgreSQL Console, APIs e ferramentas atuais do Spanner, como a CLI gcloud. A interface PostgreSQL é configurada por banco de dados na criação tempo de resposta. Uma instância do Spanner pode conter dados do GoogleSQL Bancos de dados de dialeto da interface PostgreSQL. Como eles compartilham mesmo mecanismo de banco de dados distribuído, os dois dialetos de banco de dados têm o escalonabilidade, consistência, desempenho e características de segurança.

Componentes da interface do PostgreSQL

A interface PostgreSQL consiste em dois recursos principais: suporte para o dialeto SQL do PostgreSQL e suporte para clientes para se conectar a bancos de dados ativados pela interface PostgreSQL.

Suporte a dialeto SQL do PostgreSQL

A Interface PostgreSQL fornece um subconjunto da O dialeto SQL do PostgreSQL, incluindo DQL, DML e DDL, junto com extensões para dar suporte a recursos do Spanner, como intercaladas em tabelas e dicas de consulta. Para informações detalhadas sobre os recursos Suporte à linguagem PostgreSQL; consulte A linguagem PostgreSQL no Spanner.

Suporte ao cliente PostgreSQL

Os desenvolvedores podem conectar seus aplicativos a uma Banco de dados da interface PostgreSQL usando código aberto Clientes do Spanner para Java, Go, Python, Node.js, Ruby, PHP, C# e ambientes C++. Eles também podem usar o Spanner de código aberto Driver JDBC e o driver para o pacote de banco de dados/sql do Go.

A interface PostgreSQL também oferece suporte à ferramenta de linha de comando psql. O psql é um ambiente interativo para execução de consultas, além de metadados, e carregar dados, algo comum em muitos ambientes PostgreSQL. O suporte a psql é ativado pelo PGAdapter, um proxy leve que converte o protocolo com fio do PostgreSQL em interface gRPC integrada, gerenciando conexões e autenticação do IAM para você. Para Para mais informações, consulte Visão geral do PGAdapter.

O driver JDBC do PostgreSQL e driver PostgreSQL pgx Os drivers também são compatíveis com PGAdapter. Para uma lista completa de drivers PostgreSQL compatíveis, consulte Drivers e ORMs do PostgreSQL (em inglês).

Escolha entre GoogleSQL e PostgreSQL

Ao criar um banco de dados do Spanner, é possível escolher entre Dialetos do GoogleSQL e PostgreSQL. O dialeto determina a sintaxe e a semântica das consultas e tipos de dados que seus aplicativos usam e como eles se conectam ao banco de dados.

O fator decisivo na escolha do uso do GoogleSQL ou do PostgreSQL para um determinado aplicativo ou projeto devem ser metas e necessidade de negócios, não SQL suporte a linguagens de programação para recursos do Spanner. Os dialetos da linguagem SQL são pares que compartilham as mesmas características em relação ao Spanner recursos:

  • 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.
  • Ambos expressam recursos do Spanner usando um subconjunto suas respectivas construções de linguagem padrão (a norma ANSI 2001, padrão PostgreSQL de código aberto para o outro), com extensões adicionados para dar suporte aos recursos do Spanner, como tabelas intercaladas e dicas de consulta.
  • Para ambos, você usa o sistema de gerenciamento do Google Cloud: o console do Google Cloud, a CLI gcloud e bibliotecas de cliente do Spanner para automação de DevOps.
  • Para ambos, você usa o modelo de desenvolvimento de aplicativos do Spanner interfaces de programação: as bibliotecas de cliente do Spanner, as APIs REST e RPC.
  • Para ambos, você usa o Spanner INFORMATION_SCHEMA e SPANNER_SYS esquemas do sistema para consultar metadados e estatísticas de banco de dados.

A interface PostgreSQL atual não atinge paridade entre os dialetos GoogleSQL e PostgreSQL. No entanto, em longo prazo, você deve determinar se deve usar o PostgreSQL ou GoogleSQL para um determinado aplicativo ou projeto da seguinte maneira:

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

  • Escolha GoogleSQL:

    • Se a equipe de desenvolvimento tem familiaridade com o GoogleSQL, experiência anterior com o Spanner ou usando outro serviço do Google Cloud bancos de dados como BigQuery, que também têm suporte ao GoogleSQL.
    • Se sua organização está padronizando o uso de GoogleSQL ou o padrão ANSI 2011 dele.

Para mais informações, consulte Paridade de dialetos GoogleSQL e PostgreSQL.

Práticas recomendadas para usar a interface do PostgreSQL

Para usar a interface PostgreSQL de forma eficaz, o Google recomenda que você:

  • Use o console ou a Google Cloud CLI para criar seu banco de dados PostgreSQL em uma instância do Spanner. (Você pode criar bancos de dados PostgreSQL e GoogleSQL na mesma instância.

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

  • Use a ferramenta de linha de comando psql pelo proxy PGAdapter para funcionar interativamente com seu banco de dados. Como alternativa, use o método Página Spanner Studio no console do Google Cloud.

A seguir