1 快速载入载出工具
1.1 基本概念
1.1.1 dmfldr简介
dmfldr(DM Fast Loader)是 DM 提供的快速数据装载命令行工具。用户通过使用dmfldr 工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格式写入文本文件。相较于dexp和dimp的专用格式的导入导出,dmfldr更适合异构数据系统的数据快速、通用的数据交换方案。
1.1.2 使用场景
- 大表数据迁移
- 大表复制
- 大表数据快速备份
1.1.3 模式
Dmfldr命令行工具分为IN和OUT两种模式,IN模式用于数据载入,OUT模式用于数据载出。在使用方式上,大部分参数用法对于两种模式均适用,所以,很多时候我们可以用同一个参数配置文件(dmfldr称为控制参数文件)进行载入和载出工作。
1.1.4 基本语法
dmfldr USERID=****数据库连接信息 CONTROL=****控制参数文件 MODE=IN|OUT
USERID:其中USERID指定的数据库连接串和disql命令行工具的数据库连接串相似,例如:dmfldr USERID=SYSDBA/SYSDBA@localhost:5236 CONTROL=’d:\f.ctl’ MODE=’IN‘
控制参数文件内容:
OPTIONS
(
键=值
)
load
infile '载入载出数据文件路径'
str [X] '如str后有X选项,表示行分隔符为十六进制表示,如0A'
APPEND|REPLACE|INSERT
into table 模式.表名
fields '字段分隔符'
(
字段名1,
字段名2 DATE FORMAT 'YYYY-MM-DD',
字段名3 NULL,
字段名4 TERMINATED [X] ‘终止符’ ENCLOSE [X] '字符引用符',
字段名5 CONSTANT "test",
字段名6 "系统函数()"
……
)
控制参数文件说明:
- OPTIONS为可选参数,所有可用参数请使用dmfldr help命令进行了解。
- 具体字段名和字段数量根据实际情况填写。
- APPEND|REPLACE|INSERT:默认APPEND追加,REPLACE清空后写入,INSERT只允许空表或空文件写入
- 字段列表中:DATE FORMAT表示日期格式,NULL表示忽略数据文件字段值,TERMINATED表示可选的字段终止符号,[X]表示后面的字符是否为十六进制表示,ENCLOSE表示字符类型值的边界包围符,CONSTANT表示该字段写入指定常量值,系统函数()可选用trim()、replace(字段名,查找值,替换值)、sysdate函数
1.2 OUT模式实战
- 编辑d:\data\f.ctl控制参数文件,内容如下:
OPTIONS
(
ROWS=100000
INDEX_OPTION=2
)
load
infile 'd:\wd.txt'
str X '0A'
REPLACE
into table "TEST"."WEATHERDATA"
fields '|'
(
"LOG_DATE",
"TIME",
"STATION",
"TEMP",
"HUMIDITY",
"AIRPRESSURE",
"WIND",
"WEATHER",
"WINDDIRECTION"
)
- 执行dmfldr载出,命令如下:
dmfldr.exe userid=SYSDBA/SYSDBA@localhost control='d:\data\f.ctl' mode='OUT'
----------------------以下为命令执行完成后的输出-------------------------
总共导出 4626432 行数据
用时:6511.113(ms)
1.3 IN模式实战
- 编辑d:\data\f.ctl控制参数文件,内容如下:
OPTIONS
(
ROWS=100000
INDEX_OPTION=2
)
load
infile 'd:\wd.txt'
str X '0A'
REPLACE
into table "TEST"."WEATHERDATA"
fields '|'
(
"LOG_DATE",
"TIME",
"STATION",
"TEMP",
"HUMIDITY",
"AIRPRESSURE",
"WIND",
"WEATHER",
"WINDDIRECTION"
)
- 执行dmfldr导入,命令如下:
dmfldr.exe userid=SYSDBA/SYSDBA@localhost control='d:\data\f.ctl' mode='IN'
----------------------以下为命令执行完成后的输出-------------------------
目标表:TEST.WEATHERDATA
4626432 行加载成功。
由于数据格式错误,0行 丢弃。
由于数据错误,0行 没有加载。
跳过的逻辑记录总数:0
读取的逻辑记录总数:4626432
拒绝的逻辑记录总数:0
用时:18882.510(ms)
1.4 使用技巧
- DTS的【使用快速装载】选项无需进行复杂的命令行编辑即可快速轻松开始工作
- DTS的【使用快速装载】选项可以帮助工程师快速生成控制参数文件内容
- ROWS:在内存、CPU 允许的条件下,将该选项设置得稍大一些,有助于提高性能
- BDTA_SIZE:在内存、CPU 允许的条件下,增大该值能加快装载速度
- INDEX_OPTION:空表或原本表数据量很小时,设置为2;原有表数据量远大于插入数据量,设置为3;
https://eco.dameng.com/