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

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

/.kettle/kettle.properties

/.kettle/shared.xml

共享数据库配置

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

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

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

/.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的开发工具,否则可能无法正常生效。

kettle mysql 配置_Kettle数据库配置抽离相关推荐

  1. mysql主备数据库配置_MySQL双主互备配置

    #主数据库配置 1.修改my.conf(windows下是my.ini)文件: 在[mysqld]部分插入如下两行: #开启二进制日志 log-bin=mysql-bin #设置server-id s ...

  2. mysql主备数据库配置文档_MySQL数据库配置主从服务器实现双机热备实例教程

    网站:bbs.osyunwei.com 程序在:Web服务器192.168.21.129上面 数据库在:MySQL服务器192.168.21.169上面 实现目的:增加一台MySQL备份服务器(192 ...

  3. laravel mysql 配置,laravel5数据库配置及其注意事项

    今天分享一个Laravel5数据库配置上的坑. Laravel5作为一套简洁.优雅的PHP Web开发框架(笑),唯一不足的一点就是中文手册或者说是资料比较少,虽然现在很多大神也开始普及这些东西,但是 ...

  4. centos6配置mysql远程访问_MariaDB 数据库配置 Navicat 程序远程访问权限

    如果MySQL数据库采用的是 MariaDB 引擎,与普通的数据库配置有点不同 MariaDB 与普通的MySQL数据库的一个不同在于它的配置文件不止一个,它将不同的数据放入到不同的配置文件中,之前的 ...

  5. mysql数据库参数配置_MySQL数据库配置参数优化及参数对应的解释

    Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的 ...

  6. mongodb mysql配置_Nosql_MongoDB数据库配置以及基本指令

    数据库(database) -数据库的服务器 -服务器用来保存数据 -mongod用来启动服务器 -数据库的客户端 -客户端用来操作服务器,对数据进行增删改查的操作 -mongo用来启动客户端 (不能 ...

  7. Kettle使用统一的数据库配置

    注意: 安装kettle前必须配置jdk环境 1.设置kettle_home环境变量 拷贝<system_root>\Users<user>.kettle文件夹到data-in ...

  8. 微信小程序商城,关于基于云服务器的接口文件配置还有数据库配置

    这个周闲暇时间做了一个微信小程序商城,具体的代码会打包放我的git仓库,主要实现的前端页面有:登录界面,商品界面,商品详情界面,购物车购买界面,个人信息界面,订单界面.然后在本地用mysql建立了一个 ...

  9. kettle mysql 参数_kettle参数、变量详细讲解

    kettle参数.变量详细讲解 kettle 3.2 以前的版本里只有 variable 和 argument,kettle 3.2 中,又引入了 parameter 概念:variable 即env ...

最新文章

  1. 判断32位整数二进制中1的个数
  2. 图片上传之后清空_OSS文件上传及OSS与ODPS之间数据连通
  3. C - Internet Address CodeForces - 245B(有些思维的水题)
  4. Pycharm如何选择自动打开最近项目
  5. 智慧交通day01-算法库02:imutils
  6. LeetCode 5. 最长回文子串(动态规划)
  7. php 00截断,00截断之追本溯源
  8. 数据分析师必备的六大技能,你都掌握了吗?
  9. MQ 是什么?为什么使用?
  10. MTK平台 后视镜系列 声控参数调整方法
  11. 水果店的售价应该怎么来定,水果店怎样确定价格
  12. S3C2440的裸奔--内存篇(非MMU)--------转的网友 泠瑛 的博客文章在此谢过!
  13. android 接口sign,[原创]小米APP登录接口env、envkey、sign、hash算法
  14. 赵何娟“拷问”冯鑫:暴风与小米电视的疯狂增长,源于乐视“自杀”
  15. linux第一块ide硬盘命名为,Linux 硬盘分区
  16. 亚马逊是如何颠覆商业软件高昂价格这座”柏林墙”的
  17. QSound一句代码播放简单的音效
  18. c语言缩进用tab还是空格,程序员编码首行缩进使用Tab键好还是空格好?
  19. 黑客(Hacker)的历史
  20. JAVA从一个.p12或.pfx文件中获取公钥和私钥

热门文章

  1. openpose_net随机搜索网络源代码
  2. 图像转文字(分类识别等),文字转图片,实际需要的过程
  3. 模型转换状态已支持Webhook!
  4. AndroidStudio更换黑色主题方法
  5. 科技下的仓库,数据库
  6. linux下同时安装多个tomcat实例
  7. Hadoop之Storm命令
  8. SharePoint2013自定义登录页面
  9. Redefine:Change in the Changing World
  10. Linux计划任务详解