Configure extensões do PostgreSQL

Pode expandir o PostgreSQL agrupando objetos SQL num pacote e usando-os como uma unidade. Esta página contém informações sobre a configuração das extensões do PostgreSQL que o Cloud SQL suporta.

Use extensões do PostgreSQL

Só pode instalar as extensões suportadas pelo Cloud SQL. Para mais informações, consulte o artigo Extensões do PostgreSQL suportadas pelo Cloud SQL.

Instale uma extensão

Antes de usar uma extensão, instale-a:

Requisito de privilégios de superutilizador

No Cloud SQL, as extensões só podem ser criadas por utilizadores que façam parte da função cloudsqlsuperuser. Quando cria uma nova instância do PostgreSQL, o utilizador postgres predefinido é criado automaticamente (embora tenha de definir a palavra-passe do utilizador). O utilizador postgres predefinido faz parte da função cloudsqlsuperuser. Para mais informações, consulte o artigo Acerca dos utilizadores do PostgreSQL.

Ligações entre bases de dados

As instâncias de destino para ligações têm de estar na mesma rede de VPC que a instância de ligação.

Para instâncias de cluster, não pode escolher a opção Exigir certificados de cliente fidedignos naGoogle Cloud consola. Além disso, para estabelecer ligação a bases de dados na mesma instância, não pode definir o anfitrião como localhost nem como 127.0.0.1. Em alternativa, tem de usar o endereço IP apresentado para a sua instância na Google Cloud consola.

Peça apoio técnico para uma nova extensão

Não pode criar as suas próprias extensões no Cloud SQL.

Para pedir apoio técnico para uma extensão, clique em +1 no problema aberto ou crie um novo problema. Para ver uma lista de problemas do Cloud SQL em aberto e informações sobre como criar novos problemas, consulte o artigo Pesquise ou crie problemas e pedidos de funcionalidades por produto.

Extensões do PostgreSQL suportadas pelo Cloud SQL

Para obter informações sobre a utilização de uma extensão específica, consulte o link de documentação numa das tabelas abaixo.

O apoio técnico do Cloud SQL para extensões do PostgreSQL pode ser dividido nestas categorias:

PostGIS

A extensão PostGIS é suportada para o Cloud SQL para PostgreSQL para todas as versões principais.

A tabela seguinte contém as versões da extensão PostGIS para cada versão do Cloud SQL para PostgreSQL:

Versão do Cloud SQL para PostgreSQL Extensão PostGIS
PostgreSQL 9.6 3.2.5
PostgreSQL 10 3.2.5
PostgreSQL 11 3.2.5
PostgreSQL 12 3.4.4
PostgreSQL 13 3.5.2
PostgreSQL 14 3.5.2
PostgreSQL 15 3.5.2
PostgreSQL 16 3.5.2
PostgreSQL 17 3.5.2

Para uma versão principal específica do PostgreSQL, no comando CREATE EXTENSION, pode especificar uma versão da extensão PostGIS através da cláusula VERSION.

A extensão PostGIS inclui o seguinte:

Para mais informações, consulte o artigo Instalação do PostGIS.

Além disso, o Cloud SQL para PostgreSQL inclui a versão 3.6.2 da extensão pgRouting, que expande o PostGIS. A extensão pgRoutingmelhora o processamento geoespacial através do encaminhamento de rede e da análise.

Pode atualizar o PostGIS e as respetivas extensões relacionadas para a versão mais recente manualmente. Para saber como atualizar as extensões PostGIS, consulte o artigo Atualizar o PostGIS.

Extensões de tipo de dados

