pgloader - PostgreSQL 的快速数据加载工具

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'
1个回答

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

batch concurrency
接受数字值作为参数,默认为10。即使只有一个批次被发送到PostgreSQL,pgloader也允许在内存中构建的批次数。

支持同时发送多个批次仍然在pgloader的待办事项列表中,但尚未实现。该选项用于控制pgloader对性能特征的内存需求,并非pgloader的并行活动。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接