Скажем, у меня большая база данных globalclients
который очень-очень большой.
Теперь я делю эту большую базу данных на 100 под-баз данных, как:
chinaclients
japanclients
koreaclients
indiaclients
brazilclients
etc.
Каждый работает в соответствующей стране.
Теперь я хочу провести некоторый анализ по всем базам данных. Я хочу сначала объединить их все в основную базу данных: некоторые таблицы объединяются полностью, а некоторые таблицы объединяются перед объединением:
customer_contact: merged entirely
product_sales: `select sum(sales), ... group by month` before merging
Есть ли у вас предложения? Какие английские термины относятся к этой технике? "синхронизировать" или что-то еще?
Будет отличным бонусом, если я смогу загрузить только разницу из под-базы данных.
Я не знаю, смогу ли я сделать это на уровне базы данных или нет, «синхронизация» распределенных баз данных в Java была бы сложной задачей. есть ли поддержка PostgreSQL-8.4?
Вы можете использовать PL / Proxy для настройки внешнего интерфейса, а затем написать несколько функций, которые будут выполнять запросы, которые вам нужны. Однако это могло быть довольно сложно. Вам следует тщательно спланировать эту архитектуру.
SQL-запросы могут выполняться в нескольких таблицах следующим образом:
SELECT SUM(sales) FROM table1, table2 GROUP BY month
Вы также можете использовать UNION для последовательного извлечения данных из нескольких запросов:
SELECT SUM(sales) FROM table1 GROUP BY month UNION SELECT SUM(sales) FROM table2 GROUP BY month
Я не знаю о postgresql, но вы могли бы создать таблицу VIEW, которая дает вам доступ ко всем таблицам в объединенном формате для выполнения более простых запросов.