Extensão Descrição
btree_gin Fornece classes de operadores GIN de exemplo que implementam um comportamento equivalente a uma árvore B.
O PostgreSQL 9.6 usa a versão 1.0. O PostgreSQL 10 usa a versão 1.2. O PostgreSQL 11 e posterior usa a versão 1.3.
btree_gist Fornece classes de operadores de índice GiST que implementam o comportamento equivalente de árvore B.
O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12 e 13 usa a versão 1.5. O PostgreSQL 14 usa a versão 1.6. O PostgreSQL 15 e posterior usa a versão 1.7.
chkpass Implementa um tipo de dados chkpass concebido para armazenar palavras-passe encriptadas.
O PostgreSQL 9.6 e 10 usa a versão 1.0. Não é suportado para outras versões.
citext Fornece um tipo de string de carateres não sensível a maiúsculas e minúsculas citext.
O PostgreSQL 9.6 usa a versão 1.3. O PostgreSQL 10 usa a versão 1.4. O PostgreSQL 11 usa a versão 1.5. O PostgreSQL 12 e posteriores usam a versão 1.6.
cube Implementa um tipo de dados cube para representar cubos multidimensionais.
O PostgreSQL 9.6 e 10 usam a versão 1.2. O PostgreSQL 11 usa a versão 1.3. O PostgreSQL 12 e 13 usam a versão 1.4. O PostgreSQL 14 e posterior usa a versão 1.5.
hstore Implementa o tipo de dados hstore para armazenar conjuntos de pares de chave/valor num único valor PostgreSQL.
O PostgreSQL 9.6 e 10 usam a versão 1.4. O PostgreSQL 11 usa a versão 1.5. O PostgreSQL 12 usa a versão 1.6. O PostgreSQL 13 usa a versão 1.7. O PostgreSQL 14 e posterior usa a versão 1.8.
ip4r Fornece tipos de dados para endereços IPv4/v6 e intervalos de endereços, além de suporte de índice.
O Cloud SQL para PostgreSQL usa a versão 2.4.2.
isn Fornece tipos de dados para algumas normas de numeração de produtos internacionais.
O PostgreSQL 9.6 e 10 usam a versão 1.1. O PostgreSQL 11 e posterior usa a versão 1.2.
lo Suporte para a gestão de objetos grandes (também denominados LOs ou BLOBs).
O Cloud SQL para PostgreSQL usa a versão 1.1.
ltree Implementa um tipo de dados ltree para representar etiquetas de dados armazenados numa estrutura hierárquica semelhante a uma árvore.
O PostgreSQL 9.6, 10, 11 e 12 usa a versão 1.1. O PostgreSQL 13, 14, 15 e 16 usa a versão 1.2. O PostgreSQL 17 usa a versão 1.3.
postgresql-hll Apresenta um novo tipo de dados, hll, que é uma estrutura de dados HyperLogLog. Consulte também postgresql-hll neste documento.
O Cloud SQL para PostgreSQL usa a versão 2.18.
prefix Oferece correspondência de prefixos, além de suporte de índice.
O Cloud SQL para PostgreSQL usa a versão 1.2.0.

Extensões de idioma

Extensão Descrição
plpgsql Uma linguagem processual carregável para criar funções, procedimentos e acionadores. Também pode usar esta linguagem para a execução direta de código em blocos DO.
O Cloud SQL para PostgreSQL usa a versão 1.0.
plv8 Fornece uma linguagem processual para ativar o JavaScript.
O Cloud SQL para PostgreSQL usa a versão 3.2.2, que, por sua vez, usa a versão 11.5 do motor JavaScript V8.

Extensões diversas

