Вставка операторов SQL через командную строку без повторного открытия соединения с удаленной базой данных

У меня есть большое количество файлов данных, которые нужно обработать и сохранить в удаленной базе данных. Каждая строка файла данных представляет собой строку в базе данных, но должна быть отформатирована перед вставкой в ​​базу данных.

Моим первым решением было обработать файлы данных путем написания сценариев bash и создания файлов данных SQL, а затем импортировать файлы SQL дампа в базу данных. Это решение кажется слишком медленным и, как видите, требует дополнительного шага по созданию промежуточного файла SQL.

Моим вторым решением было написать сценарии bash, которые при обработке каждой строки файла данных создают и INSERT INTO ... оператор и отправляют его в удаленную базу данных:

echo sql_statement | psql -h удаленный_сервер -U имя пользователя -d база данных

т.е. не создает файл SQL. Однако это решение имеет одну серьезную проблему, по которой я ищу совет:
Каждый раз, когда мне приходится повторно подключаться к удаленной базе данных, чтобы вставить одну единственную строку.

Есть ли способ подключиться к удаленной базе данных, оставаться на связи, а затем «по конвейеру» или «отправить» инструкцию insert-SQL без создания огромного файла SQL?

12
задан Erwin Brandstetter 22 November 2013 в 14:51
поделиться