kettle连接DM7(达梦7)数据库
0.需求背景
应项目国产化适配需要,后续需要将数据迁移至DM7数据库中,调研kettle连接DM7
1.kettle连接DM7的相关操作
1.1 DM7驱动安装
kettle连接DM7,本质上是通过JDBC连接,因而需要将DM7的JDBC驱动放到${kettle_home}\lib\目录中。DM7的JDBC驱动可以到DM7的安装目录中${dm_home}\drivers\jdbc\中,将以下jar文件复制到kettle的lib目录:
DM7JdbcDriver15.jar
DM7JdbcDriver16.jar
DM7JdbcDriver17.jar
1.2 配置kettle数据库连接
- 1.在kettle中新建一个数据库连接,连接类型选择:Generic database
- 2.自定义连接URL,填写:jdbc:dm://${ip}:5236/DMSERVER
- 3.自定义驱动类名称:dm.jdbc.driver.DmDriver
- 4.用户名:SYSDBA(自定义)
- 5.密码:对应用户名的密码
- 6.连接方式:保留默认的Native(JDBC)即可。
1.3 测试连接
点击测试,查看是否连接成功。
2.可能遇到的问题
2.1 测试连接失败,找不到dm.jdbc.driver.DmDriver类
可能是在安装DM驱动时,没有重启kettle。因为kettle会在启动过程中加载lib中的所有依赖库,所以,如果是在kettle已经启动的情况下复制驱动类,并不会立即加载的。此时,只需要重启下kettle,让其重新加载DM驱动即可。
2.2 表输入中提示找不到表、或者无法解析字段的错误
类似于MySQL中的数据库,DM7数据库中的每张表是归属于某个schema(模式)的。所以在表输入/表输出组件中,一定要通过schema去选定要操作的表。而不要直接从表的子树中选定要操作的表,不然DM无法找到要操作的表。当然,在表输入中,直接手动编写SQL也是可以的,在from子句中指定${schema}.${table_name},明确指定表的所属schema即可。