Você pode usar o PL / Proxy para configurar um frontend e, em seguida, escrever algumas funções que executam as consultas necessárias. Pode ser bastante complicado, no entanto. Você deve planejar essa arquitetura com cuidado.
Digamos que eu tenha um grande banco de dados globalclients
, que é muito grande.
Agora, divido esse grande banco de dados para 100 sub-bancos de dados, como:
chinaclients
japanclients
koreaclients
indiaclients
brazilclients
etc.
Cada um em execução no país correspondente.
Agora, quero fazer algumas análises em todos os bancos de dados. Eu quero mesclar todos eles no banco de dados mestre no início: algumas tabelas são mescladas inteiramente e algumas tabelas são agregadas antes da mesclagem:
customer_contact: merged entirely
product_sales: 'select sum(sales), ... group by month' before merging
Você tem alguma sugestão? Quais são os termos em inglês relacionados a essa técnica? "sincronizar" ou outra coisa?
Será um ótimo bônus se eu puder enviar apenas a diferença do sub-banco de dados.
Não sei se posso fazê-lo em nível de banco de dados ou não, "sincronizar" os bancos de dados distribuídos em Java seria uma tarefa complexa. Existe algum suporte do PostgreSQL-8.4?
Você pode usar o PL / Proxy para configurar um frontend e, em seguida, escrever algumas funções que executam as consultas necessárias. Pode ser bastante complicado, no entanto. Você deve planejar essa arquitetura com cuidado.
As consultas SQL podem ser executadas em várias tabelas como esta:
SELECT SUM(sales) FROM table1, table2 GROUP BY month
Você também pode usar o UNION para recuperar sequencialmente dados de várias consultas:
SELECT SUM(sales) FROM table1 GROUP BY month UNION SELECT SUM(sales) FROM table2 GROUP BY month
Eu não sei sobre postgresql, mas você pode ser capaz de criar uma tabela VIEW que lhe dê uma maneira de acessar todas as tabelas em um formato mesclado para executar consultas mais simples.