Проблема с postgres копией очень большого CSV-файла, замораживающего Ubuntu - PullRequest
0 голосов
/ 01 июня 2019

У меня проблемы с заполнением таблиц postgres очень большим CSV-файлом (~ 40 ГБ) с помощью команды COPY. Я впервые использую SQL / postgres, но у меня есть опыт работы с R / python / linux несколько лет.

CREATE DATABASE exampledb OWNER exampleuser;

#create schema
\c exampledb;
CREATE SCHEMA exampledbSC;
set search_path to exampledbSC;

#this creates the tables
psql 'dbname=exampledb user=exampleuser options=--search_path=exampledbSC' -f postgres_create_tables.sql

#this populates the tables with csv data 
psql 'dbname=exampledb user=exampleuser options=--search_path=exampledbSC' -f postgres_load_data.sql -v data_dir='/home/user/datafolder'

Внутри последнего скрипта есть несколько вызовов \ copy между csvs и таблицами, например:

--  Load Data for Table table1
\copy table1 FROM 'table1.csv' DELIMITER ',' CSV HEADER NULL ''
--  Load Data for Table table2
\copy table2 from 'table2.csv' delimiter ',' csv header NULL ''

Первые 3 \ copy выполняются нормально, но четвертым является файл 40 ГБ - в конце концов я теряю контроль над своей клавиатурой и щелкаю в Ubuntu (но могу перемещать мышь). Я оставил программу в этом состоянии примерно на 8 часов, так как в файле readme указано, что это может быть многочасовой процесс, но это кажется ненормальным. Я нахожусь на локальной машине с 16 ядрами, 32-гигабайтными данными доступа к ОЗУ на диске M.2 nvme. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 02 июня 2019

Эта проблема была связана с тем, что я запустил postgres-10, но скрипт построения таблицы был для предыдущих версий.Была вторая версия 10 скрипта, который я использовал, который закончился менее чем за час.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...