dmfldr (DM Fast Loader)是 DM 提供的快速数据装载命令行工具。dmfldr 工具能够把按照一定格式排序的文本数据以简 单、快速、高效的方式载入到DM 数据库中,或把DM 数据库中的数据按照一定格式写入文本文件。
控制文件control 是启动dmfldr 必须的要指定的参数,用于指定数据文件中数据的格式,在数据载入时,dmfldr 根据控制文件指定的dmfldr 会根据控件文件指定的格式来解析数据文件。在导出数据时,dmfldr 会根据控件文件指定的列分隔符、行分隔符等生成数据文件。
案例1:
1 、编辑数据文件
[dmdba@localhost fldr]$ cat fldrtest.txt
1,aaaaa,2022-04-21
2,bbbbb,
3,cccc,2021-11-11
2 、编写控制文件
[dmdba@localhost fldr]$ cat fldrtest.ctl
LOAD DATA
INFILE '/dm8/fldr/fldrtest.txt'
INTO TABLE TEST.FLDRTEST
FIELDS ','
3 、创建表
SQL> create table test.fldrtest(id int, name varchar(20), bir date);
4 、快速加载数据
[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123 control='/dm8/fldr/fldrtest.ctl'
[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123
control=\'/dm8/fldr/fldrtest.ctl\'
案例2 :大字段导入、导出
1 、建立有大字段的表
create table test.dtoutput(c1 int, c2 blob, c3 clob);
insert into test.dtoutput values(1,0XAB1211032DE,'THIS IS A dmfldr test');
insert into test.dtoutput
values(2,0XAB1211032DE,'werwerwr3cdsRWR');
insert into test.dtoutput
values(3,0XAB1211032DE,'REWRWRWCVDHGH');
COMMIT;
select * from test.dtoutput;
2 、创建控制文件
[dmdba@localhost fldr]$ cat dtfldr.ctl
LOAD DATA
INFILE '/dm8/fldr/dtfldr.txt'
INTO TABLE TEST.DTOUTPUT
FIELDS '|'
(C1,
C2,
C3)
3 、大字段导出
[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123 control=\'/dm8/fldr/dtfldr.ctl\' mode=\'out\'
4 、大字段导入--创建带大字段的表
create table test.dtinput(c1 int, c2 blob, c3 clob);
5 、大字段导入--创建控制文件
[dmdba@localhost fldr]$ cat dtfldr.ctl
LOAD DATA
INFILE '/dm8/fldr/dtfldr.txt'
INTO TABLE TEST.DTINPUT
FIELDS ' |'
(C1,
C2,
C3)
6 、大字段导入
[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123
control=\'/dm8/fldr/dtfldr.ctl\' lob_directory=\'/dm8/fldr\' mode=\'in\'
错误数据文件写入
[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123
control=\'/dm8/fldr/dtfldr.ctl\' lob_directory=\'/dm8/fldr\'
badfile=\'/dm8/fldr/test.bad\'
案例3:
1 、创建数据文件
[dmdba@localhost fldr]$ cat test2.txt
ID,NAME
1,AAAA
2,BBBB
3
4,dddddd
2 、创建表
create table test.t50(id int, name varchar(20));
3 、创建控制文件
[dmdba@localhost fldr]$ cat test2.ctl
options(
skip=1
)
LOAD DATA
INFILE '/dm8/fldr/test2.txt'
INTO TABLE TEST.T50
FIELDS ','
4 、加载数据
[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123 control=\'/dm8/fldr/test2.ctl\' badfile=\'/dm8/fldr/test2.bad\'
dmfldr 的使用存在以下一些限制:
Ø 不支持向临时表、外部表装载数据
Ø 不支持向系统表装载数据
Ø 不支持向带有位图索引的表装载数据
Ø 不支持向带有函数索引的表装载数据
Ø 不支持向带有全文索引的表装载数据
Ø 不支持向带有全局索引的表装载数据
Ø 不支持向代理装载数据
dmfldr 装载时,对约束进行检查,对各种约束的处理机制如下表所示: