PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Dez maneiras de expandir a funcionalidade do PostgreSQL


Como você deve saber, você pode estender a funcionalidade do PostgreSQL usando extensões do PostgreSQL. Você pode usar diferentes extensões para tornar o PostgreSQL como uma versão corporativa e atender a necessidades específicas. Neste blog, veremos algumas das extensões de código aberto mais populares no PostgreSQL e como elas podem ser usadas para expandir sua capacidade.

PostgreSQL é o banco de dados de código aberto mais avançado. Todos os anos, a comunidade PostgreSQL lança uma nova versão com alguns novos recursos, mas há muitos recursos desenvolvidos usando extensões que podem ser usadas para um caso de uso específico.

Algumas dessas extensões são muito poderosas e populares para construir um ambiente PostgreSQL de nível empresarial.

Pg_stat_statements


O módulo pg_stat_statements fornece um meio para rastrear estatísticas de execução de todas as instruções SQL executadas por um servidor PostgreSQL. Quando o módulo pg_stat_statements é carregado, ele rastreia as estatísticas em todos os bancos de dados do servidor. As estatísticas coletadas pelo módulo pg_stat_statements são disponibilizadas por meio de uma visualização denominada pg_stat_statements. Você pode conferir mais detalhes sobre as funções e parâmetros de configuração do pg_stat_statements aqui.

PósGIS


PostGIS é uma extensão do sistema de banco de dados PostgreSQL que permite que objetos GIS (Sistemas de Informação Geográfica) sejam armazenados no banco de dados. Inclui suporte para índices espaciais R-Tree baseados em GiST e funções para análise e processamento de objetos GIS.

PostGIS é usado para objetos espaciais e geográficos para PostgreSQL. PostGIS adiciona tipos (geometria, geografia, raster etc) ao banco de dados PostgreSQL. O PostGIS também adiciona funções, operadores e aprimoramentos de índice que se aplicam a esses tipos espaciais. Você pode verificar o método de instalação aqui.

Postgres_fdw


O módulo postgres_fdw fornece o wrapper de dados estrangeiros postgres_fdw, que pode ser usado para acessar dados armazenados em servidores de banco de dados PostgreSQL externos. Quando há dois bancos de dados PostgreSQL, postgres_fdw refere-se à tabela do outro banco de dados de um banco de dados. Depois de definir FOREIGN TABLE, você pode fazer SELECT, INSERT, UPDATE, DELETE como um banco de dados local.

A funcionalidade fornecida pelo módulo postgres_fdw se sobrepõe substancialmente à funcionalidade do módulo dblink mais antigo. Mas o módulo postgres_fdw fornece uma sintaxe mais transparente e compatível com os padrões para acessar tabelas remotas e pode fornecer melhor desempenho em muitos casos.

O principal caso de uso das tabelas externas é disponibilizar os dados aos sistemas sem replicá-los ou duplicá-los. Existem até implementações simples de sharding usando FDW, porque os dados nos outros shards podem estar disponíveis para consultas por meio de FDWs.

No Oracle, você pode obter os dados de tabelas de banco de dados remotos usando DBLinks, mas a principal diferença entre DBLinks e FDW é que o FDW pode manter os metadados ou a definição da tabela sobre a tabela externa localmente.

Mysql_fdw


Mysql_fdw é uma extensão do PostgreSQL que implementa um Foreign Data Wrapper (FDW) para MySQL. O módulo Mysql_fdw facilita o uso do servidor PostgreSQL como cliente para o MySQL Server, o que significa que ele pode buscar dados do banco de dados MySQL como cliente. Atualmente, o EnterpriseDB está mantendo este módulo no github.

A versão anterior do mysql_fdw era suportada apenas como somente leitura, mas a versão mais recente fornece a capacidade de gravação. O usuário agora pode emitir instruções insert, update e delete para as tabelas estrangeiras usando o mysql_fdw. Ele usa o mecanismo de conversão de tipos do PostgreSQL para fornecer conversão de tipos oposta entre os tipos de dados MySQL e PostgreSQL.

Hstore


O módulo hstore implementa o tipo de dados hstore para armazenar pares chave-valor em um único valor no PostgreSQL. O tipo de dados hstore é muito útil em muitos casos de uso, como dados semiestruturados ou linhas com muitos atributos que raramente são consultados. Observe que as chaves e os valores são apenas strings de texto.

Antes de trabalhar com o tipo de dados hstore, você precisa criar a extensão hstore que carrega o módulo contrib para sua instância do PostgreSQL.

Pgaudit


O pgAudit é uma extensão de auditoria do PostgreSQL que fornece registro detalhado de auditoria de sessão e/ou objeto por meio do recurso de registro padrão do PostgreSQL.

O principal objetivo do módulo pgAudit é fornecer aos usuários do PostgreSQL a capacidade de produzir logs de auditoria frequentemente necessários para cumprir com certificações governamentais, financeiras ou ISO.

Geralmente, uma auditoria é uma inspeção oficial das contas de um indivíduo ou organização, normalmente por um órgão independente. As informações coletadas pelo módulo pgAudit são apropriadamente chamadas de trilha de auditoria ou log de auditoria.

O módulo pgAudit foi desenvolvido para suportar o PostgreSQL 9.5 e versões superiores.

O log de auditoria de sessão do módulo pgAudit fornece logs detalhados de todas as instruções executadas por um usuário no backend. Você pode conferir mais detalhes, configuração e como instalar e usar no PostgreSQL aqui.

Orafce


Orafce é um módulo que implementa funções, tipos de dados e pacotes compatíveis com Oracle. Esta é uma ferramenta de código aberto com licença BSD para que qualquer pessoa possa usar esta ferramenta. Este módulo é muito útil na tarefa de migração do Oracle para o PostgreSQL, pois possui muitas funções do Oracle implementadas no PostgreSQL.

Os aplicativos geralmente usam essas funções com várias ocorrências. Você pode reduzir o custo de modificação do SQL usando esta ferramenta. Você pode conferir como migrar do blog Oracle para PostgreSQL.

Todas as funções e pacotes são implementados corretamente e são bem testados.

Algumas das funções são:
  • Dbms_output
  • Dbms_random
  • utl_file – funções relacionadas ao sistema de arquivos
  • Dbms_pipe e dbms_alert
  • PLVdata,PLVstr, PLVchr
  • Tipo de dados DATE compatível com Oracle e funções como ADD_MONTHS, LAST_DAY, NEXT_DAY e assim por diante.
  • Função NVL
  • Função SUBSTR e SUBSTRB
  • Suporte a VARCHAR2 e NVARCHAR2
  • TO_DATE()
Baixe o whitepaper hoje PostgreSQL Management &Automation with ClusterControlSaiba o que você precisa saber para implantar, monitorar, gerenciar e dimensionar o PostgreSQLBaixe o whitepaper

Pg_bulkload


O módulo Pg_bulkload fornece capacidade de carregamento de dados em alta velocidade para usuários do PostgreSQL. O módulo pg_bulkload foi projetado para carregar uma grande quantidade de dados em um banco de dados. Você pode carregar os dados na tabela ignorando os buffers compartilhados do PostgreSQL. O módulo pg_bulkload também possui alguns recursos de ETL, como validação de dados de entrada e transformação de dados com funções de filtro.

O objetivo original do módulo pg_bulkload era uma alternativa mais rápida do comando COPY no PostgreSQL.

O módulo Pg_bulkload é desenvolvido e mantido pelo NTT OSS Center.

NOTA IMPORTANTE:No ambiente de replicação de streaming no PostgreSQL, o módulo pg_bulkload não funciona corretamente. Veja aqui para mais detalhes.

Pgstattuple


O módulo pgstattuple fornece várias funções para obter estatísticas em nível de tupla no PostgresQL. A função no módulo pgstattuple retorna o comprimento físico de uma relação, porcentagem de tuplas “mortas” e outras informações. Isso pode ser útil para os usuários determinarem se o vácuo é necessário ou não. O argumento para a função é o nome da relação de destino (opcionalmente qualificado pelo esquema) ou OID.

Pg_trgm


pg_trgm é uma extensão do PostgreSQL que fornece correspondência de strings difusas simples no PostgreSQL. Sua sobrecarga operacional e conceitual é muito menor do que a pesquisa de texto completo do PostgreSQL ou um mecanismo de pesquisa separado.

Um trigrama ou trigrafo é um grupo de três caracteres consecutivos retirados de uma string. Você pode medir a similaridade de duas strings contando o número de trigramas que elas compartilham. Essa ideia simples de trigrama acaba sendo muito eficaz para medir a semelhança de palavras em muitas línguas naturais.

Em geral, o módulo pg_trgm pode ajudar quando:
  • Você precisa de correspondência de strings insensíveis a maiúsculas e minúsculas no PostgreSQL.
  • Você deseja acelerar LIKE, ILIKE, ~ ou ~* no PostgreSQL.
  • Você deseja pesquisar padrões que não sejam ancorados à esquerda (por exemplo, %john%). Esses padrões não são suportados por índices de árvore B no PostgreSQL.

A lista de módulos/extensões acima é muito útil para expandir a capacidade do PostgreSQL. Existem mais algumas extensões que não estão incluídas no blog, mas é muito útil expandir a funcionalidade do PostgreSQL. Estes são os seguintes.
  • Extensões de idioma:PL/Python, PL/Perl, PL/R, PL/v8, PL/sh etc.
  • Cstore_fdw
  • Mongo_fdw
  • HipoPG
  • Tds_fdw
  • Plprofiler

Conclusão


Existem muitas extensões nas extensões suportadas pela comunidade PostgreSQL e algumas extensões de terceiros, todas usadas para um caso de uso específico. Você pode expandir a capacidade ou funcionalidade do PostgreSQL usando esses módulos.