达梦数据库如何快速装载数据

前言

我们在工作中经常需要将文本的数据快速、高效地导入到数据库中,同时也需要将数据库中的数据按照一定格式导出到文本中。在DM数据库中有什么好的方法呢?答案就是dmfldr工具。
Dmfldr(DM Fast Loader)是DM提供的快速数据装载命令行工具。用户通过使用dmfldr工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到DM数据库中,或把DM数据库中的数据按照一定格式写入文本文件。

Dmfldr系统结构如下:
达梦数据库如何快速装载数据_第1张图片
当进行数据载入时,dmfldr客户端接收用户提交的命令与参数,分析控制文件与数据文件,将数据打包发送给服务器端的dmfldr模块,由服务器完成数据的真正装载工作。并分析服务器返回的消息,必要时根据用户参数指定生成日志文件与错误数据文件。

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

1、启动dmfldr

安装好DM数据库管理系统后,在安装目录的“bin”子目录下可找到dmfldr执行文件。启动操作系统的命令行窗口,进入“dmfldr”所在目录,可以准备启动dmfldr工具了。dmfldr的使用必须指定必要的参数,否则工具会报错“无效的参数个数”并退出。

2、查看dmfldr参数

dmfldr使用较为灵活,参数较多,用户可以使用“dmfldr help”查看各参数的简单信息。

dmfldr help

格式:DMFLDR KEYWORD=value

注:USERID和CONTROL是启动dmfldr必须要指定的参数,USERID必须是第一个参数,CONTROL必须是第二个参数,这两个参数都不能省略;其余参数均为可选参数,可以不指定,指定时也无顺序要求。

2.1 USERID

用于指定登录数据库的信息,包含用户名、密码、服务器地址、端口号和安全证书存放路径。

参数值格式为:

用户名/密码[@主库地址[:端口号][#安全证书存放路径@安全证书密码]]

如果用户使用默认端口号5236登录则端口号可以不设置;如果登录的是本地的服务器则主库地址可以省略;如果不使用通信加密则安全证书相关设置可以省略。此参数为必选参数且必须位于参数位置的第一个。

2.2 CONTROL

控制文件的路径,字符串类型。控制文件用于指定数据文件中数据的格式,在数据载入时,dmfldr根据控制文件指定的格式来解析数据文件;导出数据时,dmfldr也会根据控制文件指定的列分隔符、行分隔符等生成数据文件。控制文件中还可以指定其他的一些dmfldr参数值。此参数为必选参数且必须位于参数位置的第二个。

3、dmfldr实战

控制文件

cat /dm8/test.ctrl

达梦数据库如何快速装载数据_第2张图片
数据文件

cat /dm8/test.txt

达梦数据库如何快速装载数据_第3张图片
创建数据表

create table test(C1 INT,C2 INT,C3 DATE);

达梦数据库如何快速装载数据_第4张图片

装载数据
达梦数据库如何快速装载数据_第5张图片
达梦数据库如何快速装载数据_第6张图片

4、dmfldr使用限制

dmfldr的使用存在以下一些限制:
• 不支持向临时表、外部表装载数据
• 不支持向系统表装载数据
• 不支持向带有位图索引的表装载数据
• 不支持向带有函数索引的表装载数据
• 不支持向带有全文索引的表装载数据
• 不支持向DCP代理装载数据
• dmfldr装载时,对约束进行检查

dmfldr的约束检查机制

约束 数据不满足时 数据插入与否 约束是否有效
非空约束(NOTNULL) 报错 不插入 有效
聚集索引(CLUSTERPRIMARYKEY) 报错 不插入 有效
唯一约束(UNIQUE,PRIMARYKEY 报错 不插入 失效
引用约束(FOREIGNKEY) 不报错 插入 有效
CHECK约束(CHECK) 不报错 插入 有效

你可能感兴趣的:(达梦数据库)