Extensão Descrição
amcheck Fornece funções para validar a consistência lógica da estrutura das relações, o que permite à aplicação pg_amcheck verificar a existência de danos.
auto_explain Ativa o registo automático de planos de execução de declarações lentas, para resolução de problemas e muito mais. Oferece uma forma automática de executar a funcionalidade do comando EXPLAIN. Consulte também a secção auto_explain neste documento.
autoinc Oferece funções para incrementar campos automaticamente. Este acionador armazena o valor seguinte de uma sequência num campo de número inteiro.
O Cloud SQL para PostgreSQL usa a versão 1.0.
bloom Fornece um método para aceder a índices com base em filtros de Bloom. Um filtro de Bloom é uma estrutura de dados eficiente em termos de espaço que pode usar para testar se um elemento é membro de um conjunto.
O Cloud SQL para PostgreSQL usa a versão 1.0.
dblink Fornece funções para estabelecer ligação a bases de dados PostgreSQL a partir de uma sessão de base de dados. Consulte também dblink neste documento.
O Cloud SQL para PostgreSQL usa a versão 1.2.
decoderbufs Um descodificador lógico do PostgreSQL que fornece dados de saída como Protocol Buffers, adaptado para o Debezium.
dict_int Um modelo de dicionário suplementar para a pesquisa de texto completo que controla a indexação de números inteiros.
O Cloud SQL para PostgreSQL usa a versão 1.0.
earthdistance Oferece duas abordagens para calcular distâncias de grande círculo na superfície da Terra.
O Cloud SQL para PostgreSQL usa a versão 1.1.
fuzzystrmatch Oferece várias funções para determinar semelhanças e distância entre strings.
O PostgreSQL 9.6, 10, 11, 12, 13, 14 e 15 usa a versão 1.1. O PostgreSQL 16 e posterior usa a versão 1.2
google_ml_integration Gera incorporações de vetores para traduzir comandos de texto em vetores numéricos através de um modelo de linguagem (conteúdo extenso) (MDI/CE).
O PostgreSQL 12 e posteriores usam a versão 1.4.2. Não é suportado para outras versões.
insert_username Fornece funções para armazenar o nome do utilizador atual num campo de texto. Pode usar esta opção para acompanhar quem modificou uma linha numa tabela de base de dados pela última vez.
O Cloud SQL para PostgreSQL usa a versão 1.0.
intagg Fornece um agregador de números inteiros e um enumerador.
O Cloud SQL para PostgreSQL usa a versão 1.1.
intarray Fornece um conjunto de funções e operadores para manipular matrizes de números inteiros sem nulos e realizar pesquisas indexadas nas mesmas.
O PostgreSQL 9.6, 10, 11 e 12 usa a versão 1.2. O PostgreSQL 13 usa a versão 1.3. O PostgreSQL 14 e posterior usa a versão 1.5.
moddatetime Fornece funções para armazenar a hora atual num campo timestamp. Pode usar esta opção para acompanhar a última vez que uma linha numa tabela de base de dados é modificada.
O Cloud SQL para PostgreSQL usa a versão 1.0.
oracle_fdw Fornece um wrapper de dados externos (fdw) para aceder a bases de dados Oracle de forma fácil e eficiente.
O Cloud SQL para PostgreSQL usa a versão 1.2.

Se estiver a usar o Private Service Connect para estabelecer ligação à sua instância do Cloud SQL, tem de ativar a conetividade de saída do Private Service Connect para usar esta extensão.
orafce Fornece funções e operadores que emulam um subconjunto de funções e pacotes de uma base de dados Oracle. Use estas funções para transferir aplicações Oracle para o PostgreSQL.
O PostgreSQL 9.6 e 10 usa a versão 3.25. O PostgreSQL 11 e posterior usa a versão 4.13.
pageinspect Inspecciona o conteúdo das páginas da base de dados a um nível baixo. Veja também pageinspect neste documento.
O PostgreSQL 9.6 usa a versão 1.5. O PostgreSQL 10 usa a versão 1.6. O PostgreSQL 11 e 12 usa a versão 1.7. O PostgreSQL 13 e 14 usam a versão 1.8. O PostgreSQL 15 usa a versão 1.11. O PostgreSQL 16 e posterior usa a versão 1.12.
pgAudit Recolhe dados de auditoria.

Os valores possíveis a definir para os ficheiros de registo de auditoria para todas as versões do pgAudit são READ, WRITE, FUNCTION, ROLE, DDL, MISC e ALL. Para as versões 1.4.2 e superiores, também pode definir o valor de MISC_SET.

Para mais informações sobre a utilização desta extensão com o Cloud SQL, consulte Auditoria do PostgreSQL com o pgAudit.

