Como usar o Postgres
(github.com/Olshansk)- Este repositório reúne e apresenta ferramentas e casos de uso do Postgres para diferentes finalidades, sob a diretriz “Keep It Simple Stupid, just use postgres”
- A lista foi inspirada no texto Postgres for Everything do Amazing CTO e no gist do GitHub de @cpursley, e é mantida porque continuam surgindo novas ferramentas e formas de usar Postgres
- O escopo é amplo e inclui jobs cron, Postgres embarcado, filas de mensagens, analytics, GIS, logs de auditoria, controle de acesso, busca, séries temporais, NoSQL, grafos, HTTP, API, CDC, cache, testes, migração, tuning de performance, monitoramento, extensões, UI, CLI, visualização, gerenciamento de pacotes, segurança e razão financeira
- Cada item organiza principalmente links para extensões do Postgres, bibliotecas, plataformas de API, textos e ferramentas, e alguns se conectam a tecnologias específicas como DuckDB, pgvector, PostGIS, PgBouncer, GraphQL e CDC
- Usuários que quiserem adicionar exemplos de trechos de código, ferramentas ou projetos específicos devem abrir um PR com links e usar o novo pull request template
Objetivo do repositório e forma de manutenção
- O objetivo do repositório Postgres for Everything é mostrar maneiras de usar o Postgres para vários propósitos
- O repositório foi inspirado nos seguintes materiais
- Como novas ferramentas sobre o Postgres aparecem e novas formas de uso continuam surgindo, ele é mantido como um lugar para acompanhar isso
- Se houver outros exemplos, é possível enviar um PR
- Para mostrar trechos de código, ferramentas ou projetos, é preciso abrir um PR com links e usar o pull request template
Leituras e artigos de exemplo
- Estão incluídos textos sobre extensibilidade do Postgres, padrões, uso de funções de banco de dados, otimização e recursos do PostgreSQL
Execução de tarefas, embedding e filas
-
Cron Jobs
-
Postgres embarcável
-
Filas de mensagens
- tembo-io/pgmq
- SKIP LOCKED
- sequinstream/sequin: ferramenta de CDC que envia linhas e alterações do Postgres para plataformas de streaming e filas como Kafka e SQS
- janbjorge/pgqueuer: biblioteca Python de fila de tarefas que usa PostgreSQL
- smartpricing/queen: fila de mensagens baseada em PostgreSQL que oferece partições FIFO independentes, consumer groups no estilo Kafka e exactly-once delivery
Analytics, mapas, auditoria e permissões
-
Analytics
- paradedb/pg_analytics: oferece analytics de data lake com base em DuckDB no Postgres
- duckdb/pg_duckdb: extensão oficial do Postgres para DuckDB
- BemiHQ/BemiDB: réplica de leitura do Postgres otimizada para analytics
- Mooncake-Labs/pg_mooncake: extensão que adiciona armazenamento colunar e execução vetorizada do DuckDB dentro do Postgres
- ClickHouse/pg_clickhouse: executa consultas analíticas do ClickHouse no PostgreSQL sem reescrita de SQL
-
GIS & Mapping
-
Logs de auditoria
- supabase/supa_audit
- pgMemento/pgMemento
- pgaudit/pgaudit
- BemiHQ/Bemi: rastreia automaticamente alterações de dados no PostgreSQL
-
Controle de acesso e autorização
Busca, séries temporais, colunar, NoSQL, grafos
-
Full Text Search
- Postgres Full Text Search: coleção de links relacionados
- pg_search: busca full text no Postgres usando BM25
- plpgsql_bm25: busca BM25 implementada em PL/pgSQL
-
Vector Search
- pgvector/pgvector
- tensorchord/VectorChord: extensão de busca por similaridade vetorial para PostgreSQL com foco em escalabilidade, alto desempenho e eficiência em disco
- timescale/pgai: extensão baseada em pgvector que oferece suporte ao desenvolvimento de RAG, busca semântica e aplicações de IA dentro do Postgres
- timescale/pgvectorscale: implementação de índice vetorial DiskANN que complementa o pgvector
-
Hybrid Search
- plpgsql_bm25rrf.sql: busca híbrida que combina BM25 e pgvector com Reciprocal Rank Fusion
-
Time Series
- timescale/timescaledb: PostgreSQL++ para séries temporais e eventos
- tembo-io/pg_timeseries: extensão open source de séries temporais para PostgreSQL
-
Column Oriented
- paradedb/paradedb: Postgres para busca e analytics
- pg_duckdb: armazenamento colunar do DuckDB dentro do Postgres
-
NoSQL
- JSON Types: suporte nativo a JSON no PostgreSQL
- Using JSONB in PostgreSQL: como armazenar e indexar dados JSON no PostgreSQL
-
Graph Data
- Apache Age: banco de dados de grafos para PostgreSQL que oferece recursos de processamento e análise de dados em grafos em bancos de dados relacionais
Dados externos, HTTP, API, GraphQL, CDC
-
Foreign Data
-
HTTP
-
API Platforms
- PostgREST: gera APIs RESTful a partir de bancos de dados PostgreSQL existentes
- Hasura GraphQL Engine: plataforma de API baseada em metadados
-
GraphQL and Alternative Query Languages
- PostGraphile: API GraphQL automática para PostgreSQL
- supabase/pg_graphql: extensão para PostgreSQL que permite consultas GraphQL com uma única função SQL
- dosco/graphjin: converte automaticamente GraphQL em consultas SQL
- kaspermarstal/plprql: extensão para PostgreSQL para escrever funções em PRQL
-
Events, Replication, CDC
- aws/pgactive: extensão de replicação da AWS para criar bancos de dados active-active
- xataio/pgstream: CLI e biblioteca de CDC que enviam a replicação do Postgres para destinos de saída, incluindo mudanças de DDL
- electric-sql/electric: API HTTP que sincroniza Shapes de bancos de dados Postgres
- SQL Notify
- debezium/debezium
- 2ndQuadrant/pglogical
Cache, testes, aplicações, migrações
-
Caching
- tidwall/pogocache: camada de cache com foco em latência e eficiência de CPU
- readysettech/readyset
-
Unit Tests
-
HTML & Applications
-
Migrations
- purcell/postgresql-migrations
- Bytebase
- xataio/pgroll
- stripe/pg-schema-diff
- pgschema/pgschema: CLI que oferece ao Postgres um fluxo de trabalho de migração de schema declarativo no estilo Terraform
Desempenho, monitoramento, escalabilidade, UI
-
Performance Tuning
- Supabase Index Advisor
- Dexter
- HypoPG
- pg_hint_plan
- PGHero
- pg_incremental: extensão para processamento em lote incremental rápido e confiável
- pgassistant: assistente para desenvolvedores que ajuda a entender e otimizar o desempenho do PostgreSQL
-
Monitoring
-
Testing
- regresql: ferramenta de teste de regressão de consultas SQL com suporte a PostgreSQL
-
Scaling & Storage
- Snowflake-Labs/pg_lake: usa o Postgres como um sistema lakehouse autônomo e oferece suporte a transações e consultas em tabelas Iceberg em armazenamentos de objetos como o S3
- pgdogdev/pgdog: pooler transacional e gerenciador de replicação lógica com suporte a sharding para PostgreSQL
- pgbouncer/pgbouncer: pooler leve de conexões para PostgreSQL
- orioledb.com: extensão do PostgreSQL que combina as vantagens dos mecanismos on-disk e in-memory
-
User Interfaces & Dashboards
- Baserow
- NocoDB
- AppSmith
- mathesar-foundation/mathesar: interface no estilo de planilha para usuários de diferentes níveis técnicos visualizarem, editarem, consultarem e colaborarem com dados do Postgres
Ferramentas para desenvolvedores, visualização, pacotes, segurança, finanças
-
CLIs
- dbcli/pgcli: cliente Postgres com autocompletar e destaque de sintaxe
- sosedoff/pgweb: explorador de banco de dados PostgreSQL multiplataforma baseado na web
- Maxteabag/sqlit: TUI para bancos de dados SQL, incluindo PostgreSQL
-
Visualization
- dr-jts/pg_svg: conjunto de funções PostgreSQL que converte geometrias do PostGIS em documentos SVG estilizados
- Evidence
- Metabase
- Hopara: plataforma de visualização de dados em tempo real para manufatura, IoT, ciências da vida e data lakes
- posit-dev/ggsql: extensão SQL declarativa de visualização de dados baseada em Grammar of Graphics
-
Package Management
-
Language Servers
- supabase/postgres-language-server: coleção de ferramentas de linguagem e implementação de LSP para Postgres
-
Data Privacy & Security
- neondatabase/postgresql_anonymizer: extensão PostgreSQL que mascara ou substitui diretamente PII ou dados comercialmente sensíveis
-
Financial Ledgers
- pgledger: livro-razão de partidas dobradas implementado em PostgreSQL
-
Miscellaneous
- Very comprehensive list of Postgres tooling
- Unsupported PostgreSQL features in Aurora DSQL: lista de recursos do PostgreSQL não suportados no AWS Aurora DSQL
Ainda não há comentários.