Здравствуйте! Имею: около 10 таблиц в 2х разных БД. Одна из таблиц большая (сотни миллионов записей), в других сотни тысяч записей (все данные в PostgreSQL). Нужно: по сути сделать JOIN по всем 10ти таблицам и получить результат например group by для статистики.
Не обязательно в реалтайме, можно например пару раз в день.
Как лучше такое сделать?
Подразумеваю что должен быть какой-то софт, который к примеру принимает набор файлов в csv, и делает с ним что угодно.
P.S. Мой основной ЯП - PHP. Но думаю это не имеет значения так как решения скорей всего должны быть консольными.
Напрямую обращаться к другой БД нельзя. Но кто сказал, что вообще нельзя?
Натравливаете Foreign Data Wrappers: https://www.postgresql.org/docs/current/static/pos...
Получаете доступность обеих таблиц в одной БД. На актуальный версиях PG планировщик уже может проталкивать аггрегацию в fdw самостоятельно и считать там что можно, а обратно передавать только аггрегированные данные.
Более старый способ: берёте старый добрый dblink: https://www.postgresql.org/docs/current/static/dbl... дёргаете запрос с джойном таблиц из одной БД, к результату джойните таблицы второй базы.
Могу ошибаться но из разных БД такое не предусмотрено. Запускаете скрипт по cron он создаёт таблицу в какой-то БД, тянет из всех БД в неё нужные данные, делает нужный вам запрос из этой одной таблицы. Всё. По cron можете потом эту таблицу дропнуть если результат выборки куда-то сохраняется и она вам не нужна.