达梦数据库的快速数据加工具dmfldr

  • Post author:
  • Post category:其他


达梦数据库的快速数据加工具dmfldr

dmfldr (DM Fast Loader)是 DM 提供的快速数据装载命令行工具。用户通过使用dmfldr 工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数 据按照一定格式写入文本文件。

dmfldr的系统架构

在这里插入图片描述

控制文件control是启动dmfldr 必须的要指定的参数,用于指定数据文件中数据的格式,在数据载入时,dmfldr 根据控制文件指定的 格式来解析数据文件。在导出数据时,dmfldr 会根据控件文件指定的列分隔符、行分隔符等生成数据文件。

快速加载示例 1:

1.1、编辑数据文件

[dmdba@localhost fldr]$ cat test.txt

1,aaaaa,2022-04-21

2,bbbbb,

3,cccc,2021-11-11

1.2、编写控制文件

[dmdba@localhost fldr]$ cat test.ctl

LOAD DATA

INFILE ‘/dm8/fldr/test.txt’

INTO TABLE TEST.TEST1

FIELDS ‘,’

1.3、创建表

SQL> create table TEST.TEST1(id int, name varchar(20), bir date);

1.4、快速加载数据(需要对’符号进行转义)

[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123

control=‘/dm8/fldr/fldrtest.ctl’

在这里插入图片描述

在这里插入图片描述

快速加载示例 2 :大字段导入、导出

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.2、创建控制文件

[dmdba@localhost fldr]$ cat dtfldr.ctl

LOAD DATA

INFILE ‘/dm8/fldr/dtfldr.txt’

INTO TABLE TEST.DTOUTPUT

FIELDS ‘|’

(C1,

C2,

C3)

2.3、大字段导出

[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123 control=‘/dm8/fldr/dtfldr.ctl’ lob_directory=‘/dm8/fldr’ mode=‘out’

2.4、大字段导入–创建带大字段的表

create table test.dtinput(c1 int, c2 blob, c3 clob);

2.5、大字段导入–创建控制文件

[dmdba@localhost fldr]$ cat dtfldr.ctl

LOAD DATA

INFILE ‘/dm8/fldr/dtfldr.txt’

INTO TABLE TEST.DTINPUT

FIELDS ’ |’

(C1,

C2,

C3)

2.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:

3.1、创建数据文件

[dmdba@localhost fldr]$ cat test2.txt

ID,NAME

1,AAAA

2,BBBB

3

4,dddddd

3.2、创建表

create table test.t50(id int, name varchar(20));

3.3、创建控制文件

[dmdba@localhost fldr]$ cat test2.ctl

options(

skip=1

)

LOAD DATA

INFILE ‘/dm8/fldr/test2.txt’

INTO TABLE TEST.T50

FIELDS ‘,’

3.4、加载数据

[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123 control=‘/dm8/fldr/test2.ctl’ badfile=‘/dm8/fldr/test2.bad’

dmfldr 的使用存在以下一些限制:

不支持向临时表、外部表装载数据

不支持向系统表装载数据

不支持向带有位图索引的表装载数据

不支持向带有函数索引的表装载数据

不支持向带有全文索引的表装载数据

不支持向带有全局索引的表装载数据

不支持向 DCP代理装载数据

dmfldr 装载时,对约束进行检查,对各种约束的处理机制如下表所示:

在这里插入图片描述



版权声明:本文为qq_42870851原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。