暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8s 数据导入和导出(2)

孤独剑 2022-03-21
1410

高性能加载

高性能加载(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;



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论