Подтвердить что ты не робот

Как загрузить данные из текстового файла в базе данных PostgreSQL?

У меня есть файл (CSV файл):

value1|value2|value2....

value1|value2|value2....

value1|value2|value2....

value1|value2|value2....

и хотел бы загрузить эти данные в таблицу postgresql.

4b9b3361

Ответ 1

Немного измененная версия COPY ниже работала лучше для меня, где я указываю CSV. Этот формат обрабатывает символы обратной косой черты в тексте без каких-либо проблем. Формат по умолчанию - несколько причудливый TEXT.

COPY myTable FROM '/path/to/file/on/server' ( FORMAT CSV, DELIMITER('|') );

Ответ 2

Учтите, что ваши данные находятся в файле values.txt и что вы хотите импортировать их в таблицу базы данных myTable, тогда следующий запрос выполняет задание

COPY myTable FROM 'value.txt' (DELIMITER('|'));

https://www.postgresql.org/docs/current/static/sql-copy.html

Ответ 4

Здесь Pgloader, который использует вышеупомянутую команду COPY и может загружать данные из csv (и MySQL, SQLite и dBase), Он также использует отдельные потоки для чтения и копирования данных, поэтому он довольно быстро (интересно, он получил от Python до Common Lisp и получил коэффициент усиления от 20 до 30 раз, см. сообщение в блоге).

Чтобы загрузить файл csv, нужно написать небольшой файл конфигурации, например

LOAD CSV  
  FROM 'path/to/file.csv' (x, y, a, b, c, d)  
  INTO postgresql:///pgloader?csv (a, b, d, c)  
  …