kettle mysql 配置_Kettle数据库配置抽离

在使用ETL工具Kettle时候,为了使作业或转换具有通用性,有时候,我们需要将数据库的连接配置从脚本或转换中抽离出来,下面介绍一种方案,该方案主要涉及的文件有:

# 这两个文件,默认是在系统的用户目录下,如果配置了KETTLE_HOME环境变量,则spoon会去KETTLE_HOME的目录下加载这两个文件

/.kettle/kettle.properties

/.kettle/shared.xml

共享数据库配置

在作业中,按照DB连接向导建立一个数据库连接,填入完整的数据库连接信息。

029f9fb786eb34996690ec51ffec1bff.png

0a0cc1bcb67be69d71f8309dbecc0af4.png

建立完连接,测试连接成功后,在该DB连接上点右键,选择“共享”。

56e48c81f9ecc2cea62e2ec2e4738fda.png

完成上述共享操作后,就可以在以下文件中找到共享数据库链接的配置:

/.kettle/shared.xml

test_db

127.0.0.1

MYSQL

Native

test_db

3306

testdb

Encrypted 2be98afc86aa7f2e4cb79ff228dc6fa8c

PORT_NUMBER3306

这样设置后,你就可以在后续的作业和转换中选择这个共享的test_db。

虽然这样算是抽离出了DB连接,但是还不够优化,下面介绍如何将DB连接中的部分配置再次抽离出来。

抽离DB配置

例如,我们想将数据库的地址、SID、username、password从shared.xml中抽离出来,这个时候,就需要用到

/.kettle/kettle.properties

我们只需要在这个文件中定义相关的DB变量,如下:

test_db_host=127.0.0.1

test_db_port=3306

test_db_sid=test_db

test_db_user=test_db

test_db_password=Encrypted 2be98afc86aa7f2e4cb79ff228dc6fa8c

然后,我们修改

/.kettle/shared.xml

test_db

${test_db_host}

MYSQL

Native

${test_db_sid}

${test_db_port}

${test_db_user}

${test_db_password}

PORT_NUMBER${test_db_port}

这样,就彻底的将数据库的配置从作业和转换中抽离出来了。

注意的一点是,最好在shared.xml中增加如下的数据库连接属性,可以有效避免数据传输字符、日期转换问题

test_db

${test_db_host}

MYSQL

Native

${test_db_sid}

${test_db_port}

${test_db_user}

${test_db_password}

EXTRA_OPTION_MYSQL.characterEncoding

utf8

FORCE_IDENTIFIERS_TO_LOWERCASE

N

FORCE_IDENTIFIERS_TO_UPPERCASE

N

IS_CLUSTERED

N

PORT_NUMBER

${test_db_port}

PRESERVE_RESERVED_WORD_CASE

Y

QUOTE_ALL_FIELDS

N

SQL_CONNECT

set names utf8

STREAM_RESULTS

Y

SUPPORTS_BOOLEAN_DATA_TYPE

Y

SUPPORTS_TIMESTAMP_DATA_TYPE

Y

USE_POOLING

N

做完上述的DB连接的共享和配置后,再处理作业和转换时,如果选择共享的DB连接,实际上Kettle会复制shared.xml中的数据库配置到具体的作业和转换中,复制过去后,相应的变量会从kettle.properties中读取。

也就是说,如果要把作业和转换发布到正式环境,实际上可以不需要shared.xml,shared.xml更多的作用是用于开发阶段。

另外,注意每次修改了shared和kettle.properties,要重启Kettle的开发工具,否则可能无法正常生效。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值