4

我想加速将数据加载到 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'
4

1 回答 1

3

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

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

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

于 2015-05-24T09:27:18.997 回答