pg_background Permite executar comandos arbitrários num processo em segundo plano.
O Cloud SQL para PostgreSQL usa a versão 1.3.
pg_bigm Ativa a pesquisa de texto completo e permite um índice de dois gramas (bigrama) para uma pesquisa de texto completo mais rápida. Consulte também pg_bigm neste documento.
pg_buffercache Fornece um meio de examinar o que está a acontecer na cache do buffer partilhado em tempo real.
O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12, 13, 14 e 15 usa a versão 1.3. O PostgreSQL 16 usa a versão 1.4. O PostgreSQL 17 usa a versão 1.5.
pg_cron Fornece um programador de tarefas baseado em cron. Esta extensão permite a sintaxe cron para agendar comandos do PostgreSQL diretamente a partir da base de dados. Para mais informações sobre a extensão, consulte pg_cron neste documento.
As versões 10 e posteriores do PostgreSQL usam a versão 1.6.4.
pgcrypto Fornece funções criptográficas para o PostgreSQL.
O Cloud SQL para PostgreSQL usa a versão 1.3.
pglogical Fornece replicação lógica para o PostgreSQL. Consulte o artigo Configurar a replicação lógica e a descodificação.
O Cloud SQL para PostgreSQL usa a versão 2.4.5.
pgfincore Um conjunto de funções para gerir páginas na memória da cache do disco do sistema operativo a partir do PostgreSQL. Consulte também pgfincore neste documento.
O Cloud SQL para PostgreSQL usa a versão 1.3.1.
pg_freespacemap Examina o mapa de espaço livre (FSM). Consulte também pg_freespacemap neste documento.
O Cloud SQL para PostgreSQL usa a versão 1.2.
pg_hint_plan Permite-lhe melhorar os planos de execução do PostgreSQL através de sugestões, que são descrições simples em comentários SQL. Consulte também pg_hint_plan neste documento.
pgoutput Este plug-in é usado pela replicação lógica para a captura de dados de alterações. pgoutput é um plug-in predefinido e, por isso, é suportado em todas as versões do Cloud SQL para PostgreSQL.
pg_ivm Permite-lhe atualizar as visualizações materializadas em que apenas as alterações incrementais são calculadas e aplicadas nas visualizações, em vez de recalcular os conteúdos desde o início.
As versões 13 e posteriores do PostgreSQL suportam a versão 1.9.
pg_partman Permite-lhe criar e gerir conjuntos de partições de tabelas baseados em tempo e em série. Consulte também pg_partman neste documento.
As versões 14 e posteriores do PostgreSQL suportam a versão 5.2.4, enquanto as versões do PostgreSQL anteriores à 14 suportam apenas até à versão 4.7.4.
pg_prewarm Oferece uma forma conveniente de carregar dados de relações na cache de buffer do sistema operativo ou na cache de buffer do PostgreSQL.
O PostgreSQL 9.6 e 10 usa a versão 1.1. O PostgreSQL 11 e posterior usa a versão 1.2.
plpgsql_check Uma ferramenta de análise estática para PL/pgSQL, a linguagem de procedimento armazenado nativa no PostgreSQL.
O Cloud SQL para PostgreSQL usa a versão 2.8.
Esta extensão é suportada para as versões 14 e posteriores do PostgreSQL.
pg_proctab Permite-lhe usar o pg_top com o Cloud SQL para PostgreSQL e gerar relatórios a partir da tabela de processos do sistema operativo. Consulte também pg_proctab neste documento.
pg_repack Permite remover o excesso de dados de tabelas e índices. Opcionalmente, permite-lhe executar um CLUSTER online (ordenar tabelas por índice de cluster). Consulte também pg_repack neste documento.
O Cloud SQL para PostgreSQL usa a versão 1.5.0.
pg_roaringbitmap A extensão pg_roaringbitmap introduz um tipo de dados de bitmap rugido que permite um armazenamento altamente eficiente e operações de conjunto rápidas em grandes coleções de números inteiros. Armazena dinamicamente números inteiros em formas comprimidas (matrizes, mapas de bits ou contentores de execução) com base na respetiva densidade, reduzindo significativamente a pegada de armazenamento e acelerando operações comuns, como cálculos de união, interseção e cardinalidade.
Disponível no PostgreSQL 12 e versões posteriores. O Cloud SQL para PostgreSQL usa a versão 0.5 do pg_roaringbitmap.
pgrowlocks Fornece informações de bloqueio de linhas para a tabela especificada.
O Cloud SQL para PostgreSQL usa a versão 1.2.
pgstattuple Fornece várias funções para obter estatísticas ao nível da tupla.
O PostgreSQL 9.6 usa a versão 1.4. Todas as outras versões usam a versão 1.5.
pg_similarity Oferece suporte para consultas de semelhança no PostgreSQL.
O Cloud SQL para PostgreSQL usa a versão 1.0.
pg_squeeze Remove o espaço não usado de uma tabela e, opcionalmente, usa um índice para ordenar os registos ou as linhas (tuplos) da tabela. Para mais informações sobre esta extensão, consulte pg_squeeze neste documento.
O PostgreSQL 11 usa a versão 1.5. O PostgreSQL 12 e posterior usa a versão 1.8.
pg_stat_statements Fornece um meio de acompanhar as estatísticas de execução de todas as declarações SQL executadas.
O PostgreSQL 9.6 usa a versão 1.4. O PostgreSQL 10 e 11 usam a versão 1.6. O PostgreSQL 12 usa a versão 1.7. O PostgreSQL 13 usa a versão 1.8. O PostgreSQL 14 usa a versão 1.9. O PostgreSQL 15 e 16 usa a versão 1.10. O PostgreSQL 17 usa a versão 1.11.
pgTAP Fornece uma framework de testes unitários para o PostgreSQL, escrita em PL/pgSQL e PL/SQL.
O Cloud SQL para PostgreSQL usa a versão 1.3.0.
pg_trgm Fornece funções e operadores para determinar a semelhança de texto alfanumérico com base na correspondência de trigramas, bem como classes de operadores de índice que suportam a pesquisa rápida de strings semelhantes.
O PostgreSQL 9.6 e 10 usam a versão 1.3. O PostgreSQL 11 e 12 usa a versão 1.4. O PostgreSQL 13 usa a versão 1.5. O PostgreSQL 14 e posterior usa a versão 1.6.
pgtt

Cria e gere tabelas temporárias globais no estilo DB2 ou Oracle numa base de dados PostgreSQL.
O PostgreSQL 9.6, 10 e 11 usa a versão 3.0. O PostgreSQL 12 e posteriores usam a versão 4.0.

pgvector

Uma extensão de código aberto para armazenar e pesquisar incorporações de vetores em bases de dados PostgreSQL.
As versões 13 e posteriores do PostgreSQL suportam a versão 0.8.0, a versão 12 do PostgreSQL suporta até à versão 0.7.4 e a versão 11 do PostgreSQL suporta até à versão 0.5.1.

pg_visibility Oferece uma forma de examinar o mapa de visibilidade (VM) e as informações de visibilidade ao nível da página de uma tabela. Consulte também pg_visibility neste documento.
O Cloud SQL para PostgreSQL usa a versão 1.2.
pg_wait_sampling Recolhe estatísticas de amostragem de eventos de espera, fornecendo dados de eventos de espera para processos em servidores. O Cloud SQL para PostgreSQL usa a versão 1.1.5.
PL/Proxy Processador de linguagem processual que permite chamadas de procedimentos remotos entre bases de dados do PostgreSQL, com divisão opcional. Consulte também PL/Proxy neste documento.
O Cloud SQL para PostgreSQL usa a versão 2.11.0.
postgres_fdw Permite a criação de wrappers de dados externos em instâncias ou entre instâncias. Consulte também postgres_fdw neste documento.
O PostgreSQL 9.6, 10, 11, 12 e 13 usa a versão 1.0. O PostgreSQL 14 e posterior usa a versão 1.1.
postgresql_anonymizer

Máscaras ou substitui informações de identificação pessoal (IIP) ou dados sensíveis de uma base de dados PostgreSQL. Para mais informações, consulte a secção postgresql_anonymizer.

O Cloud SQL para PostgreSQL usa a versão 1.0.0.

postgresql_hll

Fornece uma estrutura de dados HyperLogLog (hll) que estima a cardinalidade de um conjunto.

O Cloud SQL para PostgreSQL usa a versão 2.18.

