KETTLE工具-初体验

KETTLE工具-初体验

  • 工具使用
  • 数据库连接
    • 新建数据库连接
    • 普通局部配置
    • 变量局部配置
    • 全局配置
  • 延伸
    • 数据库密码-明文加密
  • 总结
  • 资料

工具使用

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

  • 新建转换或作业
    KETTLE工具-初体验_第1张图片

数据库连接

新建数据库连接

KETTLE工具-初体验_第2张图片

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

普通局部配置

KETTLE工具-初体验_第3张图片

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

变量局部配置

KETTLE工具-初体验_第4张图片

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

全局配置

KETTLE工具-初体验_第5张图片

  • 选择连接类型,这里选择MySQL
  • 连接方式选择JNDI
  • 右侧填写JNDI编写的名称
  • 点击Test,保存即可
  • JNDI模板如下
#driver驱动包可自定义
#SqlServer
sqlserver/type=javax.sql.DataSource
sqlserver/driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
sqlserver/url=jdbc:sqlserver://host;DatabaseName=db
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 = host)(PORT = port))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = serviceInstance)))
oracle/user=
oracle/password=

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

延伸

数据库密码-明文加密

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

KETTLE工具-初体验_第6张图片

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

总结

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

    有个折中办法:将该连接配置共享,每个打开的job/tran都能共享该连接配置。弊端:把其它业务的连接配置给引用进来,主动暴露方式真low,没做到业务分离
    不支持指定驱动包
    KETTLE工具-初体验_第7张图片

    • 全局配置

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

  • 未解决
    • JNDI全局配置方式如何支持明文加密

资料

  • 本文demo-job.kjb

你可能感兴趣的:(大数据)