pgloader - PostgreSQL的快速数据加载

时间:2015-01-14 07:34:11

标签: postgresql settings loader postgresql-9.3 ctl

我想加速将数据加载到PostgreSQL。我开始使用pgloader https://github.com/dimitri/pgloader并希望利用并行加载。我正在修改不同的参数,但我无法在我的机器上激活两个以上的核心(其中有32个核心)。我找到了文档https://github.com/dimitri/pgloader/blob/master/pgloader.1.md,并尝试设置那里描述的批处理选项。目前,我有这些设置:

 LOAD CSV
      FROM '/home/data1_1.csv'
      --FROM 'data/data.csv'            
      INTO postgresql://:postgres@localhost: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'

1 个答案:

答案 0 :(得分:2)

我也遇到了这个问题,似乎pgloader不支持使用你提到的batch选项进行并行加载。这有点令人困惑,但official documentation解释说这些设置是关于内存管理,而不是并行:

  

批量并发
  将数值作为参数,默认为10.即使一次只有一个批次可能发送到PostgreSQL,pgloader允许在内存中构建的批次数。

     

支持一次发送多个批次,这是在pgloader的TODO列表中,但尚未实现。这个选项是关于控制pgloader的内存需求作为性能特征的权衡,而不是关于pgloader的并行活动。