Gpload安裝手冊(Linux版本)


Gpload安裝手冊(Linux版本)

一、python 2.7版本

Linux系統默認是安裝python2.7的,如果沒有需要手動安裝python版本要求2.4.4以上)

通過命令:python

查看Python版本信息,如下圖:

二、PyYAML包安裝

2.1安裝命令

安裝命令:pip install pyyaml

2.2 檢查安裝

輸入:python

輸入:import yaml

沒有報錯,則表示安裝成功,如下圖:

報錯則需要重新安裝;

如果pip命令安裝不上,則可以離線安裝;

3.3 離線安裝

安裝包下載地址:https://pypi.org/project/PyYAML/#files

下載Linux對應版本的PyYAML包;

將文件拷貝到Linux上,並解壓:tar -zxvf PyYAML-5.1.tar.gz

安裝命令:進入解壓后的文件夾,執行:python setup.py install 

三、greenplum-loaders安裝

3.1 greenplum-loaders下載

1)下載地址:https://network.pivotal.io/products/pivotal-gpdb/#/releases/280281

注意:版本選擇與Grennplum版本一致;

 

(2)查看Linux系統版本: cat /proc/version

 

(3)根據需安裝服務器的系統版本,選擇對應的版本:

 

3.2 greenplum-loaders安裝

1)解壓

Unzip greenplum-loaders-5.16.0-rhel7-x86_64.zip

解壓縮出來bin格式文件greenplum-loaders-5.16.0-rhel7-x86_64.bin

(2)運行

./greenplum-loaders-5.16.0-rhel7-x86_64.bin

中途提示是否接受協議,選擇yes

一路yes,安裝完成后自動跳到命令行;

注意:程序默認安裝/usr/local/路徑下,可根據自己想要安裝的路徑進行指定;

(3)vi ~/.bashrc

插入 source /usr/local/greenplum-loaders-5.16.0/greenplum_loaders_path.sh

生效命令 source ~/.bashrc

(4)如果安裝不是默認路徑,則需要更改/usr/local/greenplum-loaders-5.16.0/greenplum_loaders_path.shGPHOME_LOADERS改為你安裝的路徑;

(5)vi ~/.bash_profile

添加環境GP變量:

export PGDATABASE=addseg(數據庫)
export PGHOST=192.25.108.86(Master主機IP)
export PGPORT=5432(端口)
export PGUSER=gpadmin(用戶名)
export PGPASSWORD=123456(密碼)

 

生效命令 source ~/.bash_profile

(6)配置Greenplum master主機上的pg_hba.conf文件

為了讓Greenplum能夠接受此主機的遠程連接,需要配置Greenplum master主機上的pg_hba.conf文件,需要在其中添加一行表示此主機配置信息,格式為:

host   database   role   CIDR-address   authentication-method

host表示連接采用TCP/IP協議,database為此連接匹配的數據庫名(可以為all),role代表為此連接匹配的數據庫用戶(可以為all),CIDR-address代表當客戶端主機的IP地址和此值相匹配時建立連接,authentication-method代表授權方式,包括Trustmd5等方式,Trust代表只要連接即授權,md5代表需要密碼進行授權

命令:gpstop -u來讓其生效

例如:Vi /home/data/master/gpseg-1/pg_hba.conf

 

gpstop -u

四、greenplum-loaders 測試

4.1 建表

greenplum集群的master節點上,addseg數據庫中建立表t02

進去數據庫:

psql -d addseg

 

創建表:

create table t02 (
  id integer,
  name varchar(128)
);

4.2 創建txt數據文件

gpload服務器上建立臨時測試數據文件t21.txt:

vi t21.txt

內容:

1|aaa
2|zhangsan
3|wanger
4|mazi

4.3 創建yaml文件

vi t02.yaml

內容:

VERSION: 1.0.0.1
DATABASE: addseg
USER: gpadmin
HOST: 192.25.108.86
PORT: 5432
GPLOAD:
  INPUT:
    - SOURCE:
        LOCAL_HOSTNAME:
          - 192.25.105.188
        PORT: 55555
        FILE:
          - /home/gpload/data/t21.txt
    - COLUMNS:
        - id: int
        - name: text
    - FORMAT: text
    - DELIMITER: '|'
    - ERROR_LIMIT: 25
  OUTPUT:
    - TABLE: t02
- MODE: INSERT

Yaml配置參數說明:

