kettle mysql 配置_Kettle数据库配置抽离
在使用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_NUMBER
3306
这样设置后,你就可以在后续的作业和转换中选择这个共享的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数据库配置抽离相关推荐
- mysql主备数据库配置_MySQL双主互备配置
#主数据库配置 1.修改my.conf(windows下是my.ini)文件: 在[mysqld]部分插入如下两行: #开启二进制日志 log-bin=mysql-bin #设置server-id s ...
- mysql主备数据库配置文档_MySQL数据库配置主从服务器实现双机热备实例教程
网站:bbs.osyunwei.com 程序在:Web服务器192.168.21.129上面 数据库在:MySQL服务器192.168.21.169上面 实现目的:增加一台MySQL备份服务器(192 ...
- laravel mysql 配置,laravel5数据库配置及其注意事项
今天分享一个Laravel5数据库配置上的坑. Laravel5作为一套简洁.优雅的PHP Web开发框架(笑),唯一不足的一点就是中文手册或者说是资料比较少,虽然现在很多大神也开始普及这些东西,但是 ...
- centos6配置mysql远程访问_MariaDB 数据库配置 Navicat 程序远程访问权限
如果MySQL数据库采用的是 MariaDB 引擎,与普通的数据库配置有点不同 MariaDB 与普通的MySQL数据库的一个不同在于它的配置文件不止一个,它将不同的数据放入到不同的配置文件中,之前的 ...
- mysql数据库参数配置_MySQL数据库配置参数优化及参数对应的解释
Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的 ...
- mongodb mysql配置_Nosql_MongoDB数据库配置以及基本指令
数据库(database) -数据库的服务器 -服务器用来保存数据 -mongod用来启动服务器 -数据库的客户端 -客户端用来操作服务器,对数据进行增删改查的操作 -mongo用来启动客户端 (不能 ...
- Kettle使用统一的数据库配置
注意: 安装kettle前必须配置jdk环境 1.设置kettle_home环境变量 拷贝<system_root>\Users<user>.kettle文件夹到data-in ...
- 微信小程序商城,关于基于云服务器的接口文件配置还有数据库配置
这个周闲暇时间做了一个微信小程序商城,具体的代码会打包放我的git仓库,主要实现的前端页面有:登录界面,商品界面,商品详情界面,购物车购买界面,个人信息界面,订单界面.然后在本地用mysql建立了一个 ...
- kettle mysql 参数_kettle参数、变量详细讲解
kettle参数.变量详细讲解 kettle 3.2 以前的版本里只有 variable 和 argument,kettle 3.2 中,又引入了 parameter 概念:variable 即env ...
最新文章
- 判断32位整数二进制中1的个数
- 图片上传之后清空_OSS文件上传及OSS与ODPS之间数据连通
- C - Internet Address CodeForces - 245B(有些思维的水题)
- Pycharm如何选择自动打开最近项目
- 智慧交通day01-算法库02:imutils
- LeetCode 5. 最长回文子串(动态规划)
- php 00截断,00截断之追本溯源
- 数据分析师必备的六大技能,你都掌握了吗?
- MQ 是什么?为什么使用?
- MTK平台 后视镜系列 声控参数调整方法
- 水果店的售价应该怎么来定,水果店怎样确定价格
- S3C2440的裸奔--内存篇(非MMU)--------转的网友 泠瑛 的博客文章在此谢过!
- android 接口sign,[原创]小米APP登录接口env、envkey、sign、hash算法
- 赵何娟“拷问”冯鑫:暴风与小米电视的疯狂增长,源于乐视“自杀”
- linux第一块ide硬盘命名为,Linux 硬盘分区
- 亚马逊是如何颠覆商业软件高昂价格这座”柏林墙”的
- QSound一句代码播放简单的音效
- c语言缩进用tab还是空格,程序员编码首行缩进使用Tab键好还是空格好?
- 黑客(Hacker)的历史
- JAVA从一个.p12或.pfx文件中获取公钥和私钥