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:
- Na ferramenta psql, execute o comando CREATE EXTENSION.
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:
postgis
postgis_raster
postgis_sfcgal
postgis_tiger_geocoder
postgis_topology
address_standardizer
address_standardizer_data_us
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 pgRouting
melhora 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 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. |
pgvector |
Uma extensão de código aberto para armazenar e pesquisar incorporações de vetores em bases de dados PostgreSQL. |
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 ( 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.
dblink
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.
Use o dblink para estabelecer ligação com uma palavra-passe
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');
Use o dblink para estabelecer ligação sem uma palavra-passe
Para estabelecer ligação à mesma instância como o mesmo utilizador, pode estabelecer ligação sem uma palavra-passe. Por exemplo:
Defina a seguinte flag da base de dados para ativar as ligações locais sem uma palavra-passe
cloudsql.allow_passwordless_local_connections
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:
- Na ferramenta psql, execute o comando CREATE EXTENSION para pg_proctab.
- Transfira e execute o pg_top.
- 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:
Ligue-se a
testdb
comocloudsqlsuperuser
:psql -U csuper1 -d testdb;
Conceda ao proprietário da base de dados, que é
testuser,
, acesso acsuper1
:GRANT testuser TO csuper1;
Crie a extensão:
CREATE EXTENSION pg_repack;
Execute o comando
pg_repack
numa tabela, comot1
emtestdb
, comocsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
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.