У меня проблемы с заполнением таблиц 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. Любая помощь приветствуется!