У меня есть сервер PostgreSQL, размещенный на виртуальной машине в нашей интрасети. В других местах сети (эти машины не имеют доступа к одной и той же файловой системе) у меня есть ~ 850 R скриптов, запущенных (одновременно), каждый из которых генерирует от 500 до 3 миллионов строк данных, которые я хочу отправить (в настоящее время пусто) таблица в базе данных. Я пытаюсь определить, каков оптимальный способ сделать это. До сих пор я придумал эти решения:
Используйте пакеты / функции R odbc и DBI :: dbWriteTable для передачи данных на удаленный сервер. В качестве теста я попытался использовать этот маршрут для 3 (из ~ 850) партий одновременно, и это заняло ~ 25 минут.
Экспорт данных в виде текстового файла, использование SSH для копирования текстового файла на сервер, на котором размещена база данных, и использование COPY
для импорта данных
Есть ли лучшие способы сделать это? Каков наилучший способ сделать это?
Таблица, к которой я пытаюсь нажать, индексируется и имеет внешние ключи, а также уникальные ограничения. Я где-то читал, что удаление их до добавления данных и последующее их добавление может значительно ускорить процесс. Будет ли это иметь существенное значение?