rdkit Uma coleção de software de quimioinformática e aprendizagem automática. Pode usar esta extensão para comparar, manipular e identificar estruturas moleculares.
O Cloud SQL para PostgreSQL usa a versão 4.6.1.
refint Inclui funções para verificar restrições de chaves externas, a tabela de referência e a tabela referenciada. Esta extensão também demonstra a interface de programação do servidor (SPI). O Cloud SQL para PostgreSQL usa a versão 1.0.
sslinfo Fornece informações sobre o certificado SSL que o cliente atual forneceu quando se ligou à instância.
O Cloud SQL para PostgreSQL usa a versão 1.2.
tablefunc Inclui várias funções que devolvem tabelas (várias linhas).
O Cloud SQL para PostgreSQL usa a versão 1.0.
tcn Fornece uma função de acionador que notifica os ouvintes de alterações ao conteúdo das tabelas de base de dados.
O Cloud SQL para PostgreSQL usa a versão 1.0.
tds_fdw Fornece um wrapper de dados externos (fdw) para aceder a bases de dados, como o Microsoft SQL Server e o Sybase, que usam o protocolo Tabular Data Stream (TDS). O Cloud SQL para PostgreSQL usa a versão 2.0.4.
temporal_tables Oferece suporte para tabelas temporais. Uma tabela temporal regista o período durante o qual uma linha é válida do ponto de vista da base de dados.
O Cloud SQL para PostgreSQL usa a versão 1.2.2.
tsm_system_rows Fornece o método de amostragem de tabelas SYSTEM_ROWS, que pode ser usado na cláusula TABLESAMPLE de um comando SELECT.
O Cloud SQL para PostgreSQL usa a versão 1.0.
tsm_system_time Fornece o método de amostragem de tabelas SYSTEM_TIME, que pode ser usado na cláusula TABLESAMPLE de um comando SELECT.
O Cloud SQL para PostgreSQL usa a versão 1.0.
unaccent Um dicionário de pesquisa de texto que remove acentos (sinais diacríticos) de lexemas.
O Cloud SQL para PostgreSQL usa a versão 1.1.
uuid-ossp Fornece funções para gerar identificadores exclusivos universais (UUIDs) através de um de vários algoritmos padrão.
O Cloud SQL para PostgreSQL usa a versão 1.1.

Mais informações sobre algumas extensões do PostgreSQL

Esta secção descreve mais informações sobre algumas das extensões do PostgreSQL suportadas nas tabelas acima.

auto_explain

Para começar a usar esta extensão numa instância, defina a flag cloudsql.enable_auto_explain como on. Para obter informações sobre a definição de flags e rever as flags suportadas para esta extensão, consulte o artigo Configure flags da base de dados.

Para ver os dados de registo e os eventos associados aos registos dos planos de execução que esta extensão permite, consulte a documentação do Cloud Logging.

Em alternativa, para um utilizador que tenha (apenas) a função cloudsqlsuperuser, pode usar o comando load para carregar esta extensão para uma sessão.

A partir de uma sessão de base de dados, pode usar esta extensão para se ligar a bases de dados do PostgreSQL e executar consultas.

Atualmente, esta extensão funciona para duas instâncias de IP privadas do Cloud SQL na mesma rede da VPC ou para bases de dados cruzadas na mesma instância.

Para mais informações, consulte o artigo dblink na documentação do PostgreSQL.

Para estabelecer ligação a bases de dados ou à mesma instância que outro utilizador, tem de especificar uma palavra-passe. Para fins de exemplo (mas não para fins de produção), segue-se um fragmento do código:


  SELECT * FROM dblink (
    'dbname=name port=1234 host=host user=user password=password',
    'select id, name from table' \
  ) AS t(id int, name text);

Em alternativa, para configurar apenas uma ligação, segue-se um exemplo de um fragmento do código para fins de exemplo (não para fins de produção):

  SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');

Para estabelecer ligação à mesma instância como o mesmo utilizador, pode estabelecer ligação sem uma palavra-passe. Por exemplo:

  1. Defina a seguinte flag da base de dados para ativar as ligações locais sem uma palavra-passe
    cloudsql.allow_passwordless_local_connections

  2. Estabelecer ligação sem especificar um anfitrião, o que implica estabelecer ligação à mesma instância. Vejamos um exemplo:

    SELECT *
      FROM dblink('dbname=finance user=alice',
                  'select income from revenue')
        AS revenue(income integer);
    

    O resultado pode ser semelhante ao seguinte:

          income
          --------
          1000
          (1 row)
    

Para estabelecer ligação a bases de dados na mesma instância, não pode definir o anfitrião como localhost nem como 127.0.0.1. Em alternativa, tem de usar o endereço IP apresentado para a sua instância na Google Cloud consola.

Consulte também postgres_fdw e PL/Proxy neste documento.

pageinspect

Esta extensão inspeciona o conteúdo das páginas da base de dados a um nível baixo. Para mais informações, consulte pageinspect na documentação do PostgreSQL.