VERSION: 1.0.0.1           #指定控制文件schema的版本
DATABASE: db_name      #指定連接數據庫的名字,如果沒有指定,由環境變量$PGDATABASE,或者通過gpload參數-d指定
USER: db_username       #指定連接目標數據庫的用戶名,如果不使用超級管理員,服務參數gp_external_grant_privileges必須設置成on
HOST: master_hostname  #指定master主機名,也可以通過gpload的-h選項,或者環境變量$PGHOST指定
PORT: master_port         #指定master的連接端口號,默認是5432,或者通過gpload命令的-p選項或者環境變量$PGPORT指定。
GPLOAD:                       #必須指定,表示裝載設置部分在它下面必須定義INPUT:和OUTPUT:兩個部分。
    INPUT:                      #必須指定,這部分指定裝載數據的格式和位置
        - SOURCE:            #必須指定,定義source文件的位置,每個輸入部分可以定義多個source部分
            LOCAL_HOSTNAME:    #指定gpload運行的主機名稱和ip地址,如果有多塊網卡,可以同時使用它們,提高裝載速度。默認只使用首選主機名和IP
                - hostname_or_ip
            PORT: http_port           #指定gpfdist使用的端口,也可以選擇端口范圍,由系統選擇,如果同時指定,port設置優先級| PORT_RANGE: [start_port_range, end_port_range]
            FILE:                      #指定裝載數據文件的位置,目錄或者命名管道。如果文件使用gpzip或者bzip2進行了壓縮,它可以自動解壓。可以使用通配符*和C語言風格的關系匹配模式指定多個文件
                - /path/to/input_file
        - COLUMNS:                 #指定數據源的數據格式,如果沒有指定這部分,source表的列順序,數量,以及數據類型必須與目標表一致
            - field_name: data_type
        - FORMAT: text | csv      #指定文件格式是text還是csv
        - DELIMITER: 'delimiter_character'  #指定文本數據域(列)之間的分割符,默認是|
        - ESCAPE: 'escape_character' | 'OFF'  #text定義轉義字符,text格式默認是\,在text格式中可以選擇off關掉轉義字符
        - NULL_AS: 'null_string'       #指定描述空值的字符串,text格式默認是\N,csv格式不使用轉義符號的空值
        - FORCE_NOT_NULL: true | false #csv格式,強制所有字符默認都用”“括起,因此不能有空值,如果兩個分割符之間沒有值,被當做0長度字符串,認為值已經丟失
        - QUOTE: 'csv_quote_character'  #csv指定轉義字符,默認是"
        - HEADER: true | false          #是否跳過數據文件第一行,當做表頭
        - ENCODING: database_encoding   #定數據源的字符集
        - ERROR_LIMIT: integer          #指定由於不符合格式數據記錄的上限,如果超過該上限,gpload停止裝載,否則正確記錄可以被裝載,錯誤記錄拋出寫入錯誤表。但它僅支持數據格式錯誤,不支持違背約束的問題
        - ERROR_TABLE: schema.table_name #指定不符合格式要求記錄的錯誤表。如果指定的表不存在系統自動創建
    OUTPUT:
        - TABLE: schema.table_name       #指定裝載的目標表
        - MODE: insert | update | merge   #指定操作模式,默認是insert。merge操作不支持使用隨機分布策略的表
        - MATCH_COLUMNS:                     #為update操作和merge操作指定匹配條件。
            - target_column_name            
        - UPDATE_COLUMNS:                    #為update操作和merge操作指定更新的列
            - target_column_name
        - UPDATE_CONDITION: 'boolean_condition'  #指定where條件,目標表中只有滿足條件的記錄才能更改,(merge情況下,只有滿足條件的記錄才能insert)
        - MAPPING:                            #指定source列和目標列的映射關系。
            target_column_name: source_column_name | 'expression'
    PRELOAD:                                 #指定load之前的操作
        - TRUNCATE: true | false        #如果設置成true,裝載之前先刪除目標表中所有記錄,再裝載
        - REUSE_TABLES: true | false  #設置成true,不會刪除外部表對象或者中間表對象。從而提升性能。
    SQL:
        - BEFORE: "sql_command"        #裝載操作開始前執行的SQL,比如寫日志表
        - AFTER: "sql_command"          #裝載操作之后執行的SQL

4.4 執行yaml文件

1gpload服務器上,執行ymal

輸入:gpload -f t02.yml

 

(2)greenplum集群的master節點,查看表數據:

 

安裝成功;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM