一、背景

在使用Kettle对数据进行处理时,最常见的操作莫过于关系数据库的使用,然而使用最新版本Kettle8常面临以下几个痛点:

  1. 不支持MySQL8。 MySQL是当前最流行的开源关系数据库,用户基数仅次于Oracle。由于具有更好的性能,目前很多系统都已经用上了最新版本MySQL8。比较遗憾的是Kettle并不支持该版本数据库的连接。
  2. 无法在同一转换/作业中同时使用相同数据库的不同版本驱动。因为Kettle将所有数据库驱动统一放在lib目录中,并由同一个类加载器进行加载,如果存在多个版本的驱动则极有可能导致包冲突问题。假如一个转换需要同时连接MySQL5与MySQL8,Kettle无法实现。
  3. 缺少统一和有效的数据库插件获取渠道。在Kettle使用者需要一些新的数据库插件时往往不知所措,求助于目前各大社区(甚至是pentaho官方论坛)也无法得到及时有效的帮助。

我们可以使用同样免费的版本CKettle来彻底解决这些问题。CKettle创新性的将数据库连接插件全都从core中提取出来,成为独立的可热插拔插件,并能实现多版本数据库连接并存。同时每个上架插件都包含了经过测试验证的默认连接驱动,免去自行查找的烦恼。

下文将详细介绍如何使用数据库连接插件功能,并举例验证。

二、精简版客户端插件下载安装

1.从门户站点下载最新CKettle客户端

 

mysql5和mysql8连接驱动 mysql8驱动 兼容_数据库连接

mysql5和mysql8连接驱动 mysql8驱动 兼容_ETL_02

 

 

2.启动下载的客户端新建转换并创建DB连接

 

mysql5和mysql8连接驱动 mysql8驱动 兼容_CKettle_03

mysql5和mysql8连接驱动 mysql8驱动 兼容_Kettle_04

(注:若启动精简版CKettle客户端默认已经打开了之前的转换,会提示插件(转换或者数据库插件)丢失(如下图所示),可暂时忽略错误,待安装完插件即可正常)

mysql5和mysql8连接驱动 mysql8驱动 兼容_CKettle_05

mysql5和mysql8连接驱动 mysql8驱动 兼容_数据库连接_06

3.点击云端下载功能,浏览你需要安装的数据库插件

mysql5和mysql8连接驱动 mysql8驱动 兼容_CKettle_07

(注:目前已上线的插件包含主流的数据库,都已经过测试验证,兼容多数常用数据库。若此列表没有需要的数据库插件,请到论坛提需求)

4.点击安装,安装完成后将提示成功,同时列表中出现新的连接方式

mysql5和mysql8连接驱动 mysql8驱动 兼容_Kettle_08

5.使用新下载的插件建立数据库连接

mysql5和mysql8连接驱动 mysql8驱动 兼容_CKettle_09

6.在转换中使用该连接完成转换设计

mysql5和mysql8连接驱动 mysql8驱动 兼容_数据库连接_10

(注:精简版需要下载插件,插件安装请参考门户教程

三、扩展

1.使用自定义驱动

有时候来自CKettle提供的数据库默认连接驱动并不一定能满足所有版本的数据库连接,当前转换使用的数据库版本使用内置驱动无法满足使用需要,这时可以打开数据库连接对话框,使用自定义驱动功能选择适合当前转换的驱动。

mysql5和mysql8连接驱动 mysql8驱动 兼容_mysql5和mysql8连接驱动_11

mysql5和mysql8连接驱动 mysql8驱动 兼容_CKettle_12

确认后再次打开该面板即可发现自定义驱动已应用,且驱动已经被放入CKettle程序的libdb目录,转换中也会保存该驱动的信息以便下次使用。

mysql5和mysql8连接驱动 mysql8驱动 兼容_ETL_13

2.转换中同时使用MySQL5和MySQL8

这里以刚下载的CKettle精简版客户端为例。

Step1:新建转换,打开下载数据库插件面板

mysql5和mysql8连接驱动 mysql8驱动 兼容_ETL_14

Step2:下载MySQL5和MySQL8+插件

mysql5和mysql8连接驱动 mysql8驱动 兼容_mysql5和mysql8连接驱动_15

Step3:建立数据库连接信息并测试可以成功连接

mysql5和mysql8连接驱动 mysql8驱动 兼容_数据库连接_16

mysql5和mysql8连接驱动 mysql8驱动 兼容_CKettle_17

Step4:安装用做演示的表输入(表输出)插件

mysql5和mysql8连接驱动 mysql8驱动 兼容_mysql5和mysql8连接驱动_18

mysql5和mysql8连接驱动 mysql8驱动 兼容_CKettle_19

Step5:拖入插件到画布设计转换

mysql5和mysql8连接驱动 mysql8驱动 兼容_ETL_20

mysql5和mysql8连接驱动 mysql8驱动 兼容_CKettle_21

Step6:配置表输入使用刚才配置的MySQL5连接m5并查询出相应的字段,表输出使用MySQL8+配置的连接m8并指向对应的输出表(指定字段或者默认不勾选),运行转换数据处理成功。

mysql5和mysql8连接驱动 mysql8驱动 兼容_Kettle_22

mysql5和mysql8连接驱动 mysql8驱动 兼容_数据库连接_23

至此:本demo成功使用MySQL5作为输入源,MySQL8作为输出源的数据处理转换演示。