分享好友 资讯首页 资讯分类 切换频道
达梦DMFastLoader详解
2024-12-27 10:35  浏览:98

dmfldr(DM Fast Loader)是DM提供的快速装载数据的命令行工具,能够将安装一定格式排序的文本数据以简单、快速、高效的方式装载到达梦数据库中,或者将达梦数据库中的数据安装一定格式导出到文本文件。

类似Oracle SqlLoader工具。

查看dmfldr工具的参数选项

dmfldr工具在$DM_HOME/bin目录下。

执行dmfldr help即可查看dmfldr的相关参数以及使用方法。

 

需要注意的是:USERID和CONTROL参数为必选参数,且USERID必须是命令行中的第一个参数CONTROL 必须是命令行中的第二个参数。其余参数均为可选参数且指定时无顺序要求。

dmfldr控制文件

用于指定数据文件中数据的格式。在数据载入时, dmfldr 根据控制文件指定的格式来解析数据文件;导出数据时,dmfldr 也会根据控制文件指定的列分隔符、行分隔符等生成数据文件。

控制文件语法如下

 

需要注意的是:控制文件中的OPTIONS选项设置的参数优先级要高于在外面命令行指定的参数选项。

简单测试

本次测试环境为Centos 7,DM8

基础测试
 

通过上面执行的日志信息,我们可以发现有1行数据加载失败,可以通过控制文件中指定的错误输出文件badfile查看具体内容

 

通过日志可以发现错误的数据为第4行数据,由于TEST01表的C3列数据类型为date类型格式为"yyyy-mm-dd",而数据文件中根据分隔符插入C3列的值为"aaaa-bb-cc"与C3列的数据类型不匹配,所以报错。

另外,在上面的测试中,control的参数值加了“” 反斜杠进行转义,如果不进行转义则会报如下错误

 
大字段数据处理

dmfldr 支持对 DM 数据库的大字段类型数据的载入和导出, DM 数据库支持的大字段数据类型有 TEXT、 LONGVARCHAR、 IMAGE、 LONGVARBINARY、 BLOB 以及 CLOB。

导出大字段数据
 
