dmfldr快速载入载出工具

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模式实战

  1. 编辑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"
)
  1. 执行dmfldr载出,命令如下:

dmfldr.exe userid=SYSDBA/SYSDBA@localhost control='d:\data\f.ctl' mode='OUT'

----------------------以下为命令执行完成后的输出-------------------------

总共导出 4626432 行数据

用时:6511.113(ms)

1.3 IN模式实战

  1. 编辑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"
)
  1. 执行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/

你可能感兴趣的:(dmfldr快速载入载出工具)