GBase 8s
运维管理
文章

GBase8s dbload装载数据

发表于2025-11-10 15:12:2589次浏览2个评论

通过命令行方式装载数据,读取ASCII文件(明文),并装载到已经存在的表
 

 

,装载数据前需要额外创建控制文件,使用方式灵活,但是复杂度比load高。

一、语法

dbload [-d dbname] [-c cfilname] [-l logfile] [-e errnum] [-n nnum]

        [-i inum] [-s] [-p] [-r | -k] [-X]

 

        -d      数据库名

        -c      命令文件名(也叫控制文件名)

        -l      保存导入过程中失败的记录

        -e      导入失败多少条记录后退出

        -s      仅检查语法,不真正执行任务

        -n      批量提交记录数定义

        -p      失败情况:提交或者放弃

        -i      从文件第几行开始,默认为第一行记录

        -r      导入过程对表不加排他锁

        -X      识别16进制数据

        -k     导入过程对表加排他锁

 

二、控制文件

   FILE filename DELIMITER ‘|’ nfields;

   INSERT INTO tablename [(column) values (f01,f02,…)];

参数说明:

Filename 定义输入文件名。

‘|’ 分隔符号,这里为“|”,可以定义为其他的符号。

nfields 定义每行记录的列数。

tablename 定义导入的目的表。

[(column) values] 为可选项 f01为文件的第一列,依次类推。

 

三、应用命令

dbload -d demodb -c load_tab.ctl -l error.log -n 100000;

参数说明:

数据库名:demodb

控制文件名:load_tab.ctl

错误日志文件名:error.log

每次提交的数据条数:100000

四、性能

优点:

由于有容错能力,可以用来重复导入数据,已有记录保留不变,只增加新增记录。

可以指定分批提交记录数,从而能有效处理大数据量的表的导入。

对导入失败数据进行记录到指定文件中,可以帮助使用者快速找到有问题的记录信息。

可以指定文件记录开始行信息。

通过控制文件,灵活定义导入文件数据的格式。

缺点:

装载数据效率较低,不如unload/load。

需要创建控制文件,因此用法比unload/load复杂。

评论

登录后才可以发表评论
用户头像
levvel发表于 7个月前
学习一下
ljt98发表于 2个月前
厉害了