나는 다음과 같은 명령을 사용하여 아마존 RDS의 PostgreSQL의 DB에 데이터 200M 라인 (3.5GB)의 주위에 대량로드에 노력하고있어 : 내가 얻을 몇 분 후포스트 그레스 복사 쿼리 연결 손실 오류
cat data.csv | psql -h<host>.rds.amazonaws.com -U<user> <db> -c "COPY table FROM STDIN DELIMITER AS ','"
을 이 오류는 : 나는 모든 200M 대신 첫 번째 100M 라인을 보낼 head -n 100000000 data.csv
를 실행하면
connection not open
connection to server was lost
다음 명령 대신 성공합니다. 전체 데이터 세트를 사용하여 쿼리가 실패 할 수있는 시간 초과가 있다고 생각합니다. 시간 초과 설정이나 매개 변수를 찾을 수 없었습니다.
전체 데이터 세트에서 대량 삽입이 성공하도록하려면 어떻게해야합니까?
이러한 방법 중 하나를 시도해 보셨습니까? http://stackoverflow.com/questions/3602976/bulk-loading-into-postgresql-from-a-remote-client –
그게 정확히 내가하고있는 일이고, 전체 데이터 세트를위한 시간 초과이다. –
비슷하지만 그렇지는 않다. 정확히 동일합니다. 사용중인 구문을 읽으면 기본적으로 거대한 문자열을 만든 다음 SQL에 연결 한 다음 전체 문자열을 인수로 제공하려고 시도합니다. psql을로드하고'\ copy ... from/path /to/data.csv '...'와 같은 것을 실행하면 파일의 내용이 청크로 스트리밍되는 동안 연결이 살아있을 수 있습니다. 이 질문에 대한 답변은 아직 추측이 아니기 때문에 10M 회선이 작동하는지 (= 인수는 연결 시간 전에 완전히 푸시 되었음) 전체 파일 (= 인수는 계속 업로드 됨)이 아닌 이유에 대한 내 직감이됩니다. –