我在Amazon EC2实例上有一个PostgreSQL数据库,我正在尝试为数据库填充100M行数据(我有10个文件,每个行10M)。我使用安全复制(scp)命令将csv文件移动到EC2实例中。当我尝试将csv文件复制到数据库时,这花费了太多时间。有没有办法固定程序?
这是我的schema.sql文件:
DROP DATABASE IF EXISTS reviews_db;
CREATE DATABASE reviews_db;
\c reviews_db;
CREATE TABLE reviews (
id INT PRIMARY KEY NOT NULL,
houseId INT NOT NULL,
name VARCHAR(30) NOT NULL,
picture VARCHAR(55) NOT NULL,
reviewText TEXT NOT NULL,
reviewDate VARCHAR (15) NOT NULL,
accuracyRating INT NOT NULL,
locationRating INT NOT NULL,
communicationRating INT NOT NULL,
checkinRating INT NOT NULL,
cleanlinessRating INT NOT NULL,
valueRating INT NOT NULL,
overallRating DECIMAL NOT NULL
);
CREATE INDEX ON reviews (houseId);
然后,在我的EC2实例上,运行以下命令为数据库添加种子:
pv ./reviews1.csv | psql -U postgres -d reviews_db -c "COPY reviews FROM STDIN with (FORMAT csv);"
注意:我的reviews1.csv文件为3.1GB,并且正在以200kb / s的速度上传