高性能加载
高性能加载(High Performance Loader,HPL)包括 onpload 命令、ipload 以及 onpload数据库,其中 onpload 命令是核心,ipload 和 onpladm 都调用
onpload 命令的工具。
HPL 导入数据分为两种模式:deluxe 高级模式和 express 快速模式。
高级模式是在表有索引和唯一键约束的情况下,自动更新索引和检查约束,进行快速地并行导入。使用单条记录 insert 方法来加载数据,处理索引和每一行数据时只对该数据进行加锁,目标表的其他行可以被同时访问。
快速模式能提供最高效的数据加载,通过使用 light-append,绕过缓冲池,进行更加快速的数据加载。但是
light-append 只能在满足非日志记录原始表(raw table)并且无索引的情况下才有效。使用快速模式加载数据时,系统自动对整张表加排它锁,因此其他用户对该表是不可访问的。
HPL 导出数据时不区分高级模式和快速模式。
使用 HPL 时,首先需要创建 HPL 任务(job),并定义该任务的具体操作,之后再运
行该任务,完成导入和导出。
使用 onpladm 创建 HPL 任务的语法如下:
onpladm create job jobname -d devicename -D databasedb -t tabname
–flu
其中 jobname 为该 HPL 任务的任务名,devicename 为设备路径,databasedb 为数据库名,tabname 为表明,-flu 为标识位,l 表示导入任务,u 表示导出任务。
当有多个相关任务时,可以把这些任务组织为项目(project)统一管理和运行。
使用 onpladm 创建 HPL 项目的语法如下:
onpladm create project projectname
其中 projectname 为项目名称。之后再定义此项目下的任务时,需要用-p 参数来制定
该任务所属的项目。
创建 HPL 任务的完整命令语法如下:
usage: onpladm create job <jobname> [-p <project>] -d
<device> -D <database>
-t <table> [-f[l[c|N]uadp]] [-z <formattype> | -n] [-T
<targetserver>]
[-S <onploadserver>] [-M <devicesize>] [-B
<blocksize>]
where,
-p 所属的项目名称
-d 设备名
-D 数据库名
-t 表明
-f 标识位
l 表示为导入操作,缺省为兼具导入和导出操作
c 表示运行模式为不去重的高级模式,缺省为快速模式
N 表示运行模式为去重的高级模式,缺省为快速模式
u 表示为导出操作
a 表示设备为设备阵列,缺省为文件
d 表示设备为磁带
p 表示设备为管道命令
-z 表示所使用的格式,缺省为分隔符模式
D 分隔符格式
FI 快速格式
FA means FIXED ASCII 格式
FB means FIXED BINARY 格式
C means COBOL 格式
CB means COBOL BYTE 格式
-n 不转换快速任务
-T 导入、导出的目标服务器
-S 包含 onpload 数据库的服务器
-M 如果设备是磁带,则指定设备的大小
-B 如果设备是磁带,则指定 block 的大小
HPL 任务创建之后就可以运行了,使用 onpladm 运行 HPL 任务的语法如下:
onpladm run job jobname -fu -l unload_logname.log
其中 jobname 是运行的任务名,-fu 的意义和创建时相同,l unload_logname.log 用于指定日志的名称。
运行 HPL 任务的完整命令语法如下:
usage: onpladm run job <jobname> -f[lu] [-p <project>]
[-l <logfile>] [-S
<onploadserver>] [-Z]
where,
-p 所属的项目名称
-f 标识位
l 表示为导入任务
u 表示为导出任务
-l 指定日志文件,缺省为标准输出
-S 包含 onpload 数据库的服务器
-Z 向磁带中读/写直到空间耗尽
运行项目的方式和运行任务类似。
以下例子为建立一个导入任务,运行后删除:
onpladm create job job01 -d /opt/info/test/thw_par_32_bsc.unl -D
niosdb -t
thw_par_32_bsc -flc -zD;
onpladm run job job01 -fl -l /opt/info/test/log.out
onpladm delete job job01 -fl
以下例子为,建立一个包含两个子导入任务的项目,运行后删除:
onpladm create project import_data1 ;
onpladm create job job01 -p import_data1 -d
/opt/info/test/thw_par_32_
bsc.unl -D niosdb -t thw_par_32_bsc -flc -zD;
onpladm create job job02 -p import_data1 -d
/opt/info/test/thw_par_6k_
service.unl -D niosdb -t thw_par_6k_service -flc -zD;
onpladm run project import_data1 -fl;
onpladm delete project import_data1;




