用gpload装载数据
Greenplum的gpload
工具使用可读外部表和Greenplum并行文件服务器(gpfdist或者gpfdists
)来装载数据。它处理并行的基于文件的外部表设置并且允许用户在一个单一配置文件中配置他们的数据格式、外部表定义以及gpfdist或者gpfdists
设置。
Note: gpfdist
和gpload
仅与发布它们的Greenplum数据库主要版本兼容。 例如,与Greenplum Database 4.x一起安装的gpfdist
实用程序不能与Greenplum Database 5.x或6.x一起使用。
Note: 如果目标表列名是保留关键字,即包含大写字母,或者包含需要引号(“”)来标识列的任何字符,则不支持MERGE
和UPDATE
操作。
要使用gpload
- 确保环境已经设置好来运行
gpload
。一些来自于Greenplum数据库安装的依赖文件是必需的,例如gpfdist和Python,还有访问Greenplum的Segment主机的网络。详见Greenplum数据库参考指南。 - 创建装载控制文件。这是一个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)"
- 运行
gpload
,传入该装载控制文件。例如:
gpload -f my_load.yml
Parent topic: 装载和卸载数据