场景:
上周四一位小伙伴发出求助,周末有时间一起看下如何解决此问题,信息如下:
用 pdi(kettle)9.2 和 9.4 连接达梦资源库,达梦数据库信息和资源库登录的账密信息一模一样 但是 9.2 可以登录,9.4 一直就是登录不上。
1、安装dm8数据库
我这里提前使用docker安装了dm8数据库。并且创建了一个database(KETTLE),后续使用此数据库作为资源仓库。
2、使用dm8驱动连接数据库
1)使用DmJdbcDriver18.jar驱动方式连接dm8数据库,将DmJdbcDriver18.jar放到kettle的lib目录下面。
2)使用Generic database方式连接数据库。
3)可以正常连接数据库,但是无法创建资源仓库相关表。
4)登录资源仓库失败,原因是资源仓库KETTLE相关表没有创建。
3、使用自研达梦插件
1)将kettle-database-plugin/或者kettle-dm-plugin-1.0.0插件放到kettle的plugins目录下面。
2)使用达梦插件创建数据库连接。
3)可以正常连接数据库,也可以正常创建资源仓库相关表。
4)创建资源库,输入资源库名称为dmrepo,注意描述这里不要写中文,有bug
5)查看达梦数据库,已经成功创建了46张kettle的资源仓库表
注意一定是46张,本人在测试的过程中由于本地kettle环境问题,当时基于kettle 9.3 测试 搞了好久一直会生成25张表,导致无法正常使用。
6)登录资源库
输入用户名和密码登录资源库,默认为admin/admin
7)设计转换测试
基于达梦数据库作为资源仓库,可以正常保存和读取转换脚本文件,如下图所示:
写在最后
达梦数据库作为kettle的资源仓库,这篇文章花费了好长时间,当时本地是基于kettle9.3版本进行测试,和倪老师一起调整了好几版插件,依然生成25张资源仓库表,导致无法正常使用。当时的报错信息:
后来基于kettle9.2/9.4/9.5版本进行测试kettle达梦插件又完全正常,后来又重新换了个9.3,插件竟然可以正常使用了。12345,达梦数据库作为kettle资源仓库测的好辛苦!!!