用gpload装载数据

用gpload装载数据

Greenplum的gpload工具使用可读外部表和Greenplum并行文件服务器(gpfdist或者gpfdists)来装载数据。它处理并行的基于文件的外部表设置并且允许用户在一个单一配置文件中配置他们的数据格式、外部表定义以及gpfdist或者gpfdists设置。
Note: gpfdistgpload仅与发布它们的Greenplum数据库主要版本兼容。 例如,与Greenplum Database 4.x一起安装的gpfdist实用程序不能与Greenplum Database 5.x或6.x一起使用。
Note: 如果目标表列名是保留关键字,即包含大写字母,或者包含需要引号(“”)来标识列的任何字符,则不支持MERGEUPDATE操作。

要使用gpload

  1. 确保环境已经设置好来运行gpload。一些来自于Greenplum数据库安装的依赖文件是必需的,例如gpfdist和Python,还有访问Greenplum的Segment主机的网络。

    详见Greenplum数据库参考指南

  2. 创建装载控制文件。这是一个YAML格式的文件,它指定Greenplum数据库连接信息、gpfdist的配置信息、外表选项和数据格式。

    详见Greenplum数据库参考指南

    例如:

    ---
    VERSION: 1.0.0.1
    DATABASE: ops
    USER: gpadmin
    HOST: mdw-1
    PORT: 5432
    GPLOAD:
       INPUT:
        - SOURCE:
             LOCAL_HOSTNAME:
               - etl1-1
               - etl1-2
               - etl1-3
               - etl1-4
             PORT: 8081
             FILE: 
               - /var/load/data/*
        - COLUMNS:
               - name: text
               - amount: float4
               - category: text
               - descr: text
               - date: date
        - FORMAT: text
        - DELIMITER: '|'
        - ERROR_LIMIT: 25
        - LOG_ERRORS: true
       OUTPUT:
        - TABLE: payables.expenses
        - MODE: INSERT
       PRELOAD:
        - REUSE_TABLES: true 
    SQL:
       - BEFORE: "INSERT INTO audit VALUES('start', current_timestamp)"
       - AFTER: "INSERT INTO audit VALUES('end', current_timestamp)"
    
  3. 运行gpload,传入该装载控制文件。例如:
    gpload -f my_load.yml