Partilhar via


Extensões do PostgreSQL no Azure Cosmos DB para PostgreSQL

Importante

O Azure Cosmos DB para PostgreSQL não tem mais suporte para novos projetos. Não use este serviço para novos projetos. Em vez disso, use um destes dois serviços:

  • Use o Azure Cosmos DB para NoSQL para obter uma solução de banco de dados distribuído projetada para cenários de alta escala com um SLA (contrato de nível de serviço) de disponibilidade de 99.999%, dimensionamento automático instantâneo e failover automático em várias regiões.

  • Use a funcionalidade de Clusters Elásticos do Azure para PostgreSQL para PostgreSQL fragmentado, utilizando a extensão Citus de código aberto.

O PostgreSQL estende a funcionalidade do seu banco de dados usando extensões. As extensões permitem agrupar vários objetos SQL relacionados em um único pacote que pode ser carregado ou removido do banco de dados com um único comando. Depois do carregamento para a base de dados, as extensões podem funcionar como funcionalidades incorporadas. Para obter mais informações sobre extensões PostgreSQL, consulte Objetos relacionados ao pacote em uma extensão.

Usar extensões PostgreSQL

As extensões PostgreSQL devem ser instaladas em seu banco de dados antes que você possa usá-las. Para instalar uma extensão específica, execute o comando CREATE EXTENSION da ferramenta psql para carregar os objetos empacotados em seu banco de dados.

Nota

Se CREATE EXTENSION falhar com um erro de permissão negada, tente a função create_extension(). Por exemplo:

SELECT create_extension('postgis');

Para remover uma extensão instalada desta forma, use drop_extension().

Atualmente, o Azure Cosmos DB para PostgreSQL dá suporte a um subconjunto de extensões de chave, conforme listado aqui. Não há suporte para extensões diferentes das listadas. Não é possível criar sua própria extensão com o Azure Cosmos DB para PostgreSQL.

Extensões suportadas pelo Azure Cosmos DB para PostgreSQL

As tabelas a seguir listam as extensões padrão do PostgreSQL com suporte no Azure Cosmos DB para PostgreSQL. Esta informação também está disponível através da execução SELECT * FROM pg_available_extensions;.

As versões de cada extensão instalada em um cluster às vezes diferem com base na versão do PostgreSQL (11, 12, 13, 14, 15 ou 16). As tabelas listam versões de extensão por versão de banco de dados.

Extensão Citus

Extensão Descrição PÁG. 11 PG 12 PÁG. 13 PG 14 PÁG. 15 PÁG. 16
citus Base de dados distribuída Citus. 9.5 10.2 11.3 12,1 12,1 12,1

Extensões de tipos de dados

Extensão Descrição PÁG. 11 PG 12 PÁG. 13 PG 14 PÁG. 15 PÁG. 16
Citext Fornece um tipo de cadeia de caracteres que não diferencia maiúsculas de minúsculas. 1.5 1.6 1.6 1.6 1.6 1.6
cubo Fornece um tipo de dados para cubos multidimensionais. 1.4 1.4 1.4 1.5 1.5 1.5
hll Fornece uma estrutura de dados HyperLogLog. 2.18 2.18 2.18 2.18 2.18 2.18
hstore Fornece um tipo de dados para armazenar conjuntos de pares chave-valor. 1.5 1.6 1.7 1.8 1.8 1.8
isn Fornece tipos de dados para padrões internacionais de numeração de produtos. 1.2 1.2 1.2 1.2 1.2 1.2
lo Manutenção de objetos de grande porte. 1.1 1.1 1.1 1.1 1.1 1.1
ltree Fornece um tipo de dados para estruturas hierárquicas semelhantes a árvores. 1.1 1.1 1.2 1.2 1.2 1.2
SEG Tipo de dados para representar segmentos de linha ou intervalos de vírgula flutuante. 1.3 1.3 1.3 1.4 1.4 1.4
Tdigest Tipo de dados para acumulação on-line de estatísticas baseadas em classificação, como quantis e médias aparadas. 1.4.1 1.4.1 1.4.1 1.4.1 1.4.1 1.4.1
Topn Insira para top-n JSONB. 2.6.0 2.6.0 2.6.0 2.6.0 2.6.0 2.6.0

Extensões de pesquisa de texto completo

Extensão Descrição PÁG. 11 PG 12 PÁG. 13 PG 14 PÁG. 15 PÁG. 16
dict_int Fornece um modelo de dicionário de pesquisa de texto para números inteiros. 1.0 1.0 1.0 1.0 1.0 1.0
dict_xsyn Modelo de dicionário de pesquisa de texto para processamento estendido de sinônimos. 1.0 1.0 1.0 1.0 1.0 1.0
sem sotaque Um dicionário de pesquisa de texto que remove acentos (sinais diacríticos) dos lexemas. 1.1 1.1 1.1 1.1 1.1 1.1

Extensões de funções

Extensão Descrição PÁG. 11 PG 12 PÁG. 13 PG 14 PÁG. 15 PÁG. 15
Autoinc Funções para incrementar campos automaticamente. 1.0 1.0 1.0 1.0 1.0 1.0
distância terrestre Fornece um meio para calcular distâncias de grandes círculos na superfície da Terra. 1.1 1.1 1.1 1.1 1.1 1.1
Fuzzystrmatch Fornece várias funções para determinar semelhanças e distância entre cadeias de caracteres. 1.1 1.1 1.1 1.1 1.1 1.2
insert_username Funções para controlar quem alterou uma tabela. 1.0 1.0 1.0 1.0 1.0 1.0
Intagg Agregador e enumerador de números inteiros (obsoleto). 1.1 1.1 1.1 1.1 1.1 1.1
IntArray Fornece funções e operadores para manipular matrizes livres de nulos de inteiros. 1.2 1.2 1.3 1.5 1.5 1.5
moddatetime Funções para acompanhar o tempo da última modificação. 1.0 1.0 1.0 1.0 1.0 1.0
orafce Funções e operadores que emulam um subconjunto de funções e pacotes do Oracle RDBMS. 4,9 4,9 4,9
pg_partman Gerencia tabelas particionadas por tempo ou ID. 4.7.4 4.7.4 4.7.4 5.1.0 5.1.0 5.1.0
pg_surgery Funções para realizar cirurgia numa relação deteriorada. 1.0 1.0 1.0
pg_trgm Fornece funções e operadores para determinar a semelhança de texto alfanumérico com base na correspondência de trigramas. 1.4 1.4 1.5 1.6 1.6 1.6
PGPcrypto Fornece funções criptográficas. 1.3 1.3 1.3 1.3 1.3 1.3
refint Funções para implementação de integridade referencial (obsoleta). 1.0 1.0 1.0 1.0 1.0 1.0
Tablefunc Fornece funções que manipulam tabelas inteiras, incluindo tabela cruzada. 1.0 1.0 1.0 1.0 1.0 1.0
TCN Notificações de alterações desencadeadas. 1.0 1.0 1.0 1.0 1.0 1.0
viagem no tempo Funções para implementar viagens no tempo. 1.0
UUID-OSSP Gera identificadores universalmente exclusivos (UUIDs). 1.1 1.1 1.1 1.1 1.1 1.1

Extensões de tipos de índice

Extensão Descrição PÁG. 11 PG 12 PÁG. 13 PG 14 PÁG. 15 PÁG. 16
floração Método de acesso Bloom - índice baseado em arquivo de assinatura. 1.0 1.0 1.0 1.0 1.0 1.0
btree_gin Fornece exemplos de classes de operador GIN que implementam o comportamento semelhante a uma árvore B para determinados tipos de dados. 1.3 1.3 1.3 1.3 1.3 1.3
btree_gist Fornece classes de operador de índice GiST que implementam árvore B. 1.5 1.5 1.5 1.6 1.7 1.7

Extensões linguísticas

Extensão Descrição PÁG. 11 PG 12 PÁG. 13 PG 14 PÁG. 15 PÁG. 16
plpgsql Linguagem processual carregável PL/pgSQL. 1.0 1.0 1.0 1.0 1.0 1.0

Extensões diversas

Extensão Descrição PÁG. 11 PG 12 PÁG. 13 PG 14 PÁG. 15 PÁG. 16
Amcheck Funções para verificar a integridade da relação. 1.1 1.2 1.2 1.3 1.3 1.3
dblink Um módulo que suporta conexões com outros bancos de dados PostgreSQL de dentro de uma sessão de banco de dados. Consulte a seção "dblink and postgres_fdw" para obter informações sobre essa extensão. 1.2 1.2 1.2 1.2 1.2 1.2
old_snapshot Permite a inspeção do estado do servidor que é usado para implementar old_snapshot_threshold. 1.0 1.0 1.0
pageinspect Inspecione o conteúdo das páginas do banco de dados em um nível baixo. 1.7 1.7 1.8 1.9 1.11 1.12
pg_azure_storage Integração do Azure para PostgreSQL. 1.3 1.3 1.3 1.3
pg_buffercache Fornece um meio para examinar o que está acontecendo no cache de buffer compartilhado em tempo real. 1.3 1.3 1.3 1.3 1.3 1.4
pg_cron Agendador de tarefas para PostgreSQL. 1.5 1.6 1.6 1.6 1.6 1.6
pg_freespacemap Examine o mapa de espaço livre (FSM). 1.2 1.2 1.2 1.2 1.2 1.2
pg_prewarm Fornece uma maneira de carregar dados de relação no cache de buffer. 1.2 1.2 1.2 1.2 1.2 1.2
pg_stat_statements Fornece um meio para controlar estatísticas de execução de todas as instruções SQL executadas por um servidor. Consulte a seção "pg_stat_statements" para obter informações sobre essa extensão. 1.6 1.7 1.8 1.9 1.10 1.10
pg_visibility Examine o mapa de visibilidade (VM) e as informações de visibilidade no nível da página. 1.2 1.2 1.2 1.2 1.2 1.2
pgrowlocks Fornece um meio para mostrar informações de bloqueio em nível de linha. 1.2 1.2 1.2 1.2 1.2 1.2
pgstattuple Fornece um meio para mostrar estatísticas ao nível de tupla. 1.5 1.5 1.5 1.5 1.5 1.5
postgres_fdw Conector de dados externos usado para aceder a dados armazenados em servidores PostgreSQL externos. Consulte a seção "dblink and postgres_fdw" para obter informações sobre essa extensão. 1.0 1.0 1.0 1.1 1.1 1.1
sslinfo Informações sobre certificados TLS/SSL. 1.2 1.2 1.2 1.2 1.2 1.2
tsm_system_rows Método TABLESAMPLE, que aceita o número de linhas como limite. 1.0 1.0 1.0 1.0 1.0 1.0
tsm_system_time Método TABLESAMPLE, que aceita o tempo em milissegundos como limite. 1.0 1.0 1.0 1.0 1.0 1.0
XML2 Consultas XPath e XSLT. 1.1 1.1 1.1 1.1 1.1 1.1

Extensão Pgvector

Extensão Descrição PÁG. 11 PG 12 PÁG. 13 PG 14 PÁG. 15 PÁG. 16
pgvector Pesquisa de semelhança vetorial de código aberto para Postgres 0.5.1 0.7.0 0.7.0 0.7.0 0.7.0 0.7.0

Extensões PostGIS

Extensão Descrição PÁG. 11 PG 12 PÁG. 13 PG 14 PÁG. 15 PÁG. 16
PostGIS Objetos espaciais e geográficos para PostgreSQL. 3.3.4 3.4.1 3.4.1 3.4.1 3.4.1 3.4.1
normalizador_de_endereço Usado para analisar um endereço em elementos constituintes. Usado para dar suporte à etapa de normalização de endereços de geocodificação. 3.3.4 3.4.2 3.4.2 3.4.2 3.4.2 3.4.2
postgis_sfcgal Funções PostGIS SFCGAL. 3.3.4 3.4.2 3.4.2 3.4.2 3.4.2 3.4.2
postgis_topology Topologia PostGIS, tipos espaciais e funções. 3.3.4 3.4.2 3.4.2 3.4.2 3.4.2 3.4.2

pg_stat_statements

A extensão pg_stat_statements é pré-carregada em cada cluster do Azure Cosmos DB para PostgreSQL para fornecer um meio de controlar estatísticas de execução de instruções SQL.

A configuração pg_stat_statements.track controla quais declarações são contabilizadas pela extensão. Por padrão, é top, o que significa que todas as instruções emitidas diretamente pelos clientes são rastreadas. Os outros dois níveis de rastreamento são none e all.

Há uma compensação entre as informações de execução da consulta que o pg_stat_statements fornece e o efeito no desempenho do servidor, uma vez que regista cada instrução SQL. Se você não estiver usando ativamente a extensão pg_stat_statements, recomendamos que defina pg_stat_statements.track como none. Alguns serviços de monitoramento de terceiros podem contar com pg_stat_statements para fornecer informações sobre o desempenho da consulta, portanto, confirme se é o seu caso ou não.

Você pode usar dblink e postgres_fdw para se conectar de um servidor PostgreSQL para outro ou para outro banco de dados no mesmo servidor. O servidor de recebimento precisa permitir conexões do servidor de envio através de seu firewall. Para usar essas extensões para se conectar entre clusters do Azure Cosmos DB para PostgreSQL com acesso público, defina Permitir que os serviços e recursos do Azure acessem esse cluster (ou servidor) como ATIVADO. Você também precisa ativar essa configuração se quiser usar as extensões para fazer loop de volta para o mesmo servidor. A configuração Permitir que os serviços e recursos do Azure acessem esse cluster pode ser encontrada na página do portal do Azure para o cluster em Rede. Atualmente, não há suporte para conexões de saída do Azure Cosmos DB para PostgreSQL.

Extensão ORAFCE

UTL_FILE funções estão desativadas na extensão ORAFCE.

Próximos passos

  • Saiba mais sobre as versões suportadas do PostgreSQL.