导入大字段数据1(DIRECT=TRUE

​ 当 MODE 为 IN 且 DIRECT 为 TRUE 时, 此时数据载入若涉及到大字段对象,需要用户指定大字段数据文件。若 CLIENT_LOB 为 TRUE, LOB_DIRECTORY 应指定大字段数据文件所在的客户端本地目录;若 CLIENT_LOB 为 FALSE, 用户必须先把相关文件传送到 DM服务器所在主库,然后使用 LOB_DIRECTORY 指明存放目录。在数据文件中,大字段以“文件名:起始偏移:长度”的形式记录在数据文件中。指定的文件名无效时, dmfldr 会报错,装载失败。 对于 CLOB 类型字段, 当指定的偏移 、长度范围内带有不完整字符时,dmfldr 将装载失败 。

 

在导入时,如果testblob.txt、testclob.txt的长度小于数据文件test03.txt中偏移量的长度,则导入时会报错**“无效的大字段数据长度”**。

导入大字段数据2(DIRECT=FALSE

​ 当 MODE 为 IN 且 DIRECT 为 FALSE 时, 数据文件中大字段列数据即字段内容。
BLOB_TYPE 参数指定 BLOB 列内容为十六进制或者字符串
(1)BLOB_TYPE 为 HEX_CHAR 时,数据文件中 BLOB 列当作为十六进制内容
(2)BLOB_TYPE 为 HEX 时,数据文件中 BLOB 列为字符串形式内容,导入后会转换为十六进制
BLOB_TYPE 参数只对 DIRECT 为 FALSE 时有效,默认为 HEX_CHAR。

达梦DMFastLoader详解

 
自增列装载

​ 自增列是比较特殊的列,为了保证数据库中自增列列值的正确性,用户在进行数据载入时需要特别注意。
​ 当 DIRECT 参数为 FALSE 时, dmfldr 将把从数据文件中读取的自增列值作为目标值插入数据库表中,用户应当保证每一行的自增列的值符合自增列的规则,否则将造成数据混乱。
​ 当 DIRECT 参数为 TRUE 时, dmfldr 提供了 SET_IDENTITY 参数(默认为 FALSE)对数据载入时自增列的处理进行设置
(1)如果指定 SET_IDENTITY 选项值为 TRUE,则 dmfldr 将把从数据文件中读取的自增列值作为目标值插入数据库表中,用户应当保证每一行的自增列的值符合自增列的规则,否则将造成数据混乱
(2)如果 SET_IDENTITY 选项值设置为 FALSE,则 dmfldr 将忽略数据文件中对应自增列的值,服务器将根据自增列定义和表中已有数据自动生成自增列的值插入每一行的对应列。

DIRECT=TRUE,SET_IDENTITY=FALSE
 
DIRECT=TRUE,SET_IDENTITY=TRUE
 

​ 在表中有自增列的情况下装载时,dmfldr参数direct=false效果与direct=true set_identity=true相同,都是将把从dmfldr数据文件中读取的自增列值作为目标值插入数据库表中,这种情况需要保证每一行的自增列的值符合自增列的规则,否则将造成数据混乱。

空值处理

dmfldr 通过设置 NULL_MODE 参数来处理空值。设置为TRUE,载入时NULL字符串处理为NULL,载出时空值处理为NULL字符串;设置为FALSE,载入时NULL字符串处理为字符串,载出时空值处理为空串。

导入NULL_MODE=TRUE
 
导入NULL_MODE=FALSE
 

可以看到当设置null_mode=false时,装载数据时"NULL"、“null"会被作为"NULL”、"null"两个字符串插入到表中

导出NULL_MODE=TRUE
 

可以看到导出值为NULL字符串。

导出NULL_MODE=FALSE
 

可以看到,设置null_mode=false,导出文件内容值为空字符串。

(1)不支持向临时表、外部表装载数据
(2)不支持向系统表装载数据
(3)不支持向带有位图索引的表装载数据
(4)不支持向带有函数索引的表装载数据
(5)不支持向带有全文索引的表装载数据
(6)不支持向 DCP 代理装载数据
(7)dmfldr装载时,对约束进行检查,对各种约束的处理机制如下表所示:

约束数据不满足时数据是否插入约束是否有效非空约束(NOT NULL)报错不插入有效唯一约束(UNIQUE,PRIMARY KEY)报错插入失效引用约束(FOREIGN KEY)不报错插入有效CHECK约束(CHECK)不报错插入有效聚集索引(CLUSTER PRIMARY KEY)报错不插入有效
    以上就是本篇文章【达梦DMFastLoader详解】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/news/5866.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
媒体代发平台解析:揭示主流媒体发布渠道现状
探索多元媒体代发平台:全面了解当前市场上的主流媒体发布渠道?在探索多元媒体代发平台时,全面了解当前市场上的主流媒体发布渠道
用AI生成超逼真美女写真,教你轻松玩转AI绘画工具!
进入生成界面,选择“插画”或“写真”模式,根据需求进行设置,可以选择想要的风格或人物。第三步:输入描述 在输入框中,详细
批量发布外链软件:全面外链建设规划指南和执行方案
前言对于任何希望提高网站在搜索引擎结果页面 (SERP) 排名的企业来说,外链建设都是至关重要的。 批量发布外链软件可以显着简化
真实体验说下OPPO Reno4 Pro和华为HUAWEI nova 9哪个好一些?有什么区别?求教老司机剖析
OPPO Reno4 Pro和华为HUAWEI nova 9选哪个更好?都有些什么区别?这两个OPPO Reno4 Pro和华为HUAWEI nova 9区别不是很大的,我买
广告公司加盟哪家好 广告店加盟代理
糖水店作为一种传统而又充满活力的餐饮形式,近年来在市场上受到了广泛的欢迎。对于有意加盟糖水店的创业者来说,选择一个的品牌
第一期获奖名单公布!生育支持政策知识请知晓(第二期第一轮)
生育支持政策知识第一期已结束小伙伴们中奖了吗?(文末已公布获奖名单)新一轮答题又来啦虽然这是一篇关于“三孩”的推文但不论
抖音短视频广告投放前的准备工作及落地页素材制作指南
本文主要介绍抖音短视频广告上线前的准备工作,帮助大家上线短视频信息流。希望与志同道合的优化者交流!抖音落地页材料准备无论
深度学习优化器中的变形金刚:Ranger21
论文题目:RANGER21: A SYNERGISTIC DEEP LEARNING OPTIMIZER 论文链接:https://arxiv.org/pdf/2106.13731.pdf由于
教你优化宝贝标题技巧
教你优化宝贝标题技巧  如何优化宝贝标题?以上就是我教给各位卖家们的好方法了,一个好的标题能给店铺带来流量,甚至它可以带
探索未来之门,2024年资料免费大全与词语释义的落实之旅
随着科技的飞速发展和互联网的普及,信息的获取与传播变得前所未有的便捷,当我们站在时间的节点上,展望即将到来的2024年,一个