KETTLE工具-初体验

1、工具使用

window系统环境
打开data-integration目录下的Spoon.bat,版本为6.1

  • 新建转换或作业
    新建转换或作业

2、数据库连接

2.1、新建数据库连接

新建数据库连接

数据库连接有三种方式:普通局部配置、变量局部配置、局部配置,这里以MySQL为例子

2.2、普通局部配置

全局配置

  • 选择连接类型,这里选择MySQL
  • 连接方式选择Native(JDBC)
  • 右侧填写数据库连接信息
  • 点击Test,保存即可

2.3、变量局部配置

变量局部配置

  • 在c盘用户下找到“.kettle”,我这里是C:\Users\Administrator.kettle
  • 编辑kettle.properties,加入
    CHAPTER1_IP=host
    CHAPTER1_PORT=port
    CHAPTER1_DB=数据库
    CHAPTER1_USER=用户
    CHAPTER1_PWD=密码
  • 重启Kettle,如图所示,使用 ${}引用变量 即可

2.4、全局配置

全集配置

  • 选择连接类型,这里选择MySQL

  • 连接方式选择JNDI

  • 右侧填写JNDI编写的名称在这里插入图片描述

  • 点击Test,保存即可

  • JNDI模板如下
    driver驱动包可自定义,记得将驱动包放入lib目录(mysql是缺失驱动包,记得去官网下载驱动包,这里是Java)

#SqlServer
sqlserver/type=javax.sql.DataSource
sqlserver/driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
sqlserver/url=jdbc:sqlserver://xxxhost;DatabaseName=xxxdb
sqlserver/user=
sqlserver/password=

#Oracle
oracle/type=javax.sql.DataSource
oracle/driver=oracle.jdbc.driver.OracleDriver
oracle/url=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = xxxhost)(PORT = xxxport))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = xxxserviceInstance)))
oracle/user=
oracle/password=

#MySql
mysql/type=javax.sql.DataSource
mysql/driver=com.mysql.jdbc.Driver
mysql/url=jdbc:mysql://xxxhost:xxxport/xxxdb?useUnicode=true&characterEncoding=utf-8
mysql/user=
mysql/password=

3、延伸

3.1、数据库密码-明文加密

采用变量局部配置方式
在kettle目录下会看到Encr.bat这样一个命令行工具,在当前目录打开cmd
Encr.bat -kettle password,会生成出一串加密串

数据库密码-明文加密

3.1.1、变量局部配置

将Encr.bat生成的密码填入

将Encrypted 2be98afc807de8195a748fb2787cafa94在kettle.properties替换即可
,CHAPTER1_PWD=Encrypted 2be98afc807de8195a748fb2787cafa94

3.1.2、全局配置

当时写这篇文章是2019年4月,现在!终于官方出解决方案了
按照这位大佬的讲述,去到github-pentaho-simple-jndi看下,由simple-jndi-1.0.0升级到simple-jndi-1.0.3加入解密
引用pentaho-encryption-support包

可以去github下载该项目,手动编译打包。也可以采用大佬打包好的
包地址 提取码: ub7c
如果不见了,可以用我的 提取码:j9c

1、参考

db 文件 加密_有人说Kettle 数据库JNDI方式数据库密码不能加密,搞他!【2.3 全局配置章节】


4、总结

  • 驱动包一定要跟数据库版本一致,不然会获取表字段失败等问题
  • 数据库连接总共有三种方式:普通局部配置、变量局部配置和全局配置,优缺点如下
    • 普通、变量局部配置需要每个job/tran都填写一次连接信息,很烦

      有个折中办法:将该连接配置共享,每个打开的job/tran都能共享该连接配置。弊端:把其它业务的连接配置给引用进来,主动暴露方式真low,没做到业务分离

      缺点:不支持指定驱动包
      数据库连接共享

    • 全局配置

    1. 做到插拔式引用
    2. 对每个jon/tran是透明的
    3. 做到业务分离,每个业务流程互不干扰
    4. 支持指定驱动包,遇到过采用局部配置连接SqlServer会报连接错误,估计是kettle默认的驱动包有问题

5、资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值