13. DMFLDR 工具使用

前言

dmfldr 是 DM 数据库提供的一种快速装载工具,让用户通过使用快速装载工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格式载出到文本文件中。dmfldr 适合数据量特别巨大的情况,且性能相比其他工具更好,但是功能性方面较差。

系统结构

dmfldr(DM Fast Loader)包含 dmfldr 客户端和 dmfldr 模块两部分 :

  • dmfldr 客户端实现初始化快速装载环境、读取数据、打包数据和发送数据功能。

  • dmfldr 功能模块嵌入

  • 当进行数据载入时,dmfldr客户端接收用户提交的命令与参数,分析控制文件与数据文件,将数据打包发送给服务器端的dmfldr模块,由服务器完成数据的真正装载工作。并分析服务器返回的消息,必要时根据用户参数指定生成日志文件与错误数据文件。

  • 当进行数据导出时,dmfldr客户端接收用户提交的命令与参数,分析控制文件,将用户要求转换成相应消息发送给服务器端的dmfldr模块。服务器解析并打包需要导出的数据,发送给dmfldr客户端,客户端将数据写入指定的数据文件,必要时根据用户参数指定生成日志文件。

参数解析

  • dmfldr 参数解析
关键字说明
USERID用户名/口令格式:USER/PWD@SERVER:PORT#SSL_PATH@SSL_PWD
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, GB18030,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读入文件缓冲区的大小 (10),有效值范围1~2048
READ_ROWS工作线程一次最大处理的行数 (100000),最大支持2^26-10000
NULL_MODE载入时NULL字符串是否处理为NULL
NULL_STR载入时视为NULL值处理的字符串
SEND_NODE_NUMBER运行时发送节点的个数 (20),有效值范围16~65535
TASK_THREAD_NUMBER处理用户数据的线程数目,默认与处理器核数量相同,有效值范围1~128
BLDR_NUM服务器BLDR数目 (64),有效值范围1~1024
BDTA_SIZEbdta的大小 (5000),有效值范围100~10000
COMPRESS_FLAG是否压缩bdta (FALSE)
MPP_CLIENTMPP环境,是否本地分发 (TRUE)
SINGLE_FILEMPP环境,是否只生成单个数据文件(FALSE)
LAN_MODEMPP环境,是否以内网模式装载数据(FALSE)
UNREP_CHAR_MODE非法字符处理选项(0),为0时表示跳过该数据行,为1时表示使用(*)替换错误字节
SILENT是否静默方式装载数据(FALSE)
BLOB_TYPEBLOB类型字段数据值的实际类型,字符串类型 (HEX_CHAR) ,HEX表示值为十六进制,HEX_CHAR表示值为十六进制字符类型,仅在direct=FALSE有效
OCI_DIRECTORYOCI动态库所在的目录
DATA指定数据文件路径
ENABLE_CLASS_TYPE允许用户导入CLASS类型数据 (FALSE)
FLUSH_FLAG提交时是否立即刷盘 (FALSE)
IGNORE_BATCH_ERRORS是否忽略错误数据继续导入 (FALSE)
SINGLE_HLDR_HP是否使用单个HLDR装载HUGE水平分区表 (FALSE)
EP指定需要发送数据的站点序号列表,仅向MPP环境导入数据时有效
HELP打印帮助信息

使用方式

  • 参数 USERID 必须置于首位,此外的多个参数之间排列顺序无影响,参数之间使用空格间隔;
## 路径必须加 ' ' 
dmfldr userid=SYSDBA/SYSDBA@localhost:5237 control=\'/opt/data/test.ctrl\'

## 配置文件
LOAD DATA 
INFILE '/opt/data/test.txt' 
INTO TABLE test1 WHEN A != 'a' 
FIELDS ',' 
( 
a, 
b
) 
INTO TABLE test2 
WHEN B = 'b'
FIELDS ',' 
( 
a, 
b 
)

参考内容

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值