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