自我介绍:

大家好!我是Java小金刚,在互联网金融行业打拼了10年的老兵。如果你对Java编程、互联网金融、大数据以及软件开发领域感兴趣,那么快来关注我公众号【Java小金刚】,让我带你领略最新最炙手可热的技术动态和经验分享。

场景:

上周四一位小伙伴发出求助,周末有时间一起看下如何解决此问题,信息如下:

用 pdi(kettle)9.2 和 9.4  连接达梦资源库,达梦数据库信息和资源库登录的账密信息一模一样    但是 9.2 可以登录,9.4 一直就是登录不上。

c2dbb0fc-3e2f-4e22-89cb-d000a756951f

 1、安装dm8数据库

我这里提前使用docker安装了dm8数据库。并且创建了一个database(KETTLE),后续使用此数据库作为资源仓库。

56a379af-7edb-4543-9c0a-e744bf665e42

 2、使用dm8驱动连接数据库

1)使用DmJdbcDriver18.jar驱动方式连接dm8数据库,将DmJdbcDriver18.jar放到kettle的lib目录下面。

2)使用Generic database方式连接数据库。

3)可以正常连接数据库,但是无法创建资源仓库相关表。

34f0611e-a4cc-4beb-b5d1-af317fd7f2c5

 4)登录资源仓库失败,原因是资源仓库KETTLE相关表没有创建。

ca507228-1a07-4bb8-bb7f-35c038e90e55

 3、使用自研达梦插件

1)将kettle-database-plugin/或者kettle-dm-plugin-1.0.0插件放到kettle的plugins目录下面。

2)使用达梦插件创建数据库连接。

3)可以正常连接数据库,也可以正常创建资源仓库相关表。

b95867ce-152d-4d99-b1b1-0061e3aab99a

 4)创建资源库,输入资源库名称为dmrepo,注意描述这里不要写中文,有bug

7696a8d8-1359-4b2a-92d1-166ffcad9d46

 5)查看达梦数据库,已经成功创建了46张kettle的资源仓库表

注意一定是46张,本人在测试的过程中由于本地kettle环境问题,当时基于kettle 9.3 测试 搞了好久一直会生成25张表,导致无法正常使用。

01ac2c1d-3ca1-4d4e-aedc-279579dd067b

 6)登录资源库

输入用户名和密码登录资源库,默认为admin/admin 

cc3bcb69-b525-4bac-84e2-fd618d3341bd

 7)设计转换测试

基于达梦数据库作为资源仓库,可以正常保存和读取转换脚本文件,如下图所示:

335af36b86439b9c4576e04434939cd2

 写在最后

达梦数据库作为kettle的资源仓库,这篇文章花费了好长时间,当时本地是基于kettle9.3版本进行测试,和倪老师一起调整了好几版插件,依然生成25张资源仓库表,导致无法正常使用。当时的报错信息:

54db93214b2c3729553a90bea8fc9333

后来基于kettle9.2/9.4/9.5版本进行测试kettle达梦插件又完全正常,后来又重新换了个9.3,插件竟然可以正常使用了。12345,达梦数据库作为kettle资源仓库测的好辛苦!!!

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