pgsql批量导入工具--pg_bulkLoad


pg_bulkLoad批量入库工具

工具说明

postgresql的官方导入csv等文件的工具

环境说明

centOS7.9(2009)

postgresql服务版本12.6(psql (PostgreSQL) 12.6)

工具使用(Linux)

安装pg_bulkLoad:(pg_bulkload 3.1.18)

  1. 下载pg_bulkload-3.1.18-1.pg12.rhel8.x86_64.rpm

  2. rpm -ivh pg_bulkload-3.1.18-1.pg12.rhel8.x86_64.rpm安装

  3. 下载postgresql12.6源码,编译安装

  4. 解压源码包后,进入解压后的文件夹,执行 ./configure --prefix=/opt/postgresql

  5. make && make install

  6. 下载pg_bulkload源码(github提供)

  7. 编译 && 安装

    1). 配置环境变量

    pg_bulkload安装需要pg_config,所以需要把postgresql的bin目录导入PATH -->: export PATH=/opt/postgresql/bin:$PATH

    2). 进入pg_bulkload源码目录

    ​ 执行make USE_PGXS=1

    ​ 进入pg_bulkload源码目录的子目录bin,出现新编译出来的pg_bulkLoad

    ​ 执行make USE_PGXS=1 install

    至此pg_bulkLoad编译安装完成

  8. 连接数据库,建立pg_bulkLoad的extension

    1). 连接数据库

    2). \c <数据库名> 进入要使用的数据库

    3). create extension pg_bulkload;建立extension

  9. 利用pg_bulkLoad将csv文件导入数据库

    pg_bulkload -i <文件名> -O <关系表名> -l <日志文件目录> -o "TYPE=CSV" -o "WRITER=PARALLEL" -d <数据库名> -U <用户名>

  10. 自动化导入,可用shell脚本或python脚本遍历目录

  11. 若不使用root用户执行pg_bulkload,注意需要将pg_bulkload要操作(读写)的目录加上所有用户最大权限,避免出错

实验过程遇到问题

  1. 编译pg_bulkload需要pg_config,一定要声明环境变量才能编译(编译安装pg_bulkload第一步);
  2. pg_bulkload和postgresql服务的版本需要匹配,若不匹配extension建立不成功
  3. 若不使用root用户执行pg_bulkload,需要将pg_bulkload要操作(读写)的目录加上所有用户最大权限,否则(Permission denied)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM