GP数据库gpload数据导入详细操作

ronpris
ronpris
ronpris
253
文章
1
评论
2020年4月18日15:12:26 评论 670 2141字阅读7分8秒

本篇文章主要介绍使用gpload进行数据导入操作流程

准备工作:
(1)GP数据库管理节点
(2)数据存储接口机
(3)gpfdist服务启动并开启9091端口
(4)保证数据存储接口机和数据库之前访问正常

一、先创建序列,用来作为记录gpload的审计记录的ID

--创建序列

create SEQUENCE gpload_ccdb_seq INCREMENT BY 1 MINVALUE 1 NO MAXVALUE START WITH 1;
select * from gpload_ccdb_seq ;

--创建审计表,记录每一次gpload执行的开始和结束事件信息

create table gpload_ccdb(
ID bigint,
STATE text,
mode text,
TABLENAME text,
UPDATETIME timestamp
) distributed by (ID);

2. 创建gpload加载数据的表,将数据导入的表

CREATE TABLE load_data(
id text,
name text,
company text,
school text,
date date
);

3. 创建yaml文件

在数据库管理节点master上创建目录/home/gpadmin/gp_ctl,并编写gpload需要的yaml格式的文件my_load.yml,内容如下:

VERSION: 1.0.0.1
DATABASE: ccdb
USER: chkuser
HOST: 10.127.161.1
PORT: 5432
GPLOAD:
INPUT:
- SOURCE:
LOCAL_HOSTNAME:
- inter01
PORT: 9091
FILE:
- gpload_dir/data_list.txt
- COLUMNS:
- id: text
- name: text
- company: text
- school: text
- date: date
- FORMAT: text
- DELIMITER: '|'
- ERROR_LIMIT: 25
- LOG_ERRORS: True
OUTPUT:
- TABLE: chkuser.load_data
- MODE: INSERT
SQL:
- BEFORE: "INSERT INTO chkuser.gpload_ccdb VALUES(nextval('gpload_ccdb_seq'), 'start', 'insert', 'chkuser.load_data', current_timestamp)"
- AFTER: "INSERT INTO chkuser.gpload_ccdb VALUES(nextval('gpload_ccdb_seq'), 'end', 'insert', 'chkuser.load_data', current_timestamp)"

备注my_load.yml中编写的信息分别是:
数据库连接信息
DATABASE: ccdb
USER: chkuser
HOST: 10.127.161.1
PORT: 5432
数据存储接口机
主机名:inter01
启动的gpfdist端口:9091
数据存储文件
gpload_dir/data_list.txt,此处要注意为何是gpload_dir目录下的文件,而不是/data/ftpdir/gpload_dir目录下的文件,是因为gpfdist再启动的时候会配置一个数据读取目录,配置的读取目录为/data/ftpdir/,所以这里只配置gpload_dir目录下的文件即可找得到对应数据文件
导入的表字段及类型
分隔符
错误日志
插入数据导入前后的审计表日志信息

4.数据存储接口机编写测试数据

在数据存储接口机inter01上编写测试数据文件,本次测试在10.127.161.10数据存储接口机的/data/ftpdir/gpload_dir目录下创建数据文件data_list.txt
内容如下:

111|222|333|444|2016-06-06
222|222|222|222|2016-06-07
333|333|333|333|2016-06-08
222|222|222|222|2016-06-07
333|333|333|333|2016-06-08
...

5.在数据库管理节点master上执行gpload -f my_load.yml查看执行结果如下

[gpadmin@mas01 gp_ctl]$ gpload -f my_load.yml
2020-04-17 17:00:15|INFO|gpload session started 2020-04-17 17:00:15
2020-04-17 17:00:17|INFO|started gpfdist -p 9091 -P 9092 -f "gpload_dir/data_list.txt" -t 30
2020-04-17 17:00:19|INFO|running time: 4.29 seconds
2020-04-17 17:00:20|INFO|rows Inserted = 23
2020-04-17 17:00:20|INFO|rows Updated = 0
2020-04-17 17:00:20|INFO|data formatting errors = 0
2020-04-17 17:00:20|INFO|gpload succeeded

6.至此gpload进行数据装载完成

继续阅读
[基础教程]Mysql单表查询优先级实例讲解 原创推荐

[基础教程]Mysql单表查询优先级实例讲解

这篇文章主要介绍了MySQL单表查询操作,结合实例形式详细分析了mysql单表查询的语法、约束、分组、聚合、过滤、排序等相关原理、操作技巧与注意事项,需要的朋友可以参考下 本文实例讲述了MySQL单表...
[基础教程]Linux系统常用文件管理命令 原创推荐

[基础教程]Linux系统常用文件管理命令

这篇文章主要介绍了linux文件管理命令,结合实例形式分析Linux文件管理的显示、查看、统计等相关操作命令使用技巧,需要的朋友可以参考下 本文实例讲述了linux文件管理命令。分享给大家供大家参考,...