Pressione o sub-banco de dados para o banco de dados mestre?

1

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?

    
por Xiè Jìléi 03.05.2011 / 12:46

2 respostas

1

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.

    
por 04.05.2011 / 19:06
0

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.

    
por 03.05.2011 / 14:30