本文总结了 GBase8s 数据库常用的数据导入和导出工具和基本用法。
一. Unload/load
Unload/load 是最常用的简单的数据导入、导出工具,支持的数据格式以固定分隔符
(如”|”为默认的分隔符)分隔的文本文件。Unload/load 以 SQL 语句的方式来执行,如在
dbaccess 中执行,具体语法如下:
1. Unload 数据导出
Unload to ‘lename’ [delimiter ‘delimiter’] select statement
其中 lename 可以是全路径或者相对路径文件名;delimiter 可选,默认为“|”;select
项为 SQL 子句,可以是任何形式的 SQL 语句,这一特征也是 unload 工具的优势,我们可以
利用 unload 导出任意 SQL 语句执行的返回结果到文本文件中。
示例如下:
Unload to ‘/tmp/unload.log’ delimiter ‘:’ select * from t1;
2. Load 数据导入
Load from ‘lename’ delimiter ‘delimiter’ insert into
tablename/synonymname/viewname(column)
示例如下:
Load from ‘/tmp/unload.log’ delimiter ‘:’ insert into t1;
二. Dbload
Dbload 拥有容错机制,可以重复导入数据,保持已有数据不变,只增加新增记录;还
可以将导入失败的数据记录到指定文件中,帮助用户快速找到有问题的数据。
Dbload 的常用命令参数如下:
Dbload [-d dbname] [-c clename] [-l logle] [-n nnum]
-d:数据库名称
-c:命令文件的名称(也叫作控制文件的名称)
-l:保存导入过程中失败的记录
-n:批量提交记录数定义
其中,控制文件的语法为:
FILE lename DELIMITER ‘|’ nelds
INSERT INTO tabname [(column) values(f01,f02,…)]
Tabbane 定义导入的目录表,后面的[(column) values]为可选项,f01 为文件的第一列,
以此类推。
以下例子为像数据库 demodb 中的表 tab 导入数据,命令文件为 load_tab.ctl,日志文件
为 error.log,每次检查 10000 行数据,数据文件为 tab.unl,每行数据有 14 个字段:
Dbload –d demodb –c load_tab.ctl –l error.log –n 10000
其中控制文件 load_tab.ctl 的内容为:
File ‘tab.unl’ delimiter ‘|’ 14;
Insert into tab;
三. Dbexport/dbimport
在进行数据级别的迁移时,可以采用 dbexport/dbimport 来完成。
评论0