pg_bigm

Esta extensão permite a pesquisa de texto completo e um índice de dois gramas (bigrama) para uma pesquisa de texto completo mais rápida.

Para começar a usar esta extensão numa instância, defina a flag cloudsql.enable_pg_bigm como on. As seguintes flags também são suportadas:

  • pg_bigm.enable_recheck
  • pg_bigm.gin_key_limit
  • pg_bigm.similarity_limit

Para ver informações sobre a definição de flags e rever as flags suportadas para esta extensão, consulte o artigo Configure flags da base de dados.

pg_cron

Para começar a usar o pg_cron numa instância, defina a flag cloudsql.enable_pg_cron como on. Para informações sobre como definir flags e rever as flags suportadas para esta extensão, consulte o artigo Configure flags de base de dados.

As tarefas estão configuradas como trabalhadores em segundo plano, pelo que pode ter de usar técnicas padrão do PostgreSQL (como a flag max_worker_processes) para ajustar o número desses trabalhadores em segundo plano.

Para esta extensão, o Cloud SQL suporta o modo de trabalhador em segundo plano, mas não a interface libpq. Por conseguinte, não é necessária a autenticação de confiança que envolva diretamente esta extensão.

pgfincore

Esta extensão contém funções para gerir páginas na memória da cache do disco do sistema operativo a partir do PostgreSQL. Para mais informações, consulte a documentação do pgfincore.

pg_freespacemap

Esta extensão examina o mapa de espaço livre (FSM). Para mais informações, consulte o artigo pg_freespacemap na documentação do PostgreSQL.

pg_hint_plan

Para começar a usar esta extensão numa instância, defina a flag cloudsql.enable_pg_hint_plan como on. Para obter informações sobre a definição de flags e rever as flags suportadas para esta extensão, consulte o artigo Configure flags da base de dados.

Em alternativa, para apenas um utilizador com a função de cloudsqlsuperuser, pode usar o comando load para carregar esta extensão para uma sessão.

pg_partman

Esta extensão permite-lhe criar e gerir conjuntos de partições de tabelas baseadas em tempo e em série.

No Cloud SQL, esta extensão não inclui o trabalhador em segundo plano para a manutenção automática de partições. Em alternativa, pode usar, por exemplo, o Cloud Scheduler para acionar a manutenção chamando funções de manutenção a um intervalo regular.

pg_proctab

Seguem-se os passos para usar a extensão pg_proctab para ativar o utilitário pg_top:

  1. Na ferramenta psql, execute o comando CREATE EXTENSION para pg_proctab.
  2. Transfira e execute o pg_top.
  3. Quando se ligar a uma instância do Cloud SQL para PostgreSQL, adicione a opção -r para se ligar a uma base de dados remota e obter métricas.

As seguintes métricas ao nível da instância, que estão incluídas no resultado, incluem a utilização por outros agentes e serviços compatíveis na instância:

  • Média de carga
  • Estados da CPU (% utilizador, nice, sistema, inativo e iowait)
  • Memória (usada, livre e em cache)

pg_repack

Esta extensão permite-lhe remover o excesso de dados de tabelas e índices. Opcionalmente, pode usar esta extensão para executar um CLUSTER online (ordenar tabelas por índice de cluster). Para mais informações, consulte a documentação do pg_repack. Além disso, para usar esta extensão no Cloud SQL, é necessário um procedimento especial para adicionar privilégios a um utilizador.

Se um utilizador fora da função cloudsqlsuperuser quiser usar uma extensão, tem de conceder privilégios de cloudsqlsuperuser ao utilizador. Para mais informações, consulte a secção Requisito de privilégios de superutilizador neste documento. O exemplo seguinte usa o comando GRANT para adicionar os privilégios necessários.

Exemplo de adição de privilégios

Para fins de exemplo abaixo, csuper1 é um cloudsqlsuperuser e testdb é uma base de dados pertencente a testuser. Para criar a extensão pg_repack no testdb, execute inicialmente os seguintes comandos:

  1. Ligue-se a testdb como cloudsqlsuperuser:

    psql -U csuper1 -d testdb;
    
  2. Conceda ao proprietário da base de dados, que é testuser,, acesso a csuper1:

    GRANT testuser TO csuper1;
    
  3. Crie a extensão:

    CREATE EXTENSION pg_repack;
    
  4. Execute o comando pg_repack numa tabela, como t1 em testdb, como csuper1:

    pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
    
  5. Após a conclusão da tarefa pg_repack, revogue a concessão que realizou no passo 2:

     REVOKE testuser FROM csuper1;
    

O comando pg_repack pode falhar com o seguinte erro:
"ERROR: query failed: SSL SYSCALL error: EOF detected"

Se ocorrer esse erro, experimente definir os keepalives TCP para um valor inferior e, em seguida, execute o comando pg_repack. Para mais informações, consulte o artigo Tempo limite de ligações (do Compute Engine).

pg_squeeze

Esta extensão remove o espaço não utilizado de uma tabela e, opcionalmente, usa um índice para ordenar as tuplas da tabela. Para começar a usar a extensão numa instância, defina a flag cloudsql.enable_pg_squeeze como on.

Esta extensão também suporta a descodificação lógica escrevendo informações adicionais no registo de transações (WAL). Para ativar esta funcionalidade para a extensão, defina o parâmetro de configuração wal_level como logical ou superior definindo a flag cloudsql.logical_decoding como on.

A extensão requer que seja definido um valor para a flag max_replication_slots. Se não tiver especificado um valor para este sinalizador, defina o valor como 1. Caso contrário, adicione 1 ao valor definido para a flag.

Para ver informações sobre a definição de flags e rever as flags suportadas para esta extensão, consulte o artigo Configure flags de base de dados.

pgtt

Para começar a usar esta extensão numa instância, defina a flag pgtt.enabled como on. Para ver informações sobre a definição de flags e rever as flags suportadas para esta extensão, consulte o artigo Configurar flags de base de dados.

pg_visibility

Esta extensão oferece uma forma de examinar o mapa de visibilidade (VM) e as informações de visibilidade ao nível da página de uma tabela. Para mais informações, consulte o artigo pg_visibility na documentação do PostgreSQL.

PL/Proxy

Esta extensão é um controlador de linguagem processual que permite chamadas de procedimentos remotos entre bases de dados PostgreSQL, com divisão opcional.

Para mais informações, consulte a documentação do PL/Proxy.

As instâncias de destino para ligações têm de estar na mesma rede de VPC que a instância de ligação. Além disso, não pode escolher, na Google Cloud consola, o botão Permitir apenas ligações SSL para instâncias de cluster.

Para estabelecer ligação a bases de dados na mesma instância, não pode definir o anfitrião como localhost nem como 127.0.0.1. Em alternativa, tem de usar o endereço IP apresentado para a sua instância na Google Cloud consola.

Consulte também postgres_fdw e dblink neste documento.

postgresql_anonymizer

Para começar a usar esta extensão numa instância, defina a flag cloudsql.enable_anon como on. Para ver informações sobre a definição de flags e rever as flags suportadas para esta extensão, consulte o artigo Configurar flags de base de dados.

postgres_fdw

Esta extensão permite que as tabelas de outras bases de dados PostgreSQL ("externas") sejam expostas como tabelas "externas" na base de dados atual. Essas tabelas ficam disponíveis para utilização, quase como se fossem tabelas locais. Para mais informações, consulte postgres_fdw na documentação do PostgreSQL.

Esta extensão funciona para duas instâncias de IP privadas do Cloud SQL na mesma rede VPC ou para bases de dados cruzadas na mesma instância.

Para estabelecer ligação a bases de dados na mesma instância, não pode definir o anfitrião como localhost nem como 127.0.0.1. Em alternativa, tem de usar o endereço IP apresentado para a sua instância na Google Cloud consola.

Além disso, para uma instância em que os dados externos são armazenados, pode escolher a opção Permitir apenas ligações SSL na Google Cloud consola. Não pode escolher a opção Exigir certificados de cliente fidedignos. Apenas o cloudsqlsuperuser pode ser o proprietário de um postgres_fdw foreign data wrapper.

Consulte também PL/Proxy e dblink neste documento.

postgresql-hll

Esta extensão introduz um novo tipo de dados, hll, que é uma estrutura de dados HyperLogLog. Para mais informações, consulte a documentação do postgresql-hll.