使用达梦数据dmfldr工具加载数据
使用达梦数据dmfldr工具加载数据
dmfldr(DM Fast Loader)是 DM 提供的快速数据装载命令行工具。用户通过使用dmfldr 工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格式写入文本文件。
使用步骤:
1. 建立控制文件
CONTROL 是启动 dmfldr 必须要指定的参数,用于指定数据文件中数据的格式。在数据载入时,dmfldr 根据控制文件指定的格式来解析数据文件;导出数据时,dmfldr 也会根据控制文件指定的列分隔符、行分隔符等生成数据文件。控制文件中还可以指定其他 dmfldr 参数值。
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE '/dm8/data/test1.txt' STR X '0A'
BADFILE '/dm8/data/test1.bad'
INTO TABLE test1
FIELDS '|'
(
F1,
F2 DATE FORMAT 'YYYY-MM-DD',
F3 NULL,
F4 TERMINATED BY WHITESPACE ENCLOSE BY '(',
F5 CONSTANT "test",
F6 "trim()"
)
LOAD DATA
INFILE '/dm8/data/test2.txt' STR X '0A'
BADFILE '/dm8/data/test2.bad'
INTO TABLE test2
FIELDS '|'
(
C1 TERMINATED BY ' ',
C2,
C3 DATE FORMAT 'yyyy-mm-dd'
)
2. 指定数据文件
当 dmfldr 工作在 IN 模式时,从数据文件中读取数据并载入数据库;当工作在 OUT模式时,从数据库中将指定数据导出到数据文件。
数据文件通常为文本文件,列与列之间由列分隔符隔开,行与行之间由行分隔符隔开。数据文件中的列分隔符和行分隔符由用户指定,并在控制文件中设置为与数据文件中的一致。
在控制文件中指定数据文件可以在控制文件的 LOAD 节点中指定数据文件。
例如:
1) 建表 TEST
DROP TABLE TEST;
CREATE TABLE TEST(C1 INT,C2 INT,C3 DATE);
| |
|
|
2) 编辑数据文件 test1.txt,存放路径为/dm8/data/test1.txt,文件内容如下
| |
|
|
3) 编辑控制文件 test1.ctrl,存放路径为/dm8/data/test1.ctrl,内容如下:
LOAD DATA
INFILE '/dm8/data/test1.txt'
INTO TABLE test
FIELDS '|'
(
C1 TERMINATED BY ' ',
C2,
C3 DATE FORMAT 'yyyy-mm-dd'
)
4) 使用 dmfldr 进行数据载入
./dmfldr userid=SYSDBA/[email protected]:5236 control=\'/dm8/data/test1.ctrl\'
| |
|
|
5)查询数据加载结果
| |
|
|
使用 DATA 参数指定数据文件
也可以使用 DATA 参数指定 dmfldr 的数据文件,数据文件路径的优先选择顺序为先控制文件,后参数选项。如果控制文件中数据文件路径指定为‘*’,在命令行通过 DATA参数指定数据文件路径,DATA 所指定的文件路径会替换‘*’。
例如:
1) 建表 TEST1
DROP TABLE TEST1;
CREATE TABLE TEST1(C1 INT,C2 INT,C3 DATE);
2) 编辑数据文件 test.txt,存放路径为/dm8/data/test.txt。
3) 编辑控制文件 test.ctrl,存放路径为/dm8/data/test.ctrl,内容如下:
LOAD DATA
INFILE *
INTO TABLE test1
FIELDS '|'
(
C1 TERMINATED BY ' ',
C2,
C3 DATE FORMAT 'yyyy-mm-dd'
)
4) 使用 dmfldr 进行数据载入
./dmfldr userid=SYSDBA/[email protected]:5236 control=\'/dm8/data/test.ctrl\' data=\'/dm8/data/test1.txt \'
5)查询装载数据目的表,数据已经存在。
dmfldr工具还支持对 DM 数据库的大字段类型数据的载入和导出,DM 数据库支持的大字段数据类型有 TEXT、LONGVARCHAR、IMAGE、LONGVARBINARY、BLOB 以及 CLOB。还支持自增列装载,数据排序,类类型等高级应用,限于篇幅,就不一一操作了。