文章目录
前言
DM提供了dmfldr工具,用于将文本的数据快速、高效地导入到数据库中。Dmfldr(DM Fast Loader)是DM提供的快速数据装载命令行工具。用户通过使用dmfldr工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到DM数据库中,或把DM数据库中的数据按照一定格式写入文本文件。
一、原理
当进行数据载入时,dmfldr客户端接收用户提交的命令与参数,分析控制文件与数据文件,将数据打包发送给服务器端的dmfldr模块,由服务器完成数据的真正装载工作。并分析服务器返回的消息,必要时根据用户参数指定生成日志文件与错误数据文件。
当进行数据导出时,dmfldr客户端接收用户提交的命令与参数,分析控制文件,将用户要求转换成相应消息发送给服务器端的dmfldr模块。服务器解析并打包需要导出的数据,发送给dmfldr客户端,客户端将数据写入指定的数据文件,必要时根据用户参数指定生成日志文件。
二、相关参数
1.查看参数
dmfldr使用较为灵活,参数较多,用户可以使用“dmfldr help”查看各参数的简单信息。:
dmfldr help
2.参数格式
dmfldr 指定参数的格式为:
./dmfldr KEYWORD=value
dmfldr 的使用必须指定必要的参数,USERID 必须是第一个参数,CONTROL 必须是第二个参数,这两个参数都不能省略;其余参数均为可选参数,可以不指定,指定时也无顺序要求。
例如:
./dmfldr SYSDBA/SYSDBA CONTROL='/opt/data/fldr.ctl'
三、实战演示
使用 DATA 参数指定 dmfldr 的数据文件,数据文件路径的优先选择顺序为先控制文件,后参数选项。步骤如下:
1.创建数据表
create table test(A INT,B INT,C DATE);
2.编辑数据文件
vim /opt/dmdbms/test.txt
3.编辑控制文件
vim /opt/dmdbms/text.ctl
4.装载数据
cd /opt/dmdbms/bin
./dmfldr SYSDBA/SYSDBA control=\'/opt/dmdbms/text.ctl\' data=\'/opt/dmdbms/text.text\'
5.查询结果
cd /opt/dmdbms/bin
./disql SYSDBA/SYSDBA
四、使用限制
dmfldr的使用存在以下一些限制: • 不支持向临时表、外部表装载数据 • 不支持向系统表装载数据 • 不支持向带有位图索引的表装载数据 • 不支持向带有函数索引的表装载数据 • 不支持向带有全文索引的表装载数据 • 不支持向DCP代理装载数据 • dmfldr装载时,对约束进行检查五、常见问题
1.报控制文件输入参数出错,需要转义字符
control='/opt/dmdbms/text.ctl'修改为control=\'/opt/dmdbms/text.ctl\' ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210505214736604.png)2.报由于数据格式错误,行丢失
这个是字符集的问题,检查数据文件发现,数据没有格式错误,导入的数据有乱码。因为数据有汉字,需要指定下格式,CHARACTER_CODE=/‘UTF-8/’