一、简介
dmfldr(DM Fast Loader)是 DM 提供的快速数据装载命令行工具。用户通过使用dmfldr 工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格式写入文本文件。
二、用法说明
./dmfldr help
格式: ./dmfldr KEYWORD=value
例程: ./dmfldr SYSDBA/SYSDBA CONTROL=’/opt/data/fldr.ctl’
USERID 必须是命令行中的第一个参数
CONTROL 必须是命令行中的第二个参数
字符串类型参数必须以引号封闭
| 关键字 | 说明(默认值) |
|---|---|
| USERID | 用户名/口令 格式:{
|
| CONTROL | 控制文件,字符串类型 |
| LOG | 日志文件,字符串类型 (fldr.log) |
| BADFILE | 错误数据记录文件,字符串类型 (fldr.bad) |
| SKIP | 初始忽略逻辑行数 (0) |
| LOAD | 需要装载的行数 (ALL) |
| ROWS | 提交频次 (50000), DIRECT为FALSE有效 |
| DIRECT | 是否使用快速方式装载 (TRUE) |
| 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表示载出, 表示载出ORACLE (IN) |
| CLIENT_LOB | 大字段目录是否在本地 (FALSE) |
| LOB_DIRECTORY | 大字段数据文件存放目录 |
| LOB_FILE_NAME | 大字段数据文件名称,仅导出有效 (dmfldr.lob) |
| BUFFER_NODE_SIZE | 读入文件缓冲区的大小 (10),有效值范围1~2048 |
| LOG_SIZE | 日志信息缓冲区的大小 (1),有效值范围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环境,是否只生成单个数据文件(FALSE) |
| LAN_MODE | MPP环境,是否以内网模式装载数据(FALSE) |
| UNREP_CHAR_MODE | 非法字符处理选项(0),为0时表示跳过该数据行,为1时表示使用(*)替换错误字节 |
| SILENT | 是否静默方式装载数据(FALSE) |
| BLOB_TYPE | BLOB类型字段数据值的实际类型,字符串类型 (HEX_CHAR),HEX表示值为十六进制,HEX_CHAR表示值为十六进制字符类型,仅在direct=FALSE有效 |
| OCI_DIRECTORY | OCI动态库所在的目录 |
| DATA | 指定数据文件路径 |
| ENABLE_CLASS_TYPE | 允许用户导入CLASS类型数据 (FALSE) |
| FLUSH_FLAG | 提交时是否立即刷盘 (FALSE) |
| IGNORE_BATCH_ERRORS | 是否忽略错误数据继续导入 (FALSE) |
| SINGLE_HLDR_HP | 是否使用单个HLDR装载HUGE水平分区表 (TRUE) |
| EP | 指定需要发送数据的站点序号列表,仅向MPP环境导入数据时有效 |
| PARALLEL | 是否开启并行装载(FALSE) |
| SQL | 使用自定义查询语句,仅导出模式有效 |
| HELP | 打印帮助信息 |
三、测试:
编辑数据文件
vim /tmp/abc.txt
1 1|2015-11-06
2 2|2015-11-05
3 3|2015-11_04
编辑控制文件
vim /tmp/abc.ctrl
LOAD DATA
INFILE ‘/tmp/abc.txt’ —在控制文件中指定数据文件
INTO TABLE test
FIELDS ‘|’ —表示用|竖线分隔字段数据
(
C1 TERMINATED BY ‘ ‘, —指定某列数据的分隔符
C2,
C3 DATE FORMAT ‘yyyy-mm-dd’
)
加载数据
./dmfldr userid=aaa/123:22222 control=/’/tmp/abc.ctrl/’
装载失败会在当前目录下生成fldr.bad文件
more fldr.bad
dmfldr: 2022-01-24 16:03:56 AAA->TEST 1|2015-11-06
dmfldr: 2022-01-24 16:03:56 AAA->TEST 2|2015-11-05
dmfldr: 2022-01-24 16:03:56 AAA->TEST 3|2015-11_04
dmfldr: 2022-01-24 16:05:57 AAA->TEST 1|2015-11-06
dmfldr: 2022-01-24 16:05:57 AAA->TEST 2|2015-11-05
dmfldr: 2022-01-24 16:05:57 AAA->TEST 3|2015-11_04
四、其他:
大字段数据处理
dmfldr 支持对 DM 数据库的大字段类型数据的载入和导出,DM 数据库支持的大字段
数据类型有 TEXT、LONGVARCHAR、IMAGE、LONGVARBINARY、BLOB 以及 CLOB
创建大字段列的标
CREATE TABLE TEST(C1 INT,C2 BLOB,C3 CLOB);
插入数据
INSERT INTO TEST VALUES(1,0XAB121032DE,’abcdefg’);
INSERT INTO TEST VALUES(2,0XAB121032DE,’abcdefg’);
COMMIT;
abc.ctrl 存放路径为/tmp/abc.ctrl
LOAD DATA
INFILE ‘/tmp/abc1.txt’
INTO TABLE test
FIELDS ‘|’
(
C1,
C2,
C3
)
dmfldr MODE为OUT时进行导出数据
./dmfldr userid=aaa/123:22222 control=/’/tmp/abc.ctrl/’ LOB_DIRECTORY=/’/tmp//’ mode=/’out/’
DIRECT 为 FALSE 时大字段数据的载入
当 MODE 为 IN 且 DIRECT 为 TRUE 时,此时数据载入若涉及到大字段对象,需要用户
指定大字段数据文件。若 CLIENT_LOB 为 TRUE,LOB_DIRECTORY 应指定大字段数据文
件所在的客户端本地目录;若 CLIENT_LOB 为 FALSE,用户必须先把相关文件传送到 DM
服务器所在主库,然后使用 LOB_DIRECTORY 指明存放目录
达梦相关技术信息在达梦云适配中心
https://eco.dameng.com
版权声明:本文为博主原创文章,未经博主允许不得转载。
达梦dmfldr
- 上一篇:达梦8的dmdbchk命令工具使用
- 下一篇:达梦8 java语言试配连接进行学习




