SinoDB数据库导入导出工具unload/load

  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三种途径来提高导入的速度。