2015-01-14 4 views
3

PostgreSQL에 데이터를 빠르게로드하려고합니다. pgloader https://github.com/dimitri/pgloader을 사용하기 시작했고 병렬 로딩을 사용하려고했습니다. 나는 다른 매개 변수로 땜질하고 있었지만 32 대가있는 내 컴퓨터에서 2 개 이상의 코어를 활성화 할 수 없었습니다. 설명서 https://github.com/dimitri/pgloader/blob/master/pgloader.1.md을 발견하고 여기에 설명 된 일괄 처리 옵션을 설정하려고했습니다. 현재, 나는 이러한 설정이 : 나는이 질문에 도착pgloader - PostgreSQL에 대한 빠른 데이터로드

LOAD CSV 
     FROM '/home/data1_1.csv' 
     --FROM 'data/data.csv'    
     INTO postgresql://:[email protected]:5432/test?test 

     WITH truncate, 
      skip header = 0, 
      fields optionally enclosed by '"', 
      fields escaped by double-quote, 
      fields terminated by ',', 
      batch rows = 100, 
      batch size = 1MB,  
      batch concurrency = 64 

     SET client_encoding to 'utf-8', 
      work_mem to '10000MB', 
      maintenance_work_mem to '20000 MB' 

답변

2

을 그것을 당신이 언급 batch 옵션을 사용하여 아직 병렬로드를 지원하지 않습니다 pgloader을 보인다. 그것은 조금 혼란 만 official documentation 이러한 설정은 메모리 관리에 대해,하지 병렬 처리 함을 설명하고있다 :

배치 동시성
이 인자로 숫자 값을 취하고, 10 기본값입니다 pgloader 배치의 수입니다 한 번에 하나의 배치 만 PostgreSQL에 전송 될 수있는 경우에도 메모리에서 빌드 할 수 있습니다.

한 번에 두 개 이상의 일괄 전송을 지원하는 것은 pgloader의 TODO 목록에 있지만 아직 구현되지 않았습니다. 이 옵션은 pgloader의 메모리 요구 사항을 pgloader의 병렬 작업이 아닌 성능 특성과의 절충안으로 제어합니다.

관련 문제