本篇文章主要介绍使用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进行数据装载完成
继续阅读
评论