unload/load是最常使用的最简单的数据导入、导出工具,支持的数据格式为以固定分隔符(如“|”为默认的分隔符)分隔的文本文件。
1. unload 数据导出
使用方法如下:
unload to 'filename’ [DELIMITER ‘delimiter’] SELECT Statement;
其中:
- filename可以为全路径或者相对路径文件名:
- DELIMITER选项,定义数据列分隔符,默认为“|”;
- SELECT 项为 SQL 子句,可以是任何形式的SOL语句。这也是unload工具的优势,我们可以利用unload 导出任意 SOL语句执行的返回结果到文本文件中。
以下是unload导出数据示例:
- 导出单表数据,列分隔符使用【,】。
unload to ‘…/data/dept.unl’ delimiter ‘,’ select * from dept;
- 导出多表关联数据,列分隔符默认使用【|】。
unload to ‘…/data/unload_01.unl’
select a.f_employeeid, a.f_employeename, a.f_deptid, b.f_deptname, a.f_birthdate
from t_employee a, t_dept b
where a.f_deptid = b.f_deptid;
可以通过提高SQL语句的执行性能来提高 unload 导出数据的性能。如果导出数据较大,则在可以利用PDQ的情况下,设置PDQ的优先级,多线程并发执行SELECT,以加快SQL 的执行速度。
2. load数据导入
Load 是一种快速而简单的数据导入工具,但只支持特定数据格式的文本文件,数据列通过分隔符(默认为“|”)进行分隔。使用方法如下:
load from ‘filename’ delimeter ‘delimeter’ insert into Tablename/SynonymName/ViewName(column);
以下是使用load导入数据的示例:
- 加载单表数据,列分隔符为【,】。
load from ‘…/data/dept.unl’ delimiter ‘,’ insert into dept_01;
- 尝试加载通过多表关联导出的数据。
load from ‘/home/informix/data/employee_02_1.unl’ delimiter ‘|’ insert into t_employee_02(f_employeeid,f_employeename,f_deptid,f_birthdate);
在导入大量数据时,一般可以通过取消表的日志,临时使索引失效以及开启PDQ三种途径来提高导入的速度。