Diff de dados do PostgreSQL

3

Observação: essa pergunta não é sobre a sincronização do esquema / structure com o banco de dados

Problema

No meu aplicativo da web, eu tenho um servidor de banco de dados PostgreSQL ( PGS ) e um servidor de lógica de negócios ( BLS ) que regularmente (a cada minuto ou dois) consultam 'SELECT ALL' contra PGS .

O problema é que a consulta 'SELECT ALL' pode facilmente retornar 50-200 MB a cada vez. É óbvio que não seria tão bom arquitetar transferir tantos dados com tanta freqüência na Web.

Solução possível

O que eu gostaria de fazer é executar uma ferramenta diff em PGS e comparar a nova consulta com a consulta anterior (tudo isso deve ser feito em PGS ). Quando a comparação estiver concluída, eu gostaria de obter um dump de PGS e transferi-lo para BLS . Espero que um dump baseado em diff seja muito, muito menor do que toda a consulta 'SELECT ALL'.

Pergunta

Existe alguma ferramenta de comparação de dados para o PostgreSQL que possa fazer comparações que comparam dados do PostgreSQL entre 2 tabelas ou 2 dumps?

Nota: Eu preferiria alguma ferramenta de software de código aberto.

    
por skanatek 07.06.2014 / 11:26

1 resposta

2

O Postgres pode fazer tudo isso sem ferramentas adicionais. O servidor produz arquivos WAL (Write-Ahead Log), que contêm todas as alterações feitas nos bancos de dados. Eu acho que o que você realmente precisa é de replicação de streaming. Leia sobre:

Se você realmente não quiser falar sobre a sincronização do esquema / estrutura do banco de dados, talvez esteja interessado na solução descrita nesta resposta.

    
por klin 07.06.2014 / 11:47