DM提供两种快速装载工具形式,功能完全一致,但应用场景不同:
dmldrc 为轻量级快速装载工具的客户端,负责初始化快速装载环境和数据处理功能;
dmldrp 为轻量级快速装载工具的服务器,负责任务处理和任务发送功能
dmldrp 和 dmldrc 只支持快速载入功能,不支持快速载出功能。
控制文件是启动 dmfldr 的必需参数,用于定义数据文件格式(载入时解析、导出时生成),还可指定其他工具参数。以下为核心内容:
[OPTIONS(
<id>=<value>
……
)]
LOAD [DATA]
INFILE < <file_option>|<directory_option> >
[BADFILE <path_name>]
[APPEND|REPLACE|INSERT]
<into_table_clause>
<id> ::=参数
<value> ::=值
<file_option> ::= [LIST] <path_name> [<row_term_option>] [,<path_name>
[<row_term_option>]]
<directory_option> ::= DIRECTORY <path_name> [<row_term_option>]
<path_name> ::=文件地址
<row_term_option> ::=STR [X] <delimiter>
<into_table_clause> ::= <into_table_single>{<into_table_single>}
<into_table_single> ::=INTO TABLE [<schema>.]<tablename>
[EP <ep_option>]
[WHEN <field_conditions>]
[FIELDS [TERMINATED BY] [X] <delimiter>]
[<enclosed_option>]
[TRAILING NULLCOLS]
[<coldef_option>]
<schema> ::=模式名
<tablename> ::=表名
<ep_option> ::=(<ep_list>)
<ep_list> ::=整型数字列表,以逗号分隔
<field_conditions> ::= <field_condition>{ AND <field_condition>}
<field_condition> ::= [(] <cmp_exp><cmp_ops><cmp_data>[)]
<cmp_exp> ::= <colid> | (p1:p2)
<cmp_ops> ::= = | <> | !=
<cmp_data> ::= [X] '<字符串常量>' | BLANKS | WHITESPACE
<delimiter> ::= '<字符串常量>'
<coldef_option> ::= (<col_def>{ ,<col_def>})
<col_def> ::= <col_id> [FILLER][<property_option>][<dtype_option>][<fmt_option>][<term_option>][<enclosed_option>][<constant_option>][<fun_option>]
<col_id> ::= 列名
<property_option> ::= <position_option> | NULL
<position_option> ::= position(p1:p2) | position(p1) | position(*)
<dtype_option> ::= DATE | CHAR
<fmt_option> ::= FORMAT '<日期格式>'
<term_option> ::= TERMINATED [BY] <wx_option>
<wx_option> ::= WHITESPACE|[X] <delimiter>
<enclosed_option> ::= [OPTIONALLY] ENCLOSE [BY] [X] <delimiter>
<constant_option> ::= CONSTANT "<常量>"
<fun_option> ::= "<函数>"
dmfldr 支持以下三种方式指定数据文件,仅需选择其中一种即可:
建表
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行数据载入。
使用 DATA 参数指定 dmfldr 的数据文件,用户可以在命令行中直接指定 DATA 参数。
在 dmfldr.ini 配置文件中指定 DATA 参数,如果控制文件中数据文件路径指定为‘**’,那么会使用命令行或 dmfldr.ini 配置文件中指定的 DATA 参数来替换‘’
优先使用命令行中指定的 DATA 参数进行替换。
建表
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行数据载入。
dmfldr 处理的文本数据文件中,列值以字符串形式存储,需转换为数据库表对应列的数据类型。支持转换的数据库列类型包括:
字符串类型
数值类型
时间日期类型
时间日期间隔类型
大字段类型(如 BLOB、CLOB 等)
若数据文件编码与 DM 数据库服务器编码不一致,dmfldr 会自动进行编码转换,支持的编码类型包括:
UTF-8
GBK
GB18030
(支持三者之间的相互转换)
数据类型或编码转换过程中可能出现的错误包括:
编码转换失败:数据文件编码与目标编码不兼容。
字符串类型列错误:数据长度超过列定义的长度限制。
数值类型列错误:数据包含非法字符(如非数字字符)或转换后超出数值范围。
日期类型列错误:数据格式不符合默认解析格式(yyyy-mm-dd hh:mi:ss),且未通过 fmt 选项指定正确格式。
错误数据处理分为
1. 错误文件路径(BADFILE)
默认路径:fldr.bad。
指定方式(优先级从高到低):
命令行参数;
控制文件的 LOAD 节点选项;
控制文件的 OPTIONS 选项;
dmfldr.ini 配置文件参数。
作用范围:仅 IN 模式(数据载入)有效,OUT 模式(数据导出)无效。
2. 错误文件内容
执行程序信息;
时间;
目标表;
数据文件中格式错误的行数据;
具体转换错误信息。
3. 最大容错数(ERRORS 选项)
取值范围:[0, 4294967295](整数),默认值为 100。
规则:
错误数 ≤ ERRORS:错误行记录到 BADFILE,正确数据提交;
错误数 > ERRORS:停止载入,已处理的正确数据提交;
ERRORS=0:不允许任何错误,出现错误立即停止;
ERRORS=极大值(如 4294967295):允许所有错误,仅记录不中断。
数据载入流程
dmfldr 客户端完成数据转换(数据转换、编码转换)后,将转换正确的数据发送至 DM 服务器端的 dmfldr 模块,由其执行实际的数据载入操作。
服务器端插入错误处理
服务器端在插入数据过程中,若因表约束(如唯一约束、外键约束等)导致部分或全部数据无法插入成功,服务器端会将当前批次的所有数据整体回滚。
数据全部被记录为错误数据,服务器端插入失败的错误数据不会记录到 BADFILE 文件中。
服务端ERRORS 所统计的错误包含在数据转换和数据插入过程中所产生的数据错误,服务端插入错误记录加上客户端转换错误数据数超过指定值,服务端通知插入数据。
dmfldr 支持对 DM 数据库的大字段类型数据的载入和导出,DM 数据库支持的大字段数据类型有 TEXT、LONGVARCHAR、IMAGE、LONGVARBINARY、BLOB 以及 CLOB。
当 dmfldr 工作在导出模式即 MODE 为 OUT 时,dmfldr 生成大字段对应的数据文件名由 LOB_FILE_NAME 指定,若未指定默认为 dmfldr.lob,文件存放于 LOB_DIRECTORY 指定的目录,如果未指定 LOB_DIRECTORY 则存放于指定的导出数据文件同一目录。
建表
插入数据
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行导出数据
当 MODE=IN 且 DIRECT=TRUE 时,大字段载入需注意:
CLIENT_LOB=TRUE:需通过 LOB_DIRECTORY 指定客户端本地大字段文件目录,且大字段长度≤2G;
CLIENT_LOB=FALSE:需先将大字段文件传至DM服务器主库机器,再通过 LOB_DIRECTORY 指明服务器端目录;
数据文件中大字段以 文件名:起始偏移:长度 格式记录,若文件名无效或CLOB类型偏移/长度内含不完整字符,装载失败。
例 1 展示 DIRECT 为 TRUE,CLIENT_LOB 为 TRUE 时大字段数据的载入。
建表 TEST
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为 DM 客户端所在机器上的/home/dmdba/test.ctl,文件内容如下:
使用 dmfldr 进行导入数据
例 2 展示 DIRECT 为 TRUE,CLIENT_LOB 为 FALSE 时大字段数据的载入。
建表 TEST
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
其中,testblob.txt、testclob.txt 为文本文件,长度大于 30 字节,存放路径为 DM 服务器主库所在机器(192.168.123.1)上的D:/DM目录下
编辑控制文件 test.ctl,存放路径为 DM 客户端所在机器上的/home/dmdba/test.ctl,文件内容如下:
使用 dmfldr 进行导入数据
当 MODE=IN 且 DIRECT=FALSE 时,大字段处理规则:
大字段数据直接作为字段内容,长度限制≤32KB;
BLOB_TYPE 参数指定BLOB列内容格式(仅 DIRECT=FALSE 有效,默认 HEX_CHAR):
HEX_CHAR:数据文件中BLOB列存储为十六进制内容;
HEX:数据文件中BLOB列存储为字符串,导入后自动转换为十六进制;
注意:若导出数据文件来自包含BLOB列的表,导入时不可指定 BLOB_TYPE=HEX_CHAR。
建表
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行导出数据
例 2 展示 BLOB_TYPE 为 HEX 时的数据装载。
使用 dmfldr 进行导入数据,BLOB_TYPE 为 HEX
dmfldr 日志文件路径由 LOG 参数设置(默认文件名 fldr.log),记录装载过程信息、错误信息及统计信息。用户可通过控制文件的 OPTIONS 选项自定义日志路径,若 LOG 参数与 OPTIONS 同时指定,以 OPTIONS 中设置的路径为准。
建表 TEST
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行数据载入
查看日志文件/home/dmdba/test.log,其内容如下:
dmfldr: 2025-06-20 21:27:01 控制文件:
加载行数: 全部
每次提交服务器行数: 50000
跳过行数: 0
允许错误数: 100
是否直接加载: Yes
是否插入自增列: No
数据是否已按照聚集索引排序: No
字符集: UTF-8
dmfldr: 2025-06-20 21:27:01 SYSDBA->TEST
数据文件共1个:
/home/dmdba/test.txt
错误文件: fldr.bad
目标表: TEST
列名 包装数据类型 终止
C1 CHARACTER |
C2 CHARACTER WHT
C3 yyyy-mm-dd |
行缓冲区数量: 2
任务线程数量: 1
dmfldr: 2025-06-20 21:27:01 SYSDBA->TEST
目标表: TEST
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。
跳过的逻辑记录总数: 0
读取的逻辑记录总数: 3
拒绝的逻辑记录总数: 0
2.333(ms)已使用
自增列需严格保证数据库中值的正确性,数据载入时需特别注意处理方式。
DIRECT=FALSE:
dmfldr 直接将数据文件中的自增列值作为目标值插入数据库。用户需确保每一行的自增值符合自增规则(如无重复、递增等),否则可能导致数据混乱。
DIRECT=TRUE:
通过 SET_IDENTITY 参数控制自增列处理逻辑(默认 FALSE):
SET_IDENTITY=TRUE:dmfldr 将数据文件中的自增值作为目标值插入,用户需确保值符合自增规则;
SET_IDENTITY=FALSE:dmfldr 忽略数据文件中的自增值,服务器根据自增列定义及表中已有数据自动生成新值插入。
DMDPC 环境下暂不支持自增列的数据装载操作
建表 TEST,并插入两行数据
此时表 TEST 中的数据为:
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行数据载入
在这个例子中,表 TEST 中已有两行数据,由于 SET_IDENTITY 置为 FALSE,因此在数据载入时 dmfldr 根据 C1 列的定义和表中已有数据,为 C1 列重新插入合适的值。
例 2 展示 SET_IDENTITY 置为 TRUE 时的装载
使用 dmfldr 进行数据载入
SORTED 用于标识数据是否已按表的聚集索引排序,默认值为 FALSE(未排序)。
SORTED=TRUE:
用户需确保数据文件中的数据已按聚集索引排序,且新增数据的索引值大于表中现有数据的索引值(保证顺序插入)。
若数据未排序,dmfldr 直接报错,装载失败。
分区表特殊处理:可能全部成功(子表数据排序正确),或部分成功/失败(dmfldr 报错)。
SORTED=FALSE(默认):
服务器对每条记录逐条定位插入(无顺序要求)。
仅生效场景:MODE=IN 且 DIRECT=TRUE 时有效。
性能建议:数据量大且确认数据已按聚集索引排序时,设置 SORTED=TRUE 可提升装载性能(避免逐条定位)
建表 TEST
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行数据载入
文件中的数据并没有按照 C1 列排序,dmfldr 将会报错
dmfldr 通过设置 NULL_MODE 参数来处理空值。
NULL_MODE =TRUE
载入时 NULL 字符串处理为 NULL,载出时空值处理为 NULL 字符串
NULL_MODE=FALSE
载入时 NULL 字符串处理为字符串,载出时空值处理为空串
建表 TEST
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行数据载入。
TEST 的数据,数据文件中 C2 列的“NULL”和“null”字符串都被处理为空值
展示 null_mode 为 false 时的空值处理
使用 dmfldr 进行数据载入
TEST 的数据,数据文件中 C2 列的“NULL”和“null”字符串直接被作为字符串值插入表中
需指定 LOB_DIRECTORY(大字段文件所在目录),并设置 ENABLE_CLASS_TYPE=TRUE(启用 CLASS 类型支持)。
导出时
默认设置:导出目录与数据文件所在目录一致;导出的 CLASS 类型大字段文件默认命名为 dmfldr.lob。
自定义设置:可通过 LOB_DIRECTORY 指定导出目录,通过 LOB_FILE_NAME 指定大字段文件名。
CLASS 类型的大字段数据文件无法手动创建,仅能通过从数据库表中导出生成,且导入时需使用数据文件中 CLASS 字段对应的偏移和字长信息。
举例 建表 TEST
22:20:28 SQL> //类头创建
CREATE CLASS mycls
AS
TYPE rec_type IS RECORD (c1 INT, c2 INT); //类型声明
id INT; //成员变量
r rec_type; //成员变量
FUNCTION f1(a INT, b INT) RETURN rec_type; //成员函数
FUNCTION mycls(id INT , r_c1 INT, r_c2 INT) RETURN mycls;//用户自定义构造函数
END;
/
//类体创建
CREATE OR REPLACE CLASS BODY mycls
AS
FUNCTION f1(a INT, b INT) RETURN rec_type
AS
BEGIN
r.c1 = a;
r.c2 = b;
RETURN r;
END;
FUNCTION mycls(id INT, r_c1 INT, r_c2 INT) RETURN mycls
AS
BEGIN
this.id = id; //可以使用this.来访问自身的成员
r.c1 = r_c1; //this也可以省略
r.c2 = r_c2;
RETURN this; //使用return this 返回本对象
END;
END;
/
//建表TEST
DROP TABLE TEST;
CREATE TABLE TEST(C1 INT,C2 mycls);
//插入数据:
INSERT INTO TEST VALUES(1,mycls(1,1,1));
INSERT INTO TEST VALUES(2,mycls(2,2,2));
COMMIT;2 3 4 5 6 7 8 9 10 操作已执行
已用时间: 12.179(毫秒). 执行号:8818.
22:20:29 SQL> 22:20:29 SQL> 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 操作已执行
已用时间: 5.545(毫秒). 执行号:8819.
22:20:29 SQL> 22:20:29 SQL> 2 操作已执行
已用时间: 12.633(毫秒). 执行号:8820.
22:20:29 SQL> 操作已执行
已用时间: 2.207(毫秒). 执行号:8821.
22:20:29 SQL> 2 影响行数 1
已用时间: 0.834(毫秒). 执行号:8822.
22:20:29 SQL> 影响行数 1
已用时间: 0.390(毫秒). 执行号:8823.
22:20:29 SQL>
操作已执行
已用时间: 3.106(毫秒). 执行号:8824.
22:20:32 SQL>
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行数据导出
在指定的 LOB_DIRECTORY 目录会生成大字段文件 dmfldr.lob,在指定的数据文件路径生成的数据文件内容如下:
创建一张新表 TEST2,表的两列都为 mycls 类类型
编辑数据文件 test2.txt,存放路径为/home/dmdba/test2.txt,文件内容如下:
使用 dmfldr 进行数据导入
查看表 TEST2 的数据
通过在控制文件中指定 WHEN<field_conditions> 子句,可在数据装载过程中过滤数据,仅符合条件(field_conditions)的数据会被装载。
注意要点:
1.仅支持比较相等(=)、不相等(!=、<>)三种操作符。
2.多个过滤条件仅能用 AND 连接。
3.BLANKS 和 WHITESPACE 均表示若干连续空格。
4.表达式(p1:p2):
与 POSITION 子句中的意义一致,表示从数据文件当前行的 p1 到 p2 字节位置(包含边界)提取数据用于比较。
5.colid 表达式:
若 colid 对应列未在 INTO 表的 coldef_option 中说明,会导致错误。
若 colid 仅用于过滤(非表中实际列),需在 col_def 中通过 FILLER 属性标记,装载时跳过该列。
6.常量:
字符常量:若长度小于比较表达式长度,末尾补充空格。
二进制串常量:若长度小于比较表达式长度,末尾补充 0。
建表 TEST
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下
使用 dmfldr 进行数据载入
TEST 的数据,可以看到数据文件中的行 2,3 被过滤掉
通过控制文件中指定多个 INTO TABLE 子句,可同时将数据装载至多个目标表,每个子句支持独立设置 WHEN 过滤条件、FIELDS 子句及列定义
1.每个 INTO TABLE 子句的目标表必须是不同的表;
2.多表装载时不支持直接装载分区表子表;
3.对于第二个及其之后的 INTO TABLE 子句,在其 coldef_option 中,必须为第一列指定 POSITION 选项;
建表 TEST1、TEST2
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行数据载入
用户通过设置 dmfldr 的 SKIP、LOAD、ROWS 参数,可以根据自己的需求调整装载的起始行、装载最大行数以及每次提交的行数。
SKIP
设置跳过数据文件起始的逻辑行数(整型)。
默认值:0(不跳过任何行)。
若首个文件的行数不足 SKIP 指定值,dmfldr 会自动扫描后续文件,直至累计跳过行数达到 SKIP 或所有文件扫描完毕。
LOAD
设置本次装载的最大行数(整型)。
默认值:数据文件的全部行数(即装载所有未被跳过的行)。
LOAD 统计的行数不包含 SKIP 跳过的行数。
ROWS
设置每次向服务器提交的成功行数(整型)。
默认值:50000 行(平衡提交频率与性能)。
提交的行数不严格对应数据文件中的顺序行数(可能因过滤或错误跳过部分行)。
模式限制:仅 MODE=IN(数据载入)时有效,MODE=OUT(数据导出)时无效。
建表 TEST
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt,文件内容如下:
编辑控制文件 test.ctl,存放路径为/home/dmdba/test.ctl,内容如下:
使用 dmfldr 进行数据载入
TEST 的数据,载入时跳过了数据文件的前 3 行数据,且只载入了 5 条数据。
dmfldr 支持主备切换完成后自动继续装载数据,并且能保持数据正确。
要使用此项功能,USERID 参数需要使用主备服务名方式进行配置,例如:
dmfldr USERID=SYSDBA/Dmsys_123@dw CONTROL='c:\fldr.ctl'
同时在 dm_svc.conf 配置文件中配置主备服务名,例如:
dw=(192.168.0.101:5236, 192.168.0.102:5236)
目前主备切换时的数据继续载入功能还存在以下功能限制:
1.目前仅支持单机的主备,不支持 MPP 主备。但是,若在 MPP 主备环境中使用 MPP_CLIENT=FALSE,等同于单机,也是支持的。
2.目前不支持分区表装载。
MPP_CLIENT 用于设置 DM MPP 环境下 dmfldr 数据装载时的数据分发方式,仅在 MPP 环境生效(单站点环境无效)。
MPP_CLIENT=TRUE(客户端分发模式):
数据在 dmfldr 客户端完成分发后,直接发送至指定站点。
MPP_CLIENT=FALSE(本地分发模式):
导入场景:数据仅发送至 dmfldr 连接的站点,最终存储于该站点。
导出场景:仅导出 dmfldr 连接站点的数据(不涉及其他站点)。
MPP 环境下要配置 dmmal.ini 文件中的 MAL_INST_HOST 和 MAL_INST_PORT 参数。
过调整以下参数可优化 dmfldr 装载性能,具体参数作用及调整建议如下:
BUFFER_NODE_SIZE(缓冲区页大小):
功能:控制读取文件的缓冲区页大小,值越大,单次读取数据量及发送至服务器的数据量越多,效率越高。
限制:受限于 dmfldr 客户端内存大小。
READ_ROWS(处理行数限制):
功能:限制单次处理的行数(若 BUFFER_NODE_SIZE 读取的行数过大,可用此参数限制)。
实际生效值:取 READ_ROWS 与 BUFFER_NODE_SIZE 中的较小值。
SEND_NODE_NUMBER(发送节点数):
功能:指定数据载入时发送节点的个数(默认由系统计算初始值)。
优化建议:系统内存充足时,增大此值可提升载入性能。
TASK_THREAD_NUMBER(处理线程数):
默认值:通常为系统 CPU 个数(若 CPU>8,默认置为 8)。
优化建议:客户端所在机器 CPU>8 时,增大此值可提升处理性能。
BLDR_NUM(水平分区 BLDR 最大数):
默认值:64(BLDR 用于保存水平分区子表信息)。
注意:设置过大可能导致服务器内存不足;实际需要的 BLDR 数超上限时,会淘汰旧子表 BLDR 并替换为新子表 BLDR。
BDTA_SIZE(批量数据大小):
默认值:5000(DM 批量数据处理机制中的单批数据量)。
优化建议:内存/CPU 允许时增大此值可加快装载速度;网络为瓶颈时影响较小。
索引策略参数(INDEX_OPTION)
可选值:1、2、3(默认 1),根据目标表数据量选择:
1:装载时不刷新二级索引,先排序数据,装载完成后插入索引(适用于目标表已有较多数据的场景)。
2:装载过程中不刷新二级索引,装载完成后重建所有索引(适用于目标表无数据或数据量小的场景)。
3:装载时追加插入二级索引(非 DPC 环境下可同步插入全局索引),适用于原有数据量远大于插入数据量的场景。
不支持向临时表、外部表装载数据
不支持向系统表装载数据
不支持向带有位图索引的表装载数据
不支持向带有全文索引的表装载数据
不支持向 DCP 代理装载数据
不支持在 DPC 环境下,向带有全局索引的表装载数据
仅支持在 index_option=2 的情况下向带有函数索引的表装载数据
对象表暂不支持快速装载
dmfldr 装载时会对约束进行检查,对各种约束的处理机制如下表所示;由于 dmfldr 不处理约束的有效性,都视为有效,故需要用户自行处理约束有效性等相关内容
dmldrp 和 dmldrc 只支持快速载入功能,不支持快速载出功能。
DM 数据库管理系统安装后,dmldrp 执行文件位于安装目录的 bin 子目录下。
dmldrp keyword=value(keyword 为参数名,value 为参数值)
例 启动一个端口号为 9898 的 dmldrp
./dmldrp.exe port=9898
用户可以使用“dmldrp help”查看 dmldrp 版本信息和各参数的简单信息
./dmldrp help
dmldrp V8
格式: ./dmldrp KEYWORD=value
例程: ./dmldrp
关键字 说明
---------------------------------------------------------------------
PORT 端口号(可选项, 默认为8336)
HELP 打印帮助信息
dmldrp 的端口号,用于 dmldrp 和 dmldrc 之间的通信连接。取值范围为 1024~65534。可选配置,不配置则使用默认的端口 8336。
DM 数据库管理系统安装后,dmldrp 执行文件位于安装目录的 bin 子目录下。
dmldrc keyword=value [keyword=value ...]
./dmldrc help
version: 03134284345-20241118-250270-10000
格式: ./dmldrc KEYWORD=value
例程: ./dmldrc SYSDBA/Dmsys_123 192.168.0.1:8336
USERID 必须是命令行中的第一个参数
SERVER 必须是命令行中的第二个参数
字符串类型参数必须以引号封闭
关键字 说明(默认值)
--------------------------------------------------------------------------------
USERID 用户名/口令
格式: {<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>]
参数:
<connect_identifier> ::= [<svc_name> | host[:port] | <unixsocket_file>]
<option> ::= #{<extend_option>=<value>[,<extend_option>=<value>]...}
<os_auth> ::= AS { SYSDBA | SYSSSO | SYSAUDITOR | USERS | AUTO }
示例: SYSDBA/Dmsys_123@192.168.1.64:5236
注意: option参数的{}是为了封装参数之用,书写时需要保留
SERVER dmldrp的IP地址和端口号。不需要指定参数名,直接指定host[:port]
CONTROL 控制文件,字符串类型
LOG 日志文件,字符串类型 (fldr.log)
BADFILE 错误数据记录文件,字符串类型 (fldr.bad)
SKIP 初始忽略逻辑行数 (0)
LOAD 需要装载的行数 (ALL)
SET_IDENTITY 是否插入自增列 (FALSE)
SORTED 数据是否已按照聚集索引排序 (FALSE)
INDEX_OPTION 索引选项 (1)
1 不刷新二级索引,数据按照索引先排序,装载完后再
将排序的数据插入索引
2 不刷新二级索引,数据装载完成后重建所有二级索引
3 刷新二级索引, 数据装载的同时将数据插入二级索引
ERRORS 允许的最大数据错误数 (100)
CHARACTER_CODE 字符编码,字符串类型 (GBK, UTF-8, SINGLE_BYTE, EUC-KR)
MODE 装载方式,字符串类型 IN表示载入,OUT表示载出,
OUTORA表示载出ORACLE (IN)
CLIENT_LOB 大字段目录是否在本地 (FALSE)
LOB_DIRECTORY 大字段数据文件存放目录
LOB_FILE_NAME 大字段数据文件名称,仅导出有效 (dmfldr.lob)
BUFFER_NODE_SIZE 读入文件缓冲区的大小 (10MB),有效值范围1~2048
LOG_SIZE 日志信息缓冲区的大小 (1MB),有效值范围1~100
READ_ROWS 工作线程一次最大处理的行数 (100000),最大支持2^26-10000
NULL_MODE 载入时NULL字符串是否处理为NULL
载出时空值是否处理为NULL字符串 (FALSE)
NULL_STR 载入时视为NULL值处理的字符串
SEND_NODE_NUMBER 运行时发送节点的个数 (20),有效值范围16~65535
TASK_THREAD_NUMBER 处理用户数据的线程数目,默认与处理器核数量相同,有效值范围1~128
BLDR_NUM 服务器BLDR数目 (64),有效值范围1~1024
BDTA_SIZE bdta的大小 (5000),有效值范围100~10000
COMPRESS_FLAG 是否压缩bdta (FALSE)
MPP_CLIENT MPP环境,是否本地分发 (TRUE)
SINGLE_FILE MPP/DPC环境,是否只生成单个数据文件(FALSE)
LAN_MODE MPP/DPC环境,是否以内网模式装载数据(FALSE)
UNREP_CHAR_MODE 非法字符处理选项(0),为0时表示跳过该数据行,为1时表示使用(*)替换错误字节
SILENT 是否静默方式装载数据(FALSE)
OCI_DIRECTORY OCI动态库所在的目录
DATA 指定数据文件路径
ENABLE_CLASS_TYPE 允许用户导入CLASS类型数据 (FALSE)
FLUSH_FLAG 提交时是否立即刷盘 (FALSE)
SINGLE_HLDR_HP 是否使用单个HLDR装载HUGE水平分区表 (TRUE)
EP 指定需要发送数据的站点序号列表,仅向MPP/DPC环境导入数据时有效
PARALLEL 是否开启并行装载(FALSE)
SQL 使用自定义查询语句,仅导出模式有效
TABLE 导入/出表
ROW_SEPERATOR 行分隔符
FIELD_SEPERATOR 列分隔符
COMMIT_OPTION 提交选项(0), 0:每发送一批数据后提交, 1:发送完所有数据后提交
APPEND_OPTION 追加选项(0), 0: 追加方式, 1: 替代方式, 2: 插入方式
COLNAME_HEADING 是否在导出文件头中打印列名(FALSE)
IGNORE_AIMLESS_DATA 是否忽略无目标数据(FALSE)
LOB_AS_VARCHAR 是否将CLOB作为VARCHAR进行导入导出(FALSE)
LOB_AS_VARCHAR_SIZE 将CLOB作为VARCHAR进行导入导出时, lob数据最大大小(10MB)
LOG_LEVEL 记录错误数据信息级别(3), 0: 不记录 1: 只记录到log文件 2: 只记录到bad文件 3: 记录到log和bad文件
FLDR_INI 配置文件路径,字符串类型
RECONN 自动重连次数(0)
RECONN_TIME 自动重连等待时间(5), 单位(s), 有效值范围(1~10000)
PLOG ldrp日志文件,字符串类型 (ldrp.log)
COMPATIBLE_MODE 兼容模式(0), 0: 不做兼容, 1: 兼容DB2, 2: 兼容MYSQL
PRIORITY_ENCLOSE DB2模式下, enclose优先级最高
HELP 打印帮助信息
使用 dmldrp 和 dmldrc 工具将数据快速装载进 test 表
建表 test(Windows 192.168.123.1 服务器操作)
编辑数据文件 test.txt,存放路径为/home/dmdba/test.txt(Windows 192.168.123.1 服务器操作),文件内容如下:
编辑控制文件 test.ctl,存放路径为/opt/data/test.ctl,内容如下:
启动 dmldrp 服务器
使用 dmldrc 进行数据载入
达梦社区地址 https://eco.dameng.com
文章
阅读量
获赞