kettle安装部署及使用MySQL转DB2

穿精又带淫゛_ 提交于 2020-01-18 08:01:11

下载kettle
下载MySQL和DB2的驱动,解压驱动到文件夹lib下(驱动网上都可以找到)

在这里插入图片描述双击运行kettle,时间会有点长,稍等1,2分钟左右在这里插入图片描述
双击运行kettle,时间会有点长,稍等1,2分钟左右
在这里插入图片描述
进入kettle界面,转换输入表输入(按住‘表输入’往右边拖)
在这里插入图片描述
双击右边的‘表输入’进入配置数据库信息,点击新建,类型选择MySQL数据库
在这里插入图片描述
为了防止中文乱码,指定字符集characterEncoding utf8,
在kettle的启动文件添加字符集,即在 Spoon.bat 文件中添加 “-Dfile.encoding=UTF-8”
在这里插入图片描述
在这里插入图片描述
配置好后点击‘测试‘,如下图显示是为正常
在这里插入图片描述
点击获取SQL查询语句,选择对应的表之后(每次只能指定一张表),方可预览表中数据
在这里插入图片描述
同上,“表输入”配置完毕,接下来可配置“插入/更新”,输出->插入/更新(按住‘插入/更新’往右边拖),按住shift点击‘表输入‘再点击’插入/更新‘建立联系
在这里插入图片描述
双击‘插入/更新‘进行数据库配置,在’选项‘中配置utf8字符集(同上)
在这里插入图片描述
点击测试
在这里插入图片描述
选择‘目标模式‘、’目标表‘(每次只能指定一张表),点击’获取字段‘、’获取和更新字段‘是mysql表字段与之匹配
在这里插入图片描述
在这里插入图片描述
增量转换
首先获取某个字段的最大值,然后把这个值作为下个‘表输入’的条件
SELECT coalesce(max(字段名),0) maxId FROM 库名.表名
在这里插入图片描述
?代表上个步骤的值
在这里插入图片描述
上面左右操作均为‘转换’模式
作业模式
建立新的作业任务,双击‘转换’,路径选择之前配置好的转换任务
在这里插入图片描述
双击‘start’可以进行系统自带定时任务的配置(缺陷:必须在kettle程序运行的情况下进行配置),windows系统下可设置定时任务,必须在开机状态下定时,所以靠谱的话还是在Linux系统下设置定时任务
在这里插入图片描述
Linux系统下部署kettle
把windows系统下面的kettle包打包发送到Linux系统下面,/etc/profile下配置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_212
export \CLASSPATH=.:JAVAHOME/jre/lib/rt.jar:JAVA_HOME/jre/lib/rt.jar:JAVA_HOME/lib/dt.jar:JAVAHOME/lib/tools.jarexportPATH=JAVA_HOME/lib/tools.jar export PATH=PATH:$JAVA_HOME/bin

启用环境变量
source /etc/profile

验证环境变量是否启用
java -version

在这里插入图片描述
解压kettle包,并赋权
cd kettle路径下
chmod +x *.sh
在这里插入图片描述
运行kitchen.sh,如果出现下面的界面说明kettle可以使用
在这里插入图片描述
在spoon.sh添加指定字符集
在这里插入图片描述
从Windows上面把先前配置好的‘转换’(ktr)和‘作业’(kjb)文件导入Linux下面,修改‘作业’文件的路径
在这里插入图片描述
配置任务脚本,-file为Windows导入过来的‘作业’任务路径,
-level为日志级别,-logfile为指定日志文件路径
在这里插入图片描述
-level=logging level 设置日志级别

Error:只显示错误

Nothing:不显示任何输出

Minimal:只使用最少的记录

Basic:这是默认的基本日志记录级别

Detailed:详细的日志输出

Debug:以调试为目的,非常详细的输出

Rowlevel:使用行级记录,会产生大量的数据

返回状态,Pan会基于执行状况返回一个错误码:

0:转换执行成功
1:处理过程中发生错误
2:在装载或者运行时发生意外的错误
3:不能初始化转换
7:转换不能从资源库或xml中装载
8:装载步骤或插件错误(通常是装载其中一个插件错误)
9:命令行用法错误

最后使用crontab进行定时任务的设置(每天凌晨一点执行test.sh文件)
01 01 * * * nohup bash /data1/kettle/test.sh &

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!