Você pode estender o PostgreSQL agrupando objetos SQL em um pacote e usando-os como uma unidade. Esta página contém informações sobre como configurar as extensões do PostgreSQL compatíveis com o Cloud SQL.
Usar extensões do PostgreSQL
Você pode instalar apenas as extensões compatíveis com o Cloud SQL. Para obter mais informações, consulte Extensões do PostgreSQL compatíveis com o Cloud SQL .
Instalar uma extensão
Antes de usar uma extensão, instale-a:
- Na ferramenta psql, execute o comando CREATE EXTENSION .
Requisito para privilégios de superusuário
No Cloud SQL, extensões só podem ser criadas por usuários que fazem parte da função cloudsqlsuperuser
. Ao criar uma nova instância do PostgreSQL, o usuário postgres
padrão é criado para você (embora seja necessário definir a senha do usuário). O usuário postgres
padrão faz parte da função cloudsqlsuperuser
. Para obter mais informações, consulte Sobre usuários do PostgreSQL .
Conexões entre bancos de dados
As instâncias de destino para conexões devem estar na mesma rede VPC que a instância de conexão.
Para instâncias de cluster, você não pode escolher a opção Exigir certificados de cliente confiáveis noGoogle Cloud console. Além disso, para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Solicitar suporte para uma nova extensão
Você não pode criar suas próprias extensões no Cloud SQL.
Para solicitar suporte para uma extensão, clique em +1 no problema aberto ou crie um novo. Para obter uma lista de problemas abertos do Cloud SQL e informações sobre como criar novos problemas, consulte Pesquisar ou criar problemas e solicitações de recursos, por produto .
Extensões do PostgreSQL suportadas pelo Cloud SQL
Para obter informações sobre como usar uma extensão específica, consulte o link da documentação em uma das tabelas abaixo.
O suporte do Cloud SQL para extensões do PostgreSQL pode ser dividido nestas categorias:
Pós-GIS
A extensão PostGIS é suportada pelo Cloud SQL para PostgreSQL em todas as principais versões.
A tabela a seguir 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 , você pode especificar uma versão de extensão PostGIS usando a 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 obter mais informações, consulte 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
aprimora o processamento geoespacial por meio de roteamento e análise de rede.
Você pode atualizar o PostGIS e suas extensões relacionadas para a versão mais recente manualmente. Para saber mais sobre como atualizar suas extensões do PostGIS, consulte Atualizando o PostGIS .
Extensões de tipo de dados
Extensão | Descrição |
btree_gin | Fornece classes de operadores GIN de exemplo que implementam comportamento equivalente à á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 posteriores usam a versão 1.3. |
btree_gist | Fornece classes de operadores de índice GiST que implementam comportamento equivalente à árvore B. O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12 e 13 usam a versão 1.5. O PostgreSQL 14 usa a versão 1.6. O PostgreSQL 15 e posteriores usam a versão 1.7. |
chkpass | Implementa um tipo de dado chkpass projetado para armazenar senhas criptografadas.O PostgreSQL 9.6 e 10 utilizam a versão 1.0. Não há suporte para outras versões. |
citext | Fornece um tipo de sequência de caracteres citext que não diferencia maiúsculas de minúsculas.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. |
cubo | Implementa um cube de tipo de dados 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 posteriores usam a versão 1.5. |
hstore | Implementa o tipo de dados hstore para armazenar conjuntos de pares chave/valor dentro de um ú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 posteriores usam a versão 1.8. |
ip4r | Fornece tipos de dados para endereços IPv4/v6 e intervalos de endereços, além de suporte a índice. O Cloud SQL para PostgreSQL usa a versão 2.4.2. |
não é | Fornece tipos de dados para alguns padrões internacionais de numeração de produtos. O PostgreSQL 9.6 e 10 usam a versão 1.1. O PostgreSQL 11 e posteriores usam a versão 1.2. |
lo | Suporte para gerenciamento de Objetos Grandes (também chamados de LOs ou BLOBs). O Cloud SQL para PostgreSQL usa a versão 1.1. |
ltree | Implementa um tipo de dado ltree para representar rótulos de dados armazenados em uma estrutura hierárquica semelhante a uma árvore.O PostgreSQL 9.6, 10, 11 e 12 usam a versão 1.1. O PostgreSQL 13, 14, 15 e 16 usam a versão 1.2. O PostgreSQL 17 usa a versão 1.3. |
postgresql-hll | Apresenta um novo tipo de dado, hll , que é uma estrutura de dados HyperLogLog. Veja também postgresql-hll neste documento.O Cloud SQL para PostgreSQL usa a versão 2.18. |
prefixo | Fornece correspondência de prefixo, além de suporte a índice. O Cloud SQL para PostgreSQL usa a versão 1.2.0. |
Extensões de linguagem
Extensão | Descrição |
plpgsql | Uma linguagem procedural carregável para criar funções, procedimentos e gatilhos. Você também pode usar esta linguagem para execução direta de código em blocos DO. O Cloud SQL para PostgreSQL usa a versão 1.0. |
plv8 | Fornece uma linguagem procedural para habilitar JavaScript. O Cloud SQL para PostgreSQL usa a versão 3.2.2, que por sua vez usa o mecanismo JavaScript V8 versão 11.5. |
Extensões diversas
Extensão | Descrição |
amcheck | Fornece funções para verificar a consistência lógica da estrutura das relações, permitindo que o aplicativo pg_amcheck verifique se há corrupção. |
auto_explicação | Permite o registro automático de planos de execução de instruções lentas, para solução de problemas e muito mais. Fornece uma maneira automatizada de executar a funcionalidade do comando EXPLAIN . Consulte também auto_explain neste documento. |
autoinc | Fornece funções para incrementar campos automaticamente. Este gatilho armazena o próximo valor de uma sequência em um campo inteiro. O Cloud SQL para PostgreSQL usa a versão 1.0. |
florescer | Fornece um método para acessar índices com base em filtros bloom. Um filtro bloom é uma estrutura de dados com uso eficiente de espaço que você 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 conexão com bancos de dados PostgreSQL a partir de uma sessão de banco de dados. Consulte também dblink neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
decodificadores | Um decodificador lógico PostgreSQL que fornece dados de saída como buffers de protocolo, adaptado para Debezium. |
dict_int | Um modelo de dicionário complementar para pesquisa de texto completo que controla a indexação de números inteiros. O Cloud SQL para PostgreSQL usa a versão 1.0. |
distância da terra | Fornece duas abordagens para calcular distâncias de círculos máximos na superfície da Terra. O Cloud SQL para PostgreSQL usa a versão 1.1. |
fuzzystrmatch | Fornece diversas funções para determinar semelhanças e distâncias entre strings. O PostgreSQL 9.6, 10, 11, 12, 13, 14 e 15 utiliza a versão 1.1. O PostgreSQL 16 e posteriores utilizam a versão 1.2. |
integração_google_ml | Gera embeddings vetoriais para traduzir prompts de texto em vetores numéricos usando um modelo de linguagem grande (LLM). O PostgreSQL 12 e posteriores utilizam a versão 1.4.2. Não há suporte para outras versões. |
inserir_nome_de_usuário | Fornece funções para armazenar o nome do usuário atual em um campo de texto. Você pode usar isso para rastrear quem modificou uma linha pela última vez em uma tabela de banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.0. |
intagg | Fornece um agregador de 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 inteiros livres de nulos e executar pesquisas indexadas nelas. O PostgreSQL 9.6, 10, 11 e 12 usam a versão 1.2. O PostgreSQL 13 usa a versão 1.3. O PostgreSQL 14 e posteriores usam a versão 1.5. |
data e hora da modificação | Fornece funções para armazenar a hora atual em um campo timestamp . Você pode usar isso para rastrear a última vez que uma linha em uma tabela de banco de dados foi modificada.O Cloud SQL para PostgreSQL usa a versão 1.0. |
oracle_fdw | Fornece um wrapper de dados estrangeiros (fdw) para acessar bancos de dados Oracle de forma fácil e eficiente. O Cloud SQL para PostgreSQL usa a versão 1.2. |
orafce | Fornece funções e operadores que emulam um subconjunto de funções e pacotes de um banco de dados Oracle. Use essas funções para portar aplicativos Oracle para o PostgreSQL. O PostgreSQL 9.6 e 10 usam a versão 3.25. O PostgreSQL 11 e posteriores usam a versão 4.13. |
inspeção de página | Inspeciona o conteúdo das páginas do banco de dados em 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 usam 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 posteriores usam a versão 1.12. |
pgAudit | Coleta dados de auditoria.
Os valores possíveis para definir os arquivos de log de auditoria para todas as versões do pgAudit são Para obter mais informações sobre como usar esta extensão com o Cloud SQL, consulte Auditoria para PostgreSQL usando pgAudit . |
pg_fundo | Permite que você execute comandos arbitrários em um trabalhador em segundo plano. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_bigm | Habilita a busca em texto completo e permite um índice de dois gramas (bigramas) para uma busca mais rápida em texto completo. Consulte também pg_bigm neste documento. |
pg_buffercache | Fornece um meio de examinar o que está acontecendo no cache do buffer compartilhado em tempo real. O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12, 13, 14 e 15 usam 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 agendador de tarefas baseado em cron. Esta extensão permite que a sintaxe cron agende comandos PostgreSQL diretamente do banco 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 PostgreSQL. O Cloud SQL para PostgreSQL usa a versão 1.3. |
pglógico | Fornece replicação lógica para PostgreSQL. Consulte Configurando replicação lógica e decodificação . O Cloud SQL para PostgreSQL usa a versão 2.4.5. |
pgfincore | Um conjunto de funções para gerenciar páginas na memória cache de disco do sistema operacional a partir do PostgreSQL. Veja 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). Veja também pg_freespacemap neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_hint_plan | Permite aprimorar os planos de execução do PostgreSQL usando dicas, que são descrições simples em comentários SQL. Consulte também pg_hint_plan neste documento. |
pgoutput | Este plugin é usado pela replicação lógica para captura de dados alterados. pgoutput é um plugin padrão e, portanto, é compatível com todas as versões do Cloud SQL para PostgreSQL. |
pg_ivm | Permite que você atualize visualizações materializadas nas quais apenas alterações incrementais são computadas e aplicadas nas visualizações, em vez de recalcular o conteúdo do zero. As versões 13 e posteriores do PostgreSQL suportam a versão 1.9. |
pg_partman | Permite criar e gerenciar conjuntos de partições de tabela baseados em tempo e em série. Consulte também pg_partman neste documento. As versões 14 e posteriores do PostgreSQL oferecem suporte à versão 5.2.4, enquanto as versões anteriores à 14 oferecem suporte somente até a versão 4.7.4. |
pg_prewarm | Fornece uma maneira conveniente de carregar dados de relação no cache de buffer do sistema operacional ou no cache de buffer do PostgreSQL. O PostgreSQL 9.6 e 10 usam a versão 1.1. O PostgreSQL 11 e posteriores usam a versão 1.2. |
pg_proctab | Permite usar o pg_top com o Cloud SQL para PostgreSQL e gerar relatórios a partir da tabela de processos do sistema operacional. Consulte também pg_proctab neste documento. |
pg_repack | Permite remover o inchaço de tabelas e índices. Opcionalmente, permite 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. |
pgrowlocks | Fornece informações de bloqueio de linha 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 em nível de tupla. O PostgreSQL 9.6 usa a versão 1.4. Todas as outras versões usam a versão 1.5. |
pg_similaridade | Fornece suporte para consultas de similaridade no PostgreSQL. O Cloud SQL para PostgreSQL usa a versão 1.0. |
pg_squeeze | Remove espaço não utilizado de uma tabela e, opcionalmente, usa um índice para classificar registros ou linhas (tuplas) da tabela. Para mais informações sobre esta extensão, consulte pg_squeeze neste documento. As versões 11 e posteriores do PostgreSQL usam a versão 1.5. |
declarações_pg_stat | Fornece um meio para rastrear estatísticas de execução de todas as instruçõ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 1.7. O PostgreSQL 13 usa a 1.8. O PostgreSQL 14 usa a 1.9. O PostgreSQL 15 e 16 usam a 1.10. O PostgreSQL 17 usa a 1.11. |
pgTAP | Fornece uma estrutura de teste de unidade para 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 similaridade de texto alfanumérico com base na correspondência de trigramas, bem como classes de operadores de índice que oferecem suporte à pesquisa rápida de strings semelhantes. O PostgreSQL 9.6 e 10 usam a versão 1.3. O PostgreSQL 11 e 12 usam a versão 1.4. O PostgreSQL 13 usa a 1.5. O PostgreSQL 14 e posteriores usam a versão 1.6. |
pgtt | Cria e gerencia tabelas temporárias globais no estilo DB2 ou Oracle em um banco de dados PostgreSQL. |
pgvetor | Uma extensão de código aberto para armazenar e pesquisar embeddings de vetores em bancos de dados PostgreSQL. |
pg_visibilidade | Fornece uma maneira de examinar o mapa de visibilidade (VM) e as informações de visibilidade em nível de 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_amostragem | Coleta 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/Procuração | Manipulador de linguagem procedural que permite chamadas de procedimentos remotos entre bancos de dados PostgreSQL, com sharding opcional. Veja 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 dentro de instâncias ou entre instâncias. Consulte também postgres_fdw neste documento. O PostgreSQL 9.6, 10, 11, 12 e 13 usam a versão 1.0. O PostgreSQL 14 e posteriores usam a versão 1.1. |
postgresql_anonymizer | Mascara ou substitui informações de identificação pessoal (PII) ou dados confidenciais de um banco de dados PostgreSQL. Para mais informações, consulte a seçã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. |
kit rd | Uma coleção de softwares de quimioinformática e aprendizado de máquina. Você pode usar esta extensão para comparar, manipular e identificar estruturas moleculares. O Cloud SQL para PostgreSQL usa a versão 4.6.1. |
repintar | Inclui funções para verificar restrições de chave estrangeira, a tabela de referência e a tabela referenciada. Esta extensão também demonstra a Interface de Programação de 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 conectou à instância. O Cloud SQL para PostgreSQL usa a versão 1.2. |
função de tabela | Inclui várias funções que retornam tabelas (múltiplas linhas). O Cloud SQL para PostgreSQL usa a versão 1.0. |
tcn | Fornece uma função de gatilho que notifica os ouvintes sobre alterações no conteúdo das tabelas do banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.0. |
tds_fdw | Fornece um wrapper de dados externo (fdw) para acessar bancos de dados, como Microsoft SQL Server e Sybase, que usam o protocolo Tabular Data Stream (TDS). O Cloud SQL para PostgreSQL usa a versão 2.0.4. |
tabelas temporais | Oferece suporte para tabelas temporais. Uma tabela temporal registra o período em que uma linha é válida da perspectiva do banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.2.2. |
linhas_do_sistema_tsm | Fornece o método de amostragem de tabela 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. |
tempo_do_sistema_tsm | Fornece o método de amostragem de tabela 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. |
sem sotaque | 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 universalmente exclusivos (UUIDs) usando um dos vários algoritmos padrão. O Cloud SQL para PostgreSQL usa a versão 1.1. |
Mais sobre algumas extensões do PostgreSQL
Esta seção descreve mais informações sobre algumas das extensões do PostgreSQL suportadas nas tabelas acima.
auto_explicação
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_auto_explain
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Para visualizar dados de registro e eventos associados aos registros dos planos de execução habilitados por esta extensão, consulte a documentação do Cloud Logging .
Como alternativa, para um usuário que tenha a função cloudsqlsuperuser
(somente), você pode usar o comando load
para carregar esta extensão para uma sessão.
dblink
De dentro de uma sessão de banco de dados, você pode usar esta extensão para se conectar a bancos de dados PostgreSQL e executar consultas.
Atualmente, esta extensão funciona para duas instâncias de IP privado do Cloud SQL na mesma rede VPC ou para bancos de dados cruzados na mesma instância.
Para obter informações adicionais, consulte dblink na documentação do PostgreSQL.
Use o dblink para conectar com uma senha
Para se conectar a bancos de dados ou à mesma instância de outro usuário, você deve especificar uma senha. Para fins de exemplo (mas não para fins de produção), aqui está um trecho de 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);
Como alternativa, para configurar apenas uma conexão, aqui está um trecho de 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 conectar sem senha
Para se conectar à mesma instância que o mesmo usuário, você pode se conectar sem uma senha. Por exemplo:
Defina o seguinte sinalizador de banco de dados para habilitar conexões locais sem uma senha
cloudsql.allow_passwordless_local_connections
Conectar sem especificar um host, o que implica conectar-se à mesma instância. Aqui está 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 se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Veja também postgres_fdw e PL/Proxy neste documento.
inspeção de página
Esta extensão inspeciona o conteúdo das páginas do banco de dados em um nível baixo. Para mais informações, consulte pageinspect na documentação do PostgreSQL.
pg_bigm
Esta extensão permite pesquisa de texto completo e permite um índice de dois gramas (bigramas) para uma pesquisa de texto completo mais rápida.
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_pg_bigm
como on
. Os seguintes sinalizadores também são suportados:
-
pg_bigm.enable_recheck
-
pg_bigm.gin_key_limit
-
pg_bigm.similarity_limit
Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
pg_cron
Para começar a usar o pg_cron em uma instância, defina o sinalizador cloudsql.enable_pg_cron
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Os trabalhos são configurados como trabalhadores em segundo plano, então talvez você precise usar técnicas padrão do PostgreSQL (como o sinalizador max_worker_processes
) para ajustar o número desses trabalhadores em segundo plano.
Para esta extensão, o Cloud SQL oferece suporte ao modo de trabalho em segundo plano, mas não à interface libpq. Portanto, a autenticação de confiança envolvendo diretamente esta extensão não é necessária.
pgfincore
Esta extensão contém funções para gerenciar páginas na memória cache de disco do sistema operacional 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 pg_freespacemap na documentação do PostgreSQL.
pg_hint_plan
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_pg_hint_plan
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Como alternativa, para apenas um usuário com a função cloudsqlsuperuser
, você pode usar o comando load
para carregar esta extensão para uma sessão.
pg_partman
Esta extensão permite que você crie e gerencie conjuntos de partições de tabela baseados em tempo e em série.
No Cloud SQL, esta extensão não inclui o trabalhador em segundo plano para manutenção automática de partições. Em vez disso, você pode usar, por exemplo, o Cloud Scheduler para conduzir a manutenção chamando funções de manutenção em intervalos regulares.
pg_proctab
Aqui estão as etapas para usar a extensão pg_proctab para habilitar o utilitário pg_top :
- Na ferramenta psql, execute o comando CREATE EXTENSION para pg_proctab.
- Baixe e execute pg_top .
- Ao se conectar a uma instância do Cloud SQL para PostgreSQL, adicione a opção
-r
para se conectar a um banco de dados remoto para obter métricas.
As seguintes métricas de toda a instância, que estão incluídas na saída, incluem o uso por outros agentes e serviços de suporte na instância:
- Carga média
- Estados da CPU (% usuário, bom, sistema, ocioso e iowait)
- Memória (usada, livre e em cache)
pg_repack
Esta extensão permite remover o inchaço de tabelas e índices. Opcionalmente, você pode usar esta extensão para executar um CLUSTER online (ordenar tabelas por índice de cluster). Para obter 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 usuário.
Se um usuário fora da função cloudsqlsuperuser
quiser usar uma extensão, você deverá conceder a ele privilégios cloudsqlsuperuser
. Para obter mais informações, consulte "Requisitos para privilégios de superusuário" neste documento. O exemplo a seguir usa o comando GRANT
para adicionar os privilégios necessários.
Exemplo de adição de privilégios
Para os fins de exemplo abaixo, csuper1
é um cloudsqlsuperuser
e testdb
é um banco de dados pertencente a testuser
. Para criar a extensão pg_repack em testdb
, execute inicialmente os seguintes comandos:
Conecte-se ao
testdb
comocloudsqlsuperuser
:psql -U csuper1 -d testdb;
Conceda o proprietário do banco de dados, que é
testuser,
paracsuper1
:GRANT testuser TO csuper1;
Crie a extensão:
CREATE EXTENSION pg_repack;
Execute o comando
pg_repack
em uma tabela, comot1
emtestdb
, comocsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
Após a conclusão do trabalho pg_repack, revogue a concessão que você executou na etapa 2:
REVOKE testuser FROM csuper1;
O comando pg_repack
pode falhar com o seguinte erro:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
Se esse erro ocorrer, tente definir os keepalives TCP para um valor menor e, em seguida, execute o comando pg_repack
. Para obter mais informações, consulte Tempo limite de conexão (do Compute Engine) .
pg_squeeze
Esta extensão remove o espaço não utilizado de uma tabela e, opcionalmente, usa um índice para classificar as tuplas da tabela. Para começar a usar a extensão em uma instância, defina o sinalizador cloudsql.enable_pg_squeeze
como on
.
Esta extensão também oferece suporte à decodificação lógica, gravando informações adicionais no log de gravação antecipada (WAL). Para habilitar essa funcionalidade para a extensão, defina o parâmetro de configuração wal_level
como logical
ou superior, definindo o sinalizador cloudsql.logical_decoding
como on
.
A extensão exige que um valor seja definido para o sinalizador max_replication_slots
. Se você não especificou um valor para este sinalizador, defina-o como 1
Caso contrário, adicione 1 ao valor definido para o sinalizador.
Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
pgtt
Para começar a usar esta extensão em uma instância, defina o sinalizador pgtt.enabled
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurando sinalizadores de banco de dados .
pg_visibilidade
Esta extensão fornece uma maneira de examinar o mapa de visibilidade (VM) e as informações de visibilidade em nível de página de uma tabela. Para mais informações, consulte pg_visibility na documentação do PostgreSQL.
PL/Procuração
Esta extensão é um manipulador de linguagem procedural que permite chamadas de procedimentos remotos entre bancos de dados PostgreSQL, com fragmentação opcional.
Para mais informações, consulte a documentação do PL/Proxy .
As instâncias de destino para conexões devem estar na mesma rede VPC que a instância de conexão. Além disso, você não pode escolher, noGoogle Cloud console, o botão Permitir somente conexões SSL para instâncias de cluster.
Para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Veja também postgres_fdw e dblink neste documento.
postgresql_anonymizer
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_anon
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurando sinalizadores de banco de dados .
postgres_fdw
Esta extensão permite que tabelas de outros bancos de dados PostgreSQL ("estrangeiros") sejam expostas como tabelas "estrangeiras" no banco de dados atual. Essas tabelas ficam então disponíveis para uso, 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 privado do Cloud SQL na mesma rede VPC ou para bancos de dados cruzados na mesma instância.
Para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Além disso, para uma instância onde dados estrangeiros são armazenados, você pode escolher a opção Permitir apenas conexões SSL no Google Cloud console. Você não pode escolher a opção "Exigir certificados de cliente confiáveis" . Somente o cloudsqlsuperuser
pode ser o proprietário de um wrapper de dados externo postgres_fdw
.
Veja também PL/Proxy e dblink neste documento.
postgresql-hll
Esta extensão introduz um novo tipo de dado, hll
, que é uma estrutura de dados HyperLogLog. Para mais informações, consulte a documentação do postgresql-hll .
Você pode estender o PostgreSQL agrupando objetos SQL em um pacote e usando-os como uma unidade. Esta página contém informações sobre como configurar as extensões do PostgreSQL compatíveis com o Cloud SQL.
Usar extensões do PostgreSQL
Você pode instalar apenas as extensões compatíveis com o Cloud SQL. Para obter mais informações, consulte Extensões do PostgreSQL compatíveis com o Cloud SQL .
Instalar uma extensão
Antes de usar uma extensão, instale-a:
- Na ferramenta psql, execute o comando CREATE EXTENSION .
Requisito para privilégios de superusuário
No Cloud SQL, extensões só podem ser criadas por usuários que fazem parte da função cloudsqlsuperuser
. Ao criar uma nova instância do PostgreSQL, o usuário postgres
padrão é criado para você (embora seja necessário definir a senha do usuário). O usuário postgres
padrão faz parte da função cloudsqlsuperuser
. Para obter mais informações, consulte Sobre usuários do PostgreSQL .
Conexões entre bancos de dados
As instâncias de destino para conexões devem estar na mesma rede VPC que a instância de conexão.
Para instâncias de cluster, você não pode escolher a opção Exigir certificados de cliente confiáveis noGoogle Cloud console. Além disso, para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Solicitar suporte para uma nova extensão
Você não pode criar suas próprias extensões no Cloud SQL.
Para solicitar suporte para uma extensão, clique em +1 no problema aberto ou crie um novo. Para obter uma lista de problemas abertos do Cloud SQL e informações sobre como criar novos problemas, consulte Pesquisar ou criar problemas e solicitações de recursos, por produto .
Extensões do PostgreSQL suportadas pelo Cloud SQL
Para obter informações sobre como usar uma extensão específica, consulte o link da documentação em uma das tabelas abaixo.
O suporte do Cloud SQL para extensões do PostgreSQL pode ser dividido nestas categorias:
Pós-GIS
A extensão PostGIS é suportada pelo Cloud SQL para PostgreSQL em todas as principais versões.
A tabela a seguir 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 , você pode especificar uma versão de extensão PostGIS usando a 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 obter mais informações, consulte 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
aprimora o processamento geoespacial por meio de roteamento e análise de rede.
Você pode atualizar o PostGIS e suas extensões relacionadas para a versão mais recente manualmente. Para saber mais sobre como atualizar suas extensões do PostGIS, consulte Atualizando o PostGIS .
Extensões de tipo de dados
Extensão | Descrição |
btree_gin | Fornece classes de operadores GIN de exemplo que implementam comportamento equivalente à á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 posteriores usam a versão 1.3. |
btree_gist | Fornece classes de operadores de índice GiST que implementam comportamento equivalente à árvore B. O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12 e 13 usam a versão 1.5. O PostgreSQL 14 usa a versão 1.6. O PostgreSQL 15 e posteriores usam a versão 1.7. |
chkpass | Implementa um tipo de dado chkpass projetado para armazenar senhas criptografadas.O PostgreSQL 9.6 e 10 utilizam a versão 1.0. Não há suporte para outras versões. |
citext | Fornece um tipo de sequência de caracteres citext que não diferencia maiúsculas de minúsculas.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. |
cubo | Implementa um cube de tipo de dados 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 posteriores usam a versão 1.5. |
hstore | Implementa o tipo de dados hstore para armazenar conjuntos de pares chave/valor dentro de um ú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 posteriores usam a versão 1.8. |
ip4r | Fornece tipos de dados para endereços IPv4/v6 e intervalos de endereços, além de suporte a índice. O Cloud SQL para PostgreSQL usa a versão 2.4.2. |
não é | Fornece tipos de dados para alguns padrões internacionais de numeração de produtos. O PostgreSQL 9.6 e 10 usam a versão 1.1. O PostgreSQL 11 e posteriores usam a versão 1.2. |
lo | Suporte para gerenciamento de Objetos Grandes (também chamados de LOs ou BLOBs). O Cloud SQL para PostgreSQL usa a versão 1.1. |
ltree | Implementa um tipo de dado ltree para representar rótulos de dados armazenados em uma estrutura hierárquica semelhante a uma árvore.O PostgreSQL 9.6, 10, 11 e 12 usam a versão 1.1. O PostgreSQL 13, 14, 15 e 16 usam a versão 1.2. O PostgreSQL 17 usa a versão 1.3. |
postgresql-hll | Apresenta um novo tipo de dado, hll , que é uma estrutura de dados HyperLogLog. Veja também postgresql-hll neste documento.O Cloud SQL para PostgreSQL usa a versão 2.18. |
prefixo | Fornece correspondência de prefixo, além de suporte a índice. O Cloud SQL para PostgreSQL usa a versão 1.2.0. |
Extensões de linguagem
Extensão | Descrição |
plpgsql | Uma linguagem procedural carregável para criar funções, procedimentos e gatilhos. Você também pode usar esta linguagem para execução direta de código em blocos DO. O Cloud SQL para PostgreSQL usa a versão 1.0. |
plv8 | Fornece uma linguagem procedural para habilitar JavaScript. O Cloud SQL para PostgreSQL usa a versão 3.2.2, que por sua vez usa o mecanismo JavaScript V8 versão 11.5. |
Extensões diversas
Extensão | Descrição |
amcheck | Fornece funções para verificar a consistência lógica da estrutura das relações, permitindo que o aplicativo pg_amcheck verifique se há corrupção. |
auto_explicação | Permite o registro automático de planos de execução de instruções lentas, para solução de problemas e muito mais. Fornece uma maneira automatizada de executar a funcionalidade do comando EXPLAIN . Consulte também auto_explain neste documento. |
autoinc | Fornece funções para incrementar campos automaticamente. Este gatilho armazena o próximo valor de uma sequência em um campo inteiro. O Cloud SQL para PostgreSQL usa a versão 1.0. |
florescer | Fornece um método para acessar índices com base em filtros bloom. Um filtro bloom é uma estrutura de dados com uso eficiente de espaço que você 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 conexão com bancos de dados PostgreSQL a partir de uma sessão de banco de dados. Consulte também dblink neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
decodificadores | Um decodificador lógico PostgreSQL que fornece dados de saída como buffers de protocolo, adaptado para Debezium. |
dict_int | Um modelo de dicionário complementar para pesquisa de texto completo que controla a indexação de números inteiros. O Cloud SQL para PostgreSQL usa a versão 1.0. |
distância da terra | Fornece duas abordagens para calcular distâncias de círculos máximos na superfície da Terra. O Cloud SQL para PostgreSQL usa a versão 1.1. |
fuzzystrmatch | Fornece diversas funções para determinar semelhanças e distâncias entre strings. O PostgreSQL 9.6, 10, 11, 12, 13, 14 e 15 utiliza a versão 1.1. O PostgreSQL 16 e posteriores utilizam a versão 1.2. |
integração_google_ml | Gera embeddings vetoriais para traduzir prompts de texto em vetores numéricos usando um modelo de linguagem grande (LLM). O PostgreSQL 12 e posteriores utilizam a versão 1.4.2. Não há suporte para outras versões. |
inserir_nome_de_usuário | Fornece funções para armazenar o nome do usuário atual em um campo de texto. Você pode usar isso para rastrear quem modificou uma linha pela última vez em uma tabela de banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.0. |
intagg | Fornece um agregador de 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 inteiros livres de nulos e executar pesquisas indexadas nelas. O PostgreSQL 9.6, 10, 11 e 12 usam a versão 1.2. O PostgreSQL 13 usa a versão 1.3. O PostgreSQL 14 e posteriores usam a versão 1.5. |
data e hora da modificação | Fornece funções para armazenar a hora atual em um campo timestamp . Você pode usar isso para rastrear a última vez que uma linha em uma tabela de banco de dados foi modificada.O Cloud SQL para PostgreSQL usa a versão 1.0. |
oracle_fdw | Fornece um wrapper de dados estrangeiros (fdw) para acessar bancos de dados Oracle de forma fácil e eficiente. O Cloud SQL para PostgreSQL usa a versão 1.2. |
orafce | Fornece funções e operadores que emulam um subconjunto de funções e pacotes de um banco de dados Oracle. Use essas funções para portar aplicativos Oracle para o PostgreSQL. O PostgreSQL 9.6 e 10 usam a versão 3.25. O PostgreSQL 11 e posteriores usam a versão 4.13. |
inspeção de página | Inspeciona o conteúdo das páginas do banco de dados em 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 usam 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 posteriores usam a versão 1.12. |
pgAudit | Coleta dados de auditoria.
Os valores possíveis para definir os arquivos de log de auditoria para todas as versões do pgAudit são Para obter mais informações sobre como usar esta extensão com o Cloud SQL, consulte Auditoria para PostgreSQL usando pgAudit . |
pg_fundo | Permite que você execute comandos arbitrários em um trabalhador em segundo plano. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_bigm | Habilita a busca em texto completo e permite um índice de dois gramas (bigramas) para uma busca mais rápida em texto completo. Consulte também pg_bigm neste documento. |
pg_buffercache | Fornece um meio de examinar o que está acontecendo no cache do buffer compartilhado em tempo real. O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12, 13, 14 e 15 usam 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 agendador de tarefas baseado em cron. Esta extensão permite que a sintaxe cron agende comandos PostgreSQL diretamente do banco 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 PostgreSQL. O Cloud SQL para PostgreSQL usa a versão 1.3. |
pglógico | Fornece replicação lógica para PostgreSQL. Consulte Configurando replicação lógica e decodificação . O Cloud SQL para PostgreSQL usa a versão 2.4.5. |
pgfincore | Um conjunto de funções para gerenciar páginas na memória cache de disco do sistema operacional a partir do PostgreSQL. Veja 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). Veja também pg_freespacemap neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_hint_plan | Permite aprimorar os planos de execução do PostgreSQL usando dicas, que são descrições simples em comentários SQL. Consulte também pg_hint_plan neste documento. |
pgoutput | Este plugin é usado pela replicação lógica para captura de dados alterados. pgoutput é um plugin padrão e, portanto, é compatível com todas as versões do Cloud SQL para PostgreSQL. |
pg_ivm | Permite que você atualize visualizações materializadas nas quais apenas alterações incrementais são computadas e aplicadas nas visualizações, em vez de recalcular o conteúdo do zero. As versões 13 e posteriores do PostgreSQL suportam a versão 1.9. |
pg_partman | Permite criar e gerenciar conjuntos de partições de tabela baseados em tempo e em série. Consulte também pg_partman neste documento. As versões 14 e posteriores do PostgreSQL oferecem suporte à versão 5.2.4, enquanto as versões anteriores à 14 oferecem suporte somente até a versão 4.7.4. |
pg_prewarm | Fornece uma maneira conveniente de carregar dados de relação no cache de buffer do sistema operacional ou no cache de buffer do PostgreSQL. O PostgreSQL 9.6 e 10 usam a versão 1.1. O PostgreSQL 11 e posteriores usam a versão 1.2. |
pg_proctab | Permite usar o pg_top com o Cloud SQL para PostgreSQL e gerar relatórios a partir da tabela de processos do sistema operacional. Consulte também pg_proctab neste documento. |
pg_repack | Permite remover o inchaço de tabelas e índices. Opcionalmente, permite 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. |
pgrowlocks | Fornece informações de bloqueio de linha 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 em nível de tupla. O PostgreSQL 9.6 usa a versão 1.4. Todas as outras versões usam a versão 1.5. |
pg_similaridade | Fornece suporte para consultas de similaridade no PostgreSQL. O Cloud SQL para PostgreSQL usa a versão 1.0. |
pg_squeeze | Remove espaço não utilizado de uma tabela e, opcionalmente, usa um índice para classificar registros ou linhas (tuplas) da tabela. Para mais informações sobre esta extensão, consulte pg_squeeze neste documento. As versões 11 e posteriores do PostgreSQL usam a versão 1.5. |
declarações_pg_stat | Fornece um meio para rastrear estatísticas de execução de todas as instruçõ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 1.7. O PostgreSQL 13 usa a 1.8. O PostgreSQL 14 usa a 1.9. O PostgreSQL 15 e 16 usam a 1.10. O PostgreSQL 17 usa a 1.11. |
pgTAP | Fornece uma estrutura de teste de unidade para 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 similaridade de texto alfanumérico com base na correspondência de trigramas, bem como classes de operadores de índice que oferecem suporte à pesquisa rápida de strings semelhantes. O PostgreSQL 9.6 e 10 usam a versão 1.3. O PostgreSQL 11 e 12 usam a versão 1.4. O PostgreSQL 13 usa a 1.5. O PostgreSQL 14 e posteriores usam a versão 1.6. |
pgtt | Cria e gerencia tabelas temporárias globais no estilo DB2 ou Oracle em um banco de dados PostgreSQL. |
pgvetor | Uma extensão de código aberto para armazenar e pesquisar embeddings de vetores em bancos de dados PostgreSQL. |
pg_visibilidade | Fornece uma maneira de examinar o mapa de visibilidade (VM) e as informações de visibilidade em nível de 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_amostragem | Coleta 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/Procuração | Manipulador de linguagem procedural que permite chamadas de procedimentos remotos entre bancos de dados PostgreSQL, com sharding opcional. Veja 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 dentro de instâncias ou entre instâncias. Consulte também postgres_fdw neste documento. O PostgreSQL 9.6, 10, 11, 12 e 13 usam a versão 1.0. O PostgreSQL 14 e posteriores usam a versão 1.1. |
postgresql_anonymizer | Mascara ou substitui informações de identificação pessoal (PII) ou dados confidenciais de um banco de dados PostgreSQL. Para mais informações, consulte a seçã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. |
kit rd | Uma coleção de softwares de quimioinformática e aprendizado de máquina. Você pode usar esta extensão para comparar, manipular e identificar estruturas moleculares. O Cloud SQL para PostgreSQL usa a versão 4.6.1. |
repintar | Inclui funções para verificar restrições de chave estrangeira, a tabela de referência e a tabela referenciada. Esta extensão também demonstra a Interface de Programação de 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 conectou à instância. O Cloud SQL para PostgreSQL usa a versão 1.2. |
função de tabela | Inclui várias funções que retornam tabelas (múltiplas linhas). O Cloud SQL para PostgreSQL usa a versão 1.0. |
tcn | Fornece uma função de gatilho que notifica os ouvintes sobre alterações no conteúdo das tabelas do banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.0. |
tds_fdw | Fornece um wrapper de dados externo (fdw) para acessar bancos de dados, como Microsoft SQL Server e Sybase, que usam o protocolo Tabular Data Stream (TDS). O Cloud SQL para PostgreSQL usa a versão 2.0.4. |
tabelas temporais | Oferece suporte para tabelas temporais. Uma tabela temporal registra o período em que uma linha é válida da perspectiva do banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.2.2. |
linhas_do_sistema_tsm | Fornece o método de amostragem de tabela 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. |
tempo_do_sistema_tsm | Fornece o método de amostragem de tabela 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. |
sem sotaque | 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 universalmente exclusivos (UUIDs) usando um dos vários algoritmos padrão. O Cloud SQL para PostgreSQL usa a versão 1.1. |
Mais sobre algumas extensões do PostgreSQL
Esta seção descreve mais informações sobre algumas das extensões do PostgreSQL suportadas nas tabelas acima.
auto_explicação
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_auto_explain
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Para visualizar dados de registro e eventos associados aos registros dos planos de execução habilitados por esta extensão, consulte a documentação do Cloud Logging .
Como alternativa, para um usuário que tenha a função cloudsqlsuperuser
(somente), você pode usar o comando load
para carregar esta extensão para uma sessão.
dblink
De dentro de uma sessão de banco de dados, você pode usar esta extensão para se conectar a bancos de dados PostgreSQL e executar consultas.
Atualmente, esta extensão funciona para duas instâncias de IP privado do Cloud SQL na mesma rede VPC ou para bancos de dados cruzados na mesma instância.
Para obter informações adicionais, consulte dblink na documentação do PostgreSQL.
Use o dblink para conectar com uma senha
Para se conectar a bancos de dados ou à mesma instância de outro usuário, você deve especificar uma senha. Para fins de exemplo (mas não para fins de produção), aqui está um trecho de 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);
Como alternativa, para configurar apenas uma conexão, aqui está um trecho de 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 conectar sem senha
Para se conectar à mesma instância que o mesmo usuário, você pode se conectar sem uma senha. Por exemplo:
Defina o seguinte sinalizador de banco de dados para habilitar conexões locais sem uma senha
cloudsql.allow_passwordless_local_connections
Conectar sem especificar um host, o que implica conectar-se à mesma instância. Aqui está 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 se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Veja também postgres_fdw e PL/Proxy neste documento.
inspeção de página
Esta extensão inspeciona o conteúdo das páginas do banco de dados em um nível baixo. Para mais informações, consulte pageinspect na documentação do PostgreSQL.
pg_bigm
Esta extensão permite pesquisa de texto completo e permite um índice de dois gramas (bigramas) para uma pesquisa de texto completo mais rápida.
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_pg_bigm
como on
. Os seguintes sinalizadores também são suportados:
-
pg_bigm.enable_recheck
-
pg_bigm.gin_key_limit
-
pg_bigm.similarity_limit
Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
pg_cron
Para começar a usar o pg_cron em uma instância, defina o sinalizador cloudsql.enable_pg_cron
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Os trabalhos são configurados como trabalhadores em segundo plano, então talvez você precise usar técnicas padrão do PostgreSQL (como o sinalizador max_worker_processes
) para ajustar o número desses trabalhadores em segundo plano.
Para esta extensão, o Cloud SQL oferece suporte ao modo de trabalho em segundo plano, mas não à interface libpq. Portanto, a autenticação de confiança envolvendo diretamente esta extensão não é necessária.
pgfincore
Esta extensão contém funções para gerenciar páginas na memória cache de disco do sistema operacional 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 pg_freespacemap na documentação do PostgreSQL.
pg_hint_plan
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_pg_hint_plan
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Como alternativa, para apenas um usuário com a função cloudsqlsuperuser
, você pode usar o comando load
para carregar esta extensão para uma sessão.
pg_partman
Esta extensão permite que você crie e gerencie conjuntos de partições de tabela baseados em tempo e em série.
No Cloud SQL, esta extensão não inclui o trabalhador em segundo plano para manutenção automática de partições. Em vez disso, você pode usar, por exemplo, o Cloud Scheduler para conduzir a manutenção chamando funções de manutenção em intervalos regulares.
pg_proctab
Aqui estão as etapas para usar a extensão pg_proctab para habilitar o utilitário pg_top :
- Na ferramenta psql, execute o comando CREATE EXTENSION para pg_proctab.
- Baixe e execute pg_top .
- Ao se conectar a uma instância do Cloud SQL para PostgreSQL, adicione a opção
-r
para se conectar a um banco de dados remoto para obter métricas.
As seguintes métricas de toda a instância, que estão incluídas na saída, incluem o uso por outros agentes e serviços de suporte na instância:
- Carga média
- Estados da CPU (% usuário, bom, sistema, ocioso e iowait)
- Memória (usada, livre e em cache)
pg_repack
Esta extensão permite remover o inchaço de tabelas e índices. Opcionalmente, você pode usar esta extensão para executar um CLUSTER online (ordenar tabelas por índice de cluster). Para obter 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 usuário.
Se um usuário fora da função cloudsqlsuperuser
quiser usar uma extensão, você deverá conceder a ele privilégios cloudsqlsuperuser
. Para obter mais informações, consulte "Requisitos para privilégios de superusuário" neste documento. O exemplo a seguir usa o comando GRANT
para adicionar os privilégios necessários.
Exemplo de adição de privilégios
Para os fins de exemplo abaixo, csuper1
é um cloudsqlsuperuser
e testdb
é um banco de dados pertencente a testuser
. Para criar a extensão pg_repack em testdb
, execute inicialmente os seguintes comandos:
Conecte-se ao
testdb
comocloudsqlsuperuser
:psql -U csuper1 -d testdb;
Conceda o proprietário do banco de dados, que é
testuser,
paracsuper1
:GRANT testuser TO csuper1;
Crie a extensão:
CREATE EXTENSION pg_repack;
Execute o comando
pg_repack
em uma tabela, comot1
emtestdb
, comocsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
Após a conclusão do trabalho pg_repack, revogue a concessão que você executou na etapa 2:
REVOKE testuser FROM csuper1;
O comando pg_repack
pode falhar com o seguinte erro:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
Se esse erro ocorrer, tente definir os keepalives TCP para um valor menor e, em seguida, execute o comando pg_repack
. Para obter mais informações, consulte Tempo limite de conexão (do Compute Engine) .
pg_squeeze
Esta extensão remove o espaço não utilizado de uma tabela e, opcionalmente, usa um índice para classificar as tuplas da tabela. Para começar a usar a extensão em uma instância, defina o sinalizador cloudsql.enable_pg_squeeze
como on
.
Esta extensão também oferece suporte à decodificação lógica, gravando informações adicionais no log de gravação antecipada (WAL). Para habilitar essa funcionalidade para a extensão, defina o parâmetro de configuração wal_level
como logical
ou superior, definindo o sinalizador cloudsql.logical_decoding
como on
.
A extensão exige que um valor seja definido para o sinalizador max_replication_slots
. Se você não especificou um valor para este sinalizador, defina-o como 1
Caso contrário, adicione 1 ao valor definido para o sinalizador.
Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
pgtt
Para começar a usar esta extensão em uma instância, defina o sinalizador pgtt.enabled
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurando sinalizadores de banco de dados .
pg_visibilidade
Esta extensão fornece uma maneira de examinar o mapa de visibilidade (VM) e as informações de visibilidade em nível de página de uma tabela. Para mais informações, consulte pg_visibility na documentação do PostgreSQL.
PL/Procuração
Esta extensão é um manipulador de linguagem procedural que permite chamadas de procedimentos remotos entre bancos de dados PostgreSQL, com fragmentação opcional.
Para mais informações, consulte a documentação do PL/Proxy .
As instâncias de destino para conexões devem estar na mesma rede VPC que a instância de conexão. Além disso, você não pode escolher, noGoogle Cloud console, o botão Permitir somente conexões SSL para instâncias de cluster.
Para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Veja também postgres_fdw e dblink neste documento.
postgresql_anonymizer
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_anon
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurando sinalizadores de banco de dados .
postgres_fdw
Esta extensão permite que tabelas de outros bancos de dados PostgreSQL ("estrangeiros") sejam expostas como tabelas "estrangeiras" no banco de dados atual. Essas tabelas ficam então disponíveis para uso, 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 privado do Cloud SQL na mesma rede VPC ou para bancos de dados cruzados na mesma instância.
Para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Além disso, para uma instância onde dados estrangeiros são armazenados, você pode escolher a opção Permitir apenas conexões SSL no Google Cloud console. Você não pode escolher a opção "Exigir certificados de cliente confiáveis" . Somente o cloudsqlsuperuser
pode ser o proprietário de um wrapper de dados externo postgres_fdw
.
Veja também PL/Proxy e dblink neste documento.
postgresql-hll
Esta extensão introduz um novo tipo de dado, hll
, que é uma estrutura de dados HyperLogLog. Para mais informações, consulte a documentação do postgresql-hll .
Você pode estender o PostgreSQL agrupando objetos SQL em um pacote e usando-os como uma unidade. Esta página contém informações sobre como configurar as extensões do PostgreSQL compatíveis com o Cloud SQL.
Usar extensões do PostgreSQL
Você pode instalar apenas as extensões compatíveis com o Cloud SQL. Para obter mais informações, consulte Extensões do PostgreSQL compatíveis com o Cloud SQL .
Instalar uma extensão
Antes de usar uma extensão, instale-a:
- Na ferramenta psql, execute o comando CREATE EXTENSION .
Requisito para privilégios de superusuário
No Cloud SQL, extensões só podem ser criadas por usuários que fazem parte da função cloudsqlsuperuser
. Ao criar uma nova instância do PostgreSQL, o usuário postgres
padrão é criado para você (embora seja necessário definir a senha do usuário). O usuário postgres
padrão faz parte da função cloudsqlsuperuser
. Para obter mais informações, consulte Sobre usuários do PostgreSQL .
Conexões entre bancos de dados
As instâncias de destino para conexões devem estar na mesma rede VPC que a instância de conexão.
Para instâncias de cluster, você não pode escolher a opção Exigir certificados de cliente confiáveis noGoogle Cloud console. Além disso, para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Solicitar suporte para uma nova extensão
Você não pode criar suas próprias extensões no Cloud SQL.
Para solicitar suporte para uma extensão, clique em +1 no problema aberto ou crie um novo. Para obter uma lista de problemas abertos do Cloud SQL e informações sobre como criar novos problemas, consulte Pesquisar ou criar problemas e solicitações de recursos, por produto .
Extensões do PostgreSQL suportadas pelo Cloud SQL
Para obter informações sobre como usar uma extensão específica, consulte o link da documentação em uma das tabelas abaixo.
O suporte do Cloud SQL para extensões do PostgreSQL pode ser dividido nestas categorias:
Pós-GIS
A extensão PostGIS é suportada pelo Cloud SQL para PostgreSQL em todas as principais versões.
A tabela a seguir 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 , você pode especificar uma versão de extensão PostGIS usando a 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 obter mais informações, consulte 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
aprimora o processamento geoespacial por meio de roteamento e análise de rede.
Você pode atualizar o PostGIS e suas extensões relacionadas para a versão mais recente manualmente. Para saber mais sobre como atualizar suas extensões do PostGIS, consulte Atualizando o PostGIS .
Extensões de tipo de dados
Extensão | Descrição |
btree_gin | Fornece classes de operadores GIN de exemplo que implementam comportamento equivalente à á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 posteriores usam a versão 1.3. |
btree_gist | Fornece classes de operadores de índice GiST que implementam comportamento equivalente à árvore B. O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12 e 13 usam a versão 1.5. O PostgreSQL 14 usa a versão 1.6. O PostgreSQL 15 e posteriores usam a versão 1.7. |
chkpass | Implementa um tipo de dado chkpass projetado para armazenar senhas criptografadas.O PostgreSQL 9.6 e 10 utilizam a versão 1.0. Não há suporte para outras versões. |
citext | Fornece um tipo de sequência de caracteres citext que não diferencia maiúsculas de minúsculas.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. |
cubo | Implementa um cube de tipo de dados 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 posteriores usam a versão 1.5. |
hstore | Implementa o tipo de dados hstore para armazenar conjuntos de pares chave/valor dentro de um ú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 posteriores usam a versão 1.8. |
ip4r | Fornece tipos de dados para endereços IPv4/v6 e intervalos de endereços, além de suporte a índice. O Cloud SQL para PostgreSQL usa a versão 2.4.2. |
não é | Fornece tipos de dados para alguns padrões internacionais de numeração de produtos. O PostgreSQL 9.6 e 10 usam a versão 1.1. O PostgreSQL 11 e posteriores usam a versão 1.2. |
lo | Suporte para gerenciamento de Objetos Grandes (também chamados de LOs ou BLOBs). O Cloud SQL para PostgreSQL usa a versão 1.1. |
ltree | Implementa um tipo de dado ltree para representar rótulos de dados armazenados em uma estrutura hierárquica semelhante a uma árvore.O PostgreSQL 9.6, 10, 11 e 12 usam a versão 1.1. O PostgreSQL 13, 14, 15 e 16 usam a versão 1.2. O PostgreSQL 17 usa a versão 1.3. |
postgresql-hll | Apresenta um novo tipo de dado, hll , que é uma estrutura de dados HyperLogLog. Veja também postgresql-hll neste documento.O Cloud SQL para PostgreSQL usa a versão 2.18. |
prefixo | Fornece correspondência de prefixo, além de suporte a índice. O Cloud SQL para PostgreSQL usa a versão 1.2.0. |
Extensões de linguagem
Extensão | Descrição |
plpgsql | Uma linguagem procedural carregável para criar funções, procedimentos e gatilhos. Você também pode usar esta linguagem para execução direta de código em blocos DO. O Cloud SQL para PostgreSQL usa a versão 1.0. |
plv8 | Fornece uma linguagem procedural para habilitar JavaScript. O Cloud SQL para PostgreSQL usa a versão 3.2.2, que por sua vez usa o mecanismo JavaScript V8 versão 11.5. |
Extensões diversas
Extensão | Descrição |
amcheck | Fornece funções para verificar a consistência lógica da estrutura das relações, permitindo que o aplicativo pg_amcheck verifique se há corrupção. |
auto_explicação | Permite o registro automático de planos de execução de instruções lentas, para solução de problemas e muito mais. Fornece uma maneira automatizada de executar a funcionalidade do comando EXPLAIN . Consulte também auto_explain neste documento. |
autoinc | Fornece funções para incrementar campos automaticamente. Este gatilho armazena o próximo valor de uma sequência em um campo inteiro. O Cloud SQL para PostgreSQL usa a versão 1.0. |
florescer | Fornece um método para acessar índices com base em filtros bloom. Um filtro bloom é uma estrutura de dados com uso eficiente de espaço que você 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 conexão com bancos de dados PostgreSQL a partir de uma sessão de banco de dados. Consulte também dblink neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
decodificadores | Um decodificador lógico PostgreSQL que fornece dados de saída como buffers de protocolo, adaptado para Debezium. |
dict_int | Um modelo de dicionário complementar para pesquisa de texto completo que controla a indexação de números inteiros. O Cloud SQL para PostgreSQL usa a versão 1.0. |
distância da terra | Fornece duas abordagens para calcular distâncias de círculos máximos na superfície da Terra. O Cloud SQL para PostgreSQL usa a versão 1.1. |
fuzzystrmatch | Fornece diversas funções para determinar semelhanças e distâncias entre strings. O PostgreSQL 9.6, 10, 11, 12, 13, 14 e 15 utiliza a versão 1.1. O PostgreSQL 16 e posteriores utilizam a versão 1.2. |
integração_google_ml | Gera embeddings vetoriais para traduzir prompts de texto em vetores numéricos usando um modelo de linguagem grande (LLM). O PostgreSQL 12 e posteriores utilizam a versão 1.4.2. Não há suporte para outras versões. |
inserir_nome_de_usuário | Fornece funções para armazenar o nome do usuário atual em um campo de texto. Você pode usar isso para rastrear quem modificou uma linha pela última vez em uma tabela de banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.0. |
intagg | Fornece um agregador de 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 inteiros livres de nulos e executar pesquisas indexadas nelas. O PostgreSQL 9.6, 10, 11 e 12 usam a versão 1.2. O PostgreSQL 13 usa a versão 1.3. O PostgreSQL 14 e posteriores usam a versão 1.5. |
data e hora da modificação | Fornece funções para armazenar a hora atual em um campo timestamp . Você pode usar isso para rastrear a última vez que uma linha em uma tabela de banco de dados foi modificada.O Cloud SQL para PostgreSQL usa a versão 1.0. |
oracle_fdw | Fornece um wrapper de dados estrangeiros (fdw) para acessar bancos de dados Oracle de forma fácil e eficiente. O Cloud SQL para PostgreSQL usa a versão 1.2. |
orafce | Fornece funções e operadores que emulam um subconjunto de funções e pacotes de um banco de dados Oracle. Use essas funções para portar aplicativos Oracle para o PostgreSQL. O PostgreSQL 9.6 e 10 usam a versão 3.25. O PostgreSQL 11 e posteriores usam a versão 4.13. |
inspeção de página | Inspeciona o conteúdo das páginas do banco de dados em 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 usam 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 posteriores usam a versão 1.12. |
pgAudit | Coleta dados de auditoria.
Os valores possíveis para definir os arquivos de log de auditoria para todas as versões do pgAudit são Para obter mais informações sobre como usar esta extensão com o Cloud SQL, consulte Auditoria para PostgreSQL usando pgAudit . |
pg_fundo | Permite que você execute comandos arbitrários em um trabalhador em segundo plano. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_bigm | Habilita a busca em texto completo e permite um índice de dois gramas (bigramas) para uma busca mais rápida em texto completo. Consulte também pg_bigm neste documento. |
pg_buffercache | Fornece um meio de examinar o que está acontecendo no cache do buffer compartilhado em tempo real. O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12, 13, 14 e 15 usam 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 agendador de tarefas baseado em cron. Esta extensão permite que a sintaxe cron agende comandos PostgreSQL diretamente do banco 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 PostgreSQL. O Cloud SQL para PostgreSQL usa a versão 1.3. |
pglógico | Fornece replicação lógica para PostgreSQL. Consulte Configurando replicação lógica e decodificação . O Cloud SQL para PostgreSQL usa a versão 2.4.5. |
pgfincore | Um conjunto de funções para gerenciar páginas na memória cache de disco do sistema operacional a partir do PostgreSQL. Veja 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). Veja também pg_freespacemap neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_hint_plan | Permite aprimorar os planos de execução do PostgreSQL usando dicas, que são descrições simples em comentários SQL. Consulte também pg_hint_plan neste documento. |
pgoutput | Este plugin é usado pela replicação lógica para captura de dados alterados. pgoutput é um plugin padrão e, portanto, é compatível com todas as versões do Cloud SQL para PostgreSQL. |
pg_ivm | Permite que você atualize visualizações materializadas nas quais apenas alterações incrementais são computadas e aplicadas nas visualizações, em vez de recalcular o conteúdo do zero. As versões 13 e posteriores do PostgreSQL suportam a versão 1.9. |
pg_partman | Permite criar e gerenciar conjuntos de partições de tabela baseados em tempo e em série. Consulte também pg_partman neste documento. As versões 14 e posteriores do PostgreSQL oferecem suporte à versão 5.2.4, enquanto as versões anteriores à 14 oferecem suporte somente até a versão 4.7.4. |
pg_prewarm | Fornece uma maneira conveniente de carregar dados de relação no cache de buffer do sistema operacional ou no cache de buffer do PostgreSQL. O PostgreSQL 9.6 e 10 usam a versão 1.1. O PostgreSQL 11 e posteriores usam a versão 1.2. |
pg_proctab | Permite usar o pg_top com o Cloud SQL para PostgreSQL e gerar relatórios a partir da tabela de processos do sistema operacional. Consulte também pg_proctab neste documento. |
pg_repack | Permite remover o inchaço de tabelas e índices. Opcionalmente, permite 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. |
pgrowlocks | Fornece informações de bloqueio de linha 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 em nível de tupla. O PostgreSQL 9.6 usa a versão 1.4. Todas as outras versões usam a versão 1.5. |
pg_similaridade | Fornece suporte para consultas de similaridade no PostgreSQL. O Cloud SQL para PostgreSQL usa a versão 1.0. |
pg_squeeze | Remove espaço não utilizado de uma tabela e, opcionalmente, usa um índice para classificar registros ou linhas (tuplas) da tabela. Para mais informações sobre esta extensão, consulte pg_squeeze neste documento. As versões 11 e posteriores do PostgreSQL usam a versão 1.5. |
declarações_pg_stat | Fornece um meio para rastrear estatísticas de execução de todas as instruçõ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 1.7. O PostgreSQL 13 usa a 1.8. O PostgreSQL 14 usa a 1.9. O PostgreSQL 15 e 16 usam a 1.10. O PostgreSQL 17 usa a 1.11. |
pgTAP | Fornece uma estrutura de teste de unidade para 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 similaridade de texto alfanumérico com base na correspondência de trigramas, bem como classes de operadores de índice que oferecem suporte à pesquisa rápida de strings semelhantes. O PostgreSQL 9.6 e 10 usam a versão 1.3. O PostgreSQL 11 e 12 usam a versão 1.4. O PostgreSQL 13 usa a 1.5. O PostgreSQL 14 e posteriores usam a versão 1.6. |
pgtt | Cria e gerencia tabelas temporárias globais no estilo DB2 ou Oracle em um banco de dados PostgreSQL. |
pgvetor | Uma extensão de código aberto para armazenar e pesquisar embeddings de vetores em bancos de dados PostgreSQL. |
pg_visibilidade | Fornece uma maneira de examinar o mapa de visibilidade (VM) e as informações de visibilidade em nível de 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_amostragem | Coleta 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/Procuração | Manipulador de linguagem procedural que permite chamadas de procedimentos remotos entre bancos de dados PostgreSQL, com sharding opcional. Veja 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 dentro de instâncias ou entre instâncias. Consulte também postgres_fdw neste documento. O PostgreSQL 9.6, 10, 11, 12 e 13 usam a versão 1.0. O PostgreSQL 14 e posteriores usam a versão 1.1. |
postgresql_anonymizer | Mascara ou substitui informações de identificação pessoal (PII) ou dados confidenciais de um banco de dados PostgreSQL. Para mais informações, consulte a seçã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. |
kit rd | Uma coleção de softwares de quimioinformática e aprendizado de máquina. Você pode usar esta extensão para comparar, manipular e identificar estruturas moleculares. O Cloud SQL para PostgreSQL usa a versão 4.6.1. |
repintar | Inclui funções para verificar restrições de chave estrangeira, a tabela de referência e a tabela referenciada. Esta extensão também demonstra a Interface de Programação de 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 conectou à instância. O Cloud SQL para PostgreSQL usa a versão 1.2. |
função de tabela | Inclui várias funções que retornam tabelas (múltiplas linhas). O Cloud SQL para PostgreSQL usa a versão 1.0. |
tcn | Fornece uma função de gatilho que notifica os ouvintes sobre alterações no conteúdo das tabelas do banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.0. |
tds_fdw | Fornece um wrapper de dados externo (fdw) para acessar bancos de dados, como Microsoft SQL Server e Sybase, que usam o protocolo Tabular Data Stream (TDS). O Cloud SQL para PostgreSQL usa a versão 2.0.4. |
tabelas temporais | Oferece suporte para tabelas temporais. Uma tabela temporal registra o período em que uma linha é válida da perspectiva do banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.2.2. |
linhas_do_sistema_tsm | Fornece o método de amostragem de tabela 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. |
tempo_do_sistema_tsm | Fornece o método de amostragem de tabela 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. |
sem sotaque | 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 universalmente exclusivos (UUIDs) usando um dos vários algoritmos padrão. O Cloud SQL para PostgreSQL usa a versão 1.1. |
Mais sobre algumas extensões do PostgreSQL
Esta seção descreve mais informações sobre algumas das extensões do PostgreSQL suportadas nas tabelas acima.
auto_explicação
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_auto_explain
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Para visualizar dados de registro e eventos associados aos registros dos planos de execução habilitados por esta extensão, consulte a documentação do Cloud Logging .
Como alternativa, para um usuário que tenha a função cloudsqlsuperuser
(somente), você pode usar o comando load
para carregar esta extensão para uma sessão.
dblink
De dentro de uma sessão de banco de dados, você pode usar esta extensão para se conectar a bancos de dados PostgreSQL e executar consultas.
Atualmente, esta extensão funciona para duas instâncias de IP privado do Cloud SQL na mesma rede VPC ou para bancos de dados cruzados na mesma instância.
Para obter informações adicionais, consulte dblink na documentação do PostgreSQL.
Use o dblink para conectar com uma senha
Para se conectar a bancos de dados ou à mesma instância de outro usuário, você deve especificar uma senha. Para fins de exemplo (mas não para fins de produção), aqui está um trecho de 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);
Como alternativa, para configurar apenas uma conexão, aqui está um trecho de 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 conectar sem senha
Para se conectar à mesma instância que o mesmo usuário, você pode se conectar sem uma senha. Por exemplo:
Defina o seguinte sinalizador de banco de dados para habilitar conexões locais sem uma senha
cloudsql.allow_passwordless_local_connections
Conectar sem especificar um host, o que implica conectar-se à mesma instância. Aqui está 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 se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Veja também postgres_fdw e PL/Proxy neste documento.
inspeção de página
Esta extensão inspeciona o conteúdo das páginas do banco de dados em um nível baixo. Para mais informações, consulte pageinspect na documentação do PostgreSQL.
pg_bigm
Esta extensão permite pesquisa de texto completo e permite um índice de dois gramas (bigramas) para uma pesquisa de texto completo mais rápida.
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_pg_bigm
como on
. Os seguintes sinalizadores também são suportados:
-
pg_bigm.enable_recheck
-
pg_bigm.gin_key_limit
-
pg_bigm.similarity_limit
Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
pg_cron
Para começar a usar o pg_cron em uma instância, defina o sinalizador cloudsql.enable_pg_cron
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Os trabalhos são configurados como trabalhadores em segundo plano, então talvez você precise usar técnicas padrão do PostgreSQL (como o sinalizador max_worker_processes
) para ajustar o número desses trabalhadores em segundo plano.
Para esta extensão, o Cloud SQL oferece suporte ao modo de trabalho em segundo plano, mas não à interface libpq. Portanto, a autenticação de confiança envolvendo diretamente esta extensão não é necessária.
pgfincore
Esta extensão contém funções para gerenciar páginas na memória cache de disco do sistema operacional 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 pg_freespacemap na documentação do PostgreSQL.
pg_hint_plan
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_pg_hint_plan
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Como alternativa, para apenas um usuário com a função cloudsqlsuperuser
, você pode usar o comando load
para carregar esta extensão para uma sessão.
pg_partman
Esta extensão permite que você crie e gerencie conjuntos de partições de tabela baseados em tempo e em série.
No Cloud SQL, esta extensão não inclui o trabalhador em segundo plano para manutenção automática de partições. Em vez disso, você pode usar, por exemplo, o Cloud Scheduler para conduzir a manutenção chamando funções de manutenção em intervalos regulares.
pg_proctab
Aqui estão as etapas para usar a extensão pg_proctab para habilitar o utilitário pg_top :
- Na ferramenta psql, execute o comando CREATE EXTENSION para pg_proctab.
- Baixe e execute pg_top .
- Ao se conectar a uma instância do Cloud SQL para PostgreSQL, adicione a opção
-r
para se conectar a um banco de dados remoto para obter métricas.
As seguintes métricas de toda a instância, que estão incluídas na saída, incluem o uso por outros agentes e serviços de suporte na instância:
- Carga média
- Estados da CPU (% usuário, bom, sistema, ocioso e iowait)
- Memória (usada, livre e em cache)
pg_repack
Esta extensão permite remover o inchaço de tabelas e índices. Opcionalmente, você pode usar esta extensão para executar um CLUSTER online (ordenar tabelas por índice de cluster). Para obter 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 usuário.
Se um usuário fora da função cloudsqlsuperuser
quiser usar uma extensão, você deverá conceder a ele privilégios cloudsqlsuperuser
. Para obter mais informações, consulte "Requisitos para privilégios de superusuário" neste documento. O exemplo a seguir usa o comando GRANT
para adicionar os privilégios necessários.
Exemplo de adição de privilégios
Para os fins de exemplo abaixo, csuper1
é um cloudsqlsuperuser
e testdb
é um banco de dados pertencente a testuser
. Para criar a extensão pg_repack em testdb
, execute inicialmente os seguintes comandos:
Conecte-se ao
testdb
comocloudsqlsuperuser
:psql -U csuper1 -d testdb;
Conceda o proprietário do banco de dados, que é
testuser,
paracsuper1
:GRANT testuser TO csuper1;
Crie a extensão:
CREATE EXTENSION pg_repack;
Execute o comando
pg_repack
em uma tabela, comot1
emtestdb
, comocsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
Após a conclusão do trabalho pg_repack, revogue a concessão que você executou na etapa 2:
REVOKE testuser FROM csuper1;
O comando pg_repack
pode falhar com o seguinte erro:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
Se esse erro ocorrer, tente definir os keepalives TCP para um valor menor e, em seguida, execute o comando pg_repack
. Para obter mais informações, consulte Tempo limite de conexão (do Compute Engine) .
pg_squeeze
Esta extensão remove o espaço não utilizado de uma tabela e, opcionalmente, usa um índice para classificar as tuplas da tabela. Para começar a usar a extensão em uma instância, defina o sinalizador cloudsql.enable_pg_squeeze
como on
.
Esta extensão também oferece suporte à decodificação lógica, gravando informações adicionais no log de gravação antecipada (WAL). Para habilitar essa funcionalidade para a extensão, defina o parâmetro de configuração wal_level
como logical
ou superior, definindo o sinalizador cloudsql.logical_decoding
como on
.
A extensão exige que um valor seja definido para o sinalizador max_replication_slots
. Se você não especificou um valor para este sinalizador, defina-o como 1
Caso contrário, adicione 1 ao valor definido para o sinalizador.
Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
pgtt
Para começar a usar esta extensão em uma instância, defina o sinalizador pgtt.enabled
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurando sinalizadores de banco de dados .
pg_visibilidade
Esta extensão fornece uma maneira de examinar o mapa de visibilidade (VM) e as informações de visibilidade em nível de página de uma tabela. Para mais informações, consulte pg_visibility na documentação do PostgreSQL.
PL/Procuração
Esta extensão é um manipulador de linguagem procedural que permite chamadas de procedimentos remotos entre bancos de dados PostgreSQL, com fragmentação opcional.
Para mais informações, consulte a documentação do PL/Proxy .
As instâncias de destino para conexões devem estar na mesma rede VPC que a instância de conexão. Além disso, você não pode escolher, noGoogle Cloud console, o botão Permitir somente conexões SSL para instâncias de cluster.
Para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Veja também postgres_fdw e dblink neste documento.
postgresql_anonymizer
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_anon
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurando sinalizadores de banco de dados .
postgres_fdw
Esta extensão permite que tabelas de outros bancos de dados PostgreSQL ("estrangeiros") sejam expostas como tabelas "estrangeiras" no banco de dados atual. Essas tabelas ficam então disponíveis para uso, 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 privado do Cloud SQL na mesma rede VPC ou para bancos de dados cruzados na mesma instância.
Para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Além disso, para uma instância onde dados estrangeiros são armazenados, você pode escolher a opção Permitir apenas conexões SSL no Google Cloud console. Você não pode escolher a opção "Exigir certificados de cliente confiáveis" . Somente o cloudsqlsuperuser
pode ser o proprietário de um wrapper de dados externo postgres_fdw
.
Veja também PL/Proxy e dblink neste documento.
postgresql-hll
Esta extensão introduz um novo tipo de dado, hll
, que é uma estrutura de dados HyperLogLog. Para mais informações, consulte a documentação do postgresql-hll .
Você pode estender o PostgreSQL agrupando objetos SQL em um pacote e usando-os como uma unidade. Esta página contém informações sobre como configurar as extensões do PostgreSQL compatíveis com o Cloud SQL.
Usar extensões do PostgreSQL
Você pode instalar apenas as extensões compatíveis com o Cloud SQL. Para obter mais informações, consulte Extensões do PostgreSQL compatíveis com o Cloud SQL .
Instalar uma extensão
Antes de usar uma extensão, instale-a:
- Na ferramenta psql, execute o comando CREATE EXTENSION .
Requisito para privilégios de superusuário
No Cloud SQL, extensões só podem ser criadas por usuários que fazem parte da função cloudsqlsuperuser
. Ao criar uma nova instância do PostgreSQL, o usuário postgres
padrão é criado para você (embora seja necessário definir a senha do usuário). O usuário postgres
padrão faz parte da função cloudsqlsuperuser
. Para obter mais informações, consulte Sobre usuários do PostgreSQL .
Conexões entre bancos de dados
As instâncias de destino para conexões devem estar na mesma rede VPC que a instância de conexão.
Para instâncias de cluster, você não pode escolher a opção Exigir certificados de cliente confiáveis noGoogle Cloud console. Além disso, para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Solicitar suporte para uma nova extensão
Você não pode criar suas próprias extensões no Cloud SQL.
Para solicitar suporte para uma extensão, clique em +1 no problema aberto ou crie um novo. Para obter uma lista de problemas abertos do Cloud SQL e informações sobre como criar novos problemas, consulte Pesquisar ou criar problemas e solicitações de recursos, por produto .
Extensões do PostgreSQL suportadas pelo Cloud SQL
Para obter informações sobre como usar uma extensão específica, consulte o link da documentação em uma das tabelas abaixo.
O suporte do Cloud SQL para extensões do PostgreSQL pode ser dividido nestas categorias:
Pós-GIS
A extensão PostGIS é suportada pelo Cloud SQL para PostgreSQL em todas as principais versões.
A tabela a seguir 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 , você pode especificar uma versão de extensão PostGIS usando a 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 obter mais informações, consulte 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
aprimora o processamento geoespacial por meio de roteamento e análise de rede.
Você pode atualizar o PostGIS e suas extensões relacionadas para a versão mais recente manualmente. Para saber mais sobre como atualizar suas extensões do PostGIS, consulte Atualizando o PostGIS .
Extensões de tipo de dados
Extensão | Descrição |
btree_gin | Fornece classes de operadores GIN de exemplo que implementam comportamento equivalente à á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 posteriores usam a versão 1.3. |
btree_gist | Fornece classes de operadores de índice GiST que implementam comportamento equivalente à árvore B. O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12 e 13 usam a versão 1.5. O PostgreSQL 14 usa a versão 1.6. O PostgreSQL 15 e posteriores usam a versão 1.7. |
chkpass | Implementa um tipo de dado chkpass projetado para armazenar senhas criptografadas.O PostgreSQL 9.6 e 10 utilizam a versão 1.0. Não há suporte para outras versões. |
citext | Fornece um tipo de sequência de caracteres citext que não diferencia maiúsculas de minúsculas.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. |
cubo | Implementa um cube de tipo de dados 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 posteriores usam a versão 1.5. |
hstore | Implementa o tipo de dados hstore para armazenar conjuntos de pares chave/valor dentro de um ú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 posteriores usam a versão 1.8. |
ip4r | Fornece tipos de dados para endereços IPv4/v6 e intervalos de endereços, além de suporte a índice. O Cloud SQL para PostgreSQL usa a versão 2.4.2. |
não é | Fornece tipos de dados para alguns padrões internacionais de numeração de produtos. O PostgreSQL 9.6 e 10 usam a versão 1.1. O PostgreSQL 11 e posteriores usam a versão 1.2. |
lo | Suporte para gerenciamento de Objetos Grandes (também chamados de LOs ou BLOBs). O Cloud SQL para PostgreSQL usa a versão 1.1. |
ltree | Implementa um tipo de dado ltree para representar rótulos de dados armazenados em uma estrutura hierárquica semelhante a uma árvore.O PostgreSQL 9.6, 10, 11 e 12 usam a versão 1.1. O PostgreSQL 13, 14, 15 e 16 usam a versão 1.2. O PostgreSQL 17 usa a versão 1.3. |
postgresql-hll | Apresenta um novo tipo de dado, hll , que é uma estrutura de dados HyperLogLog. Veja também postgresql-hll neste documento.O Cloud SQL para PostgreSQL usa a versão 2.18. |
prefixo | Fornece correspondência de prefixo, além de suporte a índice. O Cloud SQL para PostgreSQL usa a versão 1.2.0. |
Extensões de linguagem
Extensão | Descrição |
plpgsql | Uma linguagem procedural carregável para criar funções, procedimentos e gatilhos. Você também pode usar esta linguagem para execução direta de código em blocos DO. O Cloud SQL para PostgreSQL usa a versão 1.0. |
plv8 | Fornece uma linguagem procedural para habilitar JavaScript. O Cloud SQL para PostgreSQL usa a versão 3.2.2, que por sua vez usa o mecanismo JavaScript V8 versão 11.5. |
Extensões diversas
Extensão | Descrição |
amcheck | Fornece funções para verificar a consistência lógica da estrutura das relações, permitindo que o aplicativo pg_amcheck verifique se há corrupção. |
auto_explicação | Permite o registro automático de planos de execução de instruções lentas, para solução de problemas e muito mais. Fornece uma maneira automatizada de executar a funcionalidade do comando EXPLAIN . Consulte também auto_explain neste documento. |
autoinc | Fornece funções para incrementar campos automaticamente. Este gatilho armazena o próximo valor de uma sequência em um campo inteiro. O Cloud SQL para PostgreSQL usa a versão 1.0. |
florescer | Fornece um método para acessar índices com base em filtros bloom. Um filtro bloom é uma estrutura de dados com uso eficiente de espaço que você 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 conexão com bancos de dados PostgreSQL a partir de uma sessão de banco de dados. Consulte também dblink neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
decodificadores | Um decodificador lógico PostgreSQL que fornece dados de saída como buffers de protocolo, adaptado para Debezium. |
dict_int | Um modelo de dicionário complementar para pesquisa de texto completo que controla a indexação de números inteiros. O Cloud SQL para PostgreSQL usa a versão 1.0. |
distância da terra | Fornece duas abordagens para calcular distâncias de círculos máximos na superfície da Terra. O Cloud SQL para PostgreSQL usa a versão 1.1. |
fuzzystrmatch | Fornece diversas funções para determinar semelhanças e distâncias entre strings. O PostgreSQL 9.6, 10, 11, 12, 13, 14 e 15 utiliza a versão 1.1. O PostgreSQL 16 e posteriores utilizam a versão 1.2. |
integração_google_ml | Gera embeddings vetoriais para traduzir prompts de texto em vetores numéricos usando um modelo de linguagem grande (LLM). O PostgreSQL 12 e posteriores utilizam a versão 1.4.2. Não há suporte para outras versões. |
inserir_nome_de_usuário | Fornece funções para armazenar o nome do usuário atual em um campo de texto. Você pode usar isso para rastrear quem modificou uma linha pela última vez em uma tabela de banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.0. |
intagg | Fornece um agregador de 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 inteiros livres de nulos e executar pesquisas indexadas nelas. O PostgreSQL 9.6, 10, 11 e 12 usam a versão 1.2. O PostgreSQL 13 usa a versão 1.3. O PostgreSQL 14 e posteriores usam a versão 1.5. |
data e hora da modificação | Fornece funções para armazenar a hora atual em um campo timestamp . Você pode usar isso para rastrear a última vez que uma linha em uma tabela de banco de dados foi modificada.O Cloud SQL para PostgreSQL usa a versão 1.0. |
oracle_fdw | Fornece um wrapper de dados estrangeiros (fdw) para acessar bancos de dados Oracle de forma fácil e eficiente. O Cloud SQL para PostgreSQL usa a versão 1.2. |
orafce | Fornece funções e operadores que emulam um subconjunto de funções e pacotes de um banco de dados Oracle. Use essas funções para portar aplicativos Oracle para o PostgreSQL. O PostgreSQL 9.6 e 10 usam a versão 3.25. O PostgreSQL 11 e posteriores usam a versão 4.13. |
inspeção de página | Inspeciona o conteúdo das páginas do banco de dados em 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 usam 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 posteriores usam a versão 1.12. |
pgAudit | Coleta dados de auditoria.
Os valores possíveis para definir os arquivos de log de auditoria para todas as versões do pgAudit são Para obter mais informações sobre como usar esta extensão com o Cloud SQL, consulte Auditoria para PostgreSQL usando pgAudit . |
pg_fundo | Permite que você execute comandos arbitrários em um trabalhador em segundo plano. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_bigm | Habilita a busca em texto completo e permite um índice de dois gramas (bigramas) para uma busca mais rápida em texto completo. Consulte também pg_bigm neste documento. |
pg_buffercache | Fornece um meio de examinar o que está acontecendo no cache do buffer compartilhado em tempo real. O PostgreSQL 9.6 usa a versão 1.2. O PostgreSQL 10, 11, 12, 13, 14 e 15 usam 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 agendador de tarefas baseado em cron. Esta extensão permite que a sintaxe cron agende comandos PostgreSQL diretamente do banco 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 PostgreSQL. O Cloud SQL para PostgreSQL usa a versão 1.3. |
pglógico | Fornece replicação lógica para PostgreSQL. Consulte Configurando replicação lógica e decodificação . O Cloud SQL para PostgreSQL usa a versão 2.4.5. |
pgfincore | Um conjunto de funções para gerenciar páginas na memória cache de disco do sistema operacional a partir do PostgreSQL. Veja 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). Veja também pg_freespacemap neste documento. O Cloud SQL para PostgreSQL usa a versão 1.2. |
pg_hint_plan | Permite aprimorar os planos de execução do PostgreSQL usando dicas, que são descrições simples em comentários SQL. Consulte também pg_hint_plan neste documento. |
pgoutput | Este plugin é usado pela replicação lógica para captura de dados alterados. pgoutput é um plugin padrão e, portanto, é compatível com todas as versões do Cloud SQL para PostgreSQL. |
pg_ivm | Permite que você atualize visualizações materializadas nas quais apenas alterações incrementais são computadas e aplicadas nas visualizações, em vez de recalcular o conteúdo do zero. As versões 13 e posteriores do PostgreSQL suportam a versão 1.9. |
pg_partman | Permite criar e gerenciar conjuntos de partições de tabela baseados em tempo e em série. Consulte também pg_partman neste documento. As versões 14 e posteriores do PostgreSQL oferecem suporte à versão 5.2.4, enquanto as versões anteriores à 14 oferecem suporte somente até a versão 4.7.4. |
pg_prewarm | Fornece uma maneira conveniente de carregar dados de relação no cache de buffer do sistema operacional ou no cache de buffer do PostgreSQL. O PostgreSQL 9.6 e 10 usam a versão 1.1. O PostgreSQL 11 e posteriores usam a versão 1.2. |
pg_proctab | Permite usar o pg_top com o Cloud SQL para PostgreSQL e gerar relatórios a partir da tabela de processos do sistema operacional. Consulte também pg_proctab neste documento. |
pg_repack | Permite remover o inchaço de tabelas e índices. Opcionalmente, permite 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. |
pgrowlocks | Fornece informações de bloqueio de linha 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 em nível de tupla. O PostgreSQL 9.6 usa a versão 1.4. Todas as outras versões usam a versão 1.5. |
pg_similaridade | Fornece suporte para consultas de similaridade no PostgreSQL. O Cloud SQL para PostgreSQL usa a versão 1.0. |
pg_squeeze | Remove espaço não utilizado de uma tabela e, opcionalmente, usa um índice para classificar registros ou linhas (tuplas) da tabela. Para mais informações sobre esta extensão, consulte pg_squeeze neste documento. As versões 11 e posteriores do PostgreSQL usam a versão 1.5. |
declarações_pg_stat | Fornece um meio para rastrear estatísticas de execução de todas as instruçõ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 1.7. O PostgreSQL 13 usa a 1.8. O PostgreSQL 14 usa a 1.9. O PostgreSQL 15 e 16 usam a 1.10. O PostgreSQL 17 usa a 1.11. |
pgTAP | Fornece uma estrutura de teste de unidade para 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 similaridade de texto alfanumérico com base na correspondência de trigramas, bem como classes de operadores de índice que oferecem suporte à pesquisa rápida de strings semelhantes. O PostgreSQL 9.6 e 10 usam a versão 1.3. O PostgreSQL 11 e 12 usam a versão 1.4. O PostgreSQL 13 usa a 1.5. O PostgreSQL 14 e posteriores usam a versão 1.6. |
pgtt | Cria e gerencia tabelas temporárias globais no estilo DB2 ou Oracle em um banco de dados PostgreSQL. |
pgvetor | Uma extensão de código aberto para armazenar e pesquisar embeddings de vetores em bancos de dados PostgreSQL. |
pg_visibilidade | Fornece uma maneira de examinar o mapa de visibilidade (VM) e as informações de visibilidade em nível de 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_amostragem | Coleta 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/Procuração | Manipulador de linguagem procedural que permite chamadas de procedimentos remotos entre bancos de dados PostgreSQL, com sharding opcional. Veja 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 dentro de instâncias ou entre instâncias. Consulte também postgres_fdw neste documento. O PostgreSQL 9.6, 10, 11, 12 e 13 usam a versão 1.0. O PostgreSQL 14 e posteriores usam a versão 1.1. |
postgresql_anonymizer | Mascara ou substitui informações de identificação pessoal (PII) ou dados confidenciais de um banco de dados PostgreSQL. Para mais informações, consulte a seçã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. |
kit rd | Uma coleção de softwares de quimioinformática e aprendizado de máquina. Você pode usar esta extensão para comparar, manipular e identificar estruturas moleculares. O Cloud SQL para PostgreSQL usa a versão 4.6.1. |
repintar | Inclui funções para verificar restrições de chave estrangeira, a tabela de referência e a tabela referenciada. Esta extensão também demonstra a Interface de Programação de 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 conectou à instância. O Cloud SQL para PostgreSQL usa a versão 1.2. |
função de tabela | Inclui várias funções que retornam tabelas (múltiplas linhas). O Cloud SQL para PostgreSQL usa a versão 1.0. |
tcn | Fornece uma função de gatilho que notifica os ouvintes sobre alterações no conteúdo das tabelas do banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.0. |
tds_fdw | Fornece um wrapper de dados externo (fdw) para acessar bancos de dados, como Microsoft SQL Server e Sybase, que usam o protocolo Tabular Data Stream (TDS). O Cloud SQL para PostgreSQL usa a versão 2.0.4. |
tabelas temporais | Oferece suporte para tabelas temporais. Uma tabela temporal registra o período em que uma linha é válida da perspectiva do banco de dados. O Cloud SQL para PostgreSQL usa a versão 1.2.2. |
linhas_do_sistema_tsm | Fornece o método de amostragem de tabela 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. |
tempo_do_sistema_tsm | Fornece o método de amostragem de tabela 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. |
sem sotaque | 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 universalmente exclusivos (UUIDs) usando um dos vários algoritmos padrão. O Cloud SQL para PostgreSQL usa a versão 1.1. |
Mais sobre algumas extensões do PostgreSQL
Esta seção descreve mais informações sobre algumas das extensões do PostgreSQL suportadas nas tabelas acima.
auto_explicação
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_auto_explain
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Para visualizar dados de registro e eventos associados aos registros dos planos de execução habilitados por esta extensão, consulte a documentação do Cloud Logging .
Como alternativa, para um usuário que tenha a função cloudsqlsuperuser
(somente), você pode usar o comando load
para carregar esta extensão para uma sessão.
dblink
De dentro de uma sessão de banco de dados, você pode usar esta extensão para se conectar a bancos de dados PostgreSQL e executar consultas.
Atualmente, esta extensão funciona para duas instâncias de IP privado do Cloud SQL na mesma rede VPC ou para bancos de dados cruzados na mesma instância.
Para obter informações adicionais, consulte dblink na documentação do PostgreSQL.
Use o dblink para conectar com uma senha
Para se conectar a bancos de dados ou à mesma instância de outro usuário, você deve especificar uma senha. Para fins de exemplo (mas não para fins de produção), aqui está um trecho de 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);
Como alternativa, para configurar apenas uma conexão, aqui está um trecho de 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 conectar sem senha
Para se conectar à mesma instância que o mesmo usuário, você pode se conectar sem uma senha. Por exemplo:
Defina o seguinte sinalizador de banco de dados para habilitar conexões locais sem uma senha
cloudsql.allow_passwordless_local_connections
Conectar sem especificar um host, o que implica conectar-se à mesma instância. Aqui está 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 se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Veja também postgres_fdw e PL/Proxy neste documento.
inspeção de página
Esta extensão inspeciona o conteúdo das páginas do banco de dados em um nível baixo. Para mais informações, consulte pageinspect na documentação do PostgreSQL.
pg_bigm
Esta extensão permite pesquisa de texto completo e permite um índice de dois gramas (bigramas) para uma pesquisa de texto completo mais rápida.
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_pg_bigm
como on
. Os seguintes sinalizadores também são suportados:
-
pg_bigm.enable_recheck
-
pg_bigm.gin_key_limit
-
pg_bigm.similarity_limit
Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
pg_cron
Para começar a usar o pg_cron em uma instância, defina o sinalizador cloudsql.enable_pg_cron
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Os trabalhos são configurados como trabalhadores em segundo plano, então talvez você precise usar técnicas padrão do PostgreSQL (como o sinalizador max_worker_processes
) para ajustar o número desses trabalhadores em segundo plano.
Para esta extensão, o Cloud SQL oferece suporte ao modo de trabalho em segundo plano, mas não à interface libpq. Portanto, a autenticação de confiança envolvendo diretamente esta extensão não é necessária.
pgfincore
Esta extensão contém funções para gerenciar páginas na memória cache de disco do sistema operacional 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 pg_freespacemap na documentação do PostgreSQL.
pg_hint_plan
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_pg_hint_plan
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
Como alternativa, para apenas um usuário com a função cloudsqlsuperuser
, você pode usar o comando load
para carregar esta extensão para uma sessão.
pg_partman
Esta extensão permite que você crie e gerencie conjuntos de partições de tabela baseados em tempo e em série.
No Cloud SQL, esta extensão não inclui o trabalhador em segundo plano para manutenção automática de partições. Em vez disso, você pode usar, por exemplo, o Cloud Scheduler para conduzir a manutenção chamando funções de manutenção em intervalos regulares.
pg_proctab
Aqui estão as etapas para usar a extensão pg_proctab para habilitar o utilitário pg_top :
- Na ferramenta psql, execute o comando CREATE EXTENSION para pg_proctab.
- Baixe e execute pg_top .
- Ao se conectar a uma instância do Cloud SQL para PostgreSQL, adicione a opção
-r
para se conectar a um banco de dados remoto para obter métricas.
As seguintes métricas de toda a instância, que estão incluídas na saída, incluem o uso por outros agentes e serviços de suporte na instância:
- Carga média
- Estados da CPU (% usuário, bom, sistema, ocioso e iowait)
- Memória (usada, livre e em cache)
pg_repack
Esta extensão permite remover o inchaço de tabelas e índices. Opcionalmente, você pode usar esta extensão para executar um CLUSTER online (ordenar tabelas por índice de cluster). Para obter 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 usuário.
Se um usuário fora da função cloudsqlsuperuser
quiser usar uma extensão, você deverá conceder a ele privilégios cloudsqlsuperuser
. Para obter mais informações, consulte "Requisitos para privilégios de superusuário" neste documento. O exemplo a seguir usa o comando GRANT
para adicionar os privilégios necessários.
Exemplo de adição de privilégios
Para os fins de exemplo abaixo, csuper1
é um cloudsqlsuperuser
e testdb
é um banco de dados pertencente a testuser
. Para criar a extensão pg_repack em testdb
, execute inicialmente os seguintes comandos:
Conecte-se ao
testdb
comocloudsqlsuperuser
:psql -U csuper1 -d testdb;
Conceda o proprietário do banco de dados, que é
testuser,
paracsuper1
:GRANT testuser TO csuper1;
Crie a extensão:
CREATE EXTENSION pg_repack;
Execute o comando
pg_repack
em uma tabela, comot1
emtestdb
, comocsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
Após a conclusão do trabalho pg_repack, revogue a concessão que você executou na etapa 2:
REVOKE testuser FROM csuper1;
O comando pg_repack
pode falhar com o seguinte erro:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
Se esse erro ocorrer, tente definir os keepalives TCP para um valor menor e, em seguida, execute o comando pg_repack
. Para obter mais informações, consulte Tempo limite de conexão (do Compute Engine) .
pg_squeeze
Esta extensão remove o espaço não utilizado de uma tabela e, opcionalmente, usa um índice para classificar as tuplas da tabela. Para começar a usar a extensão em uma instância, defina o sinalizador cloudsql.enable_pg_squeeze
como on
.
Esta extensão também oferece suporte à decodificação lógica, gravando informações adicionais no log de gravação antecipada (WAL). Para habilitar essa funcionalidade para a extensão, defina o parâmetro de configuração wal_level
como logical
ou superior, definindo o sinalizador cloudsql.logical_decoding
como on
.
A extensão exige que um valor seja definido para o sinalizador max_replication_slots
. Se você não especificou um valor para este sinalizador, defina-o como 1
Caso contrário, adicione 1 ao valor definido para o sinalizador.
Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurar sinalizadores de banco de dados .
pgtt
Para começar a usar esta extensão em uma instância, defina o sinalizador pgtt.enabled
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurando sinalizadores de banco de dados .
pg_visibilidade
Esta extensão fornece uma maneira de examinar o mapa de visibilidade (VM) e as informações de visibilidade em nível de página de uma tabela. Para mais informações, consulte pg_visibility na documentação do PostgreSQL.
PL/Procuração
Esta extensão é um manipulador de linguagem procedural que permite chamadas de procedimentos remotos entre bancos de dados PostgreSQL, com fragmentação opcional.
Para mais informações, consulte a documentação do PL/Proxy .
As instâncias de destino para conexões devem estar na mesma rede VPC que a instância de conexão. Além disso, você não pode escolher, noGoogle Cloud console, o botão Permitir somente conexões SSL para instâncias de cluster.
Para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Veja também postgres_fdw e dblink neste documento.
postgresql_anonymizer
Para começar a usar esta extensão em uma instância, defina o sinalizador cloudsql.enable_anon
como on
. Para obter informações sobre como definir sinalizadores e revisar os sinalizadores suportados por esta extensão, consulte Configurando sinalizadores de banco de dados .
postgres_fdw
Esta extensão permite que tabelas de outros bancos de dados PostgreSQL ("estrangeiros") sejam expostas como tabelas "estrangeiras" no banco de dados atual. Essas tabelas ficam então disponíveis para uso, 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 privado do Cloud SQL na mesma rede VPC ou para bancos de dados cruzados na mesma instância.
Para se conectar a bancos de dados dentro da mesma instância, você não pode definir o host como localhost ou 127.0.0.1
. Em vez disso, você deve usar o endereço IP mostrado para sua instância no Google Cloud console.
Além disso, para uma instância onde dados estrangeiros são armazenados, você pode escolher a opção Permitir apenas conexões SSL no Google Cloud console. Você não pode escolher a opção "Exigir certificados de cliente confiáveis" . Somente o cloudsqlsuperuser
pode ser o proprietário de um wrapper de dados externo postgres_fdw
.
Veja também PL/Proxy e dblink neste documento.
postgresql-hll
Esta extensão introduz um novo tipo de dado, hll
, que é uma estrutura de dados HyperLogLog. Para mais informações, consulte a documentação do postgresql-hll .