下载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=.:JAVA_HOME/lib/dt.jar: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 &
来源:CSDN
作者:Superjixuefei
链接:https://blog.csdn.net/Superjixuefei/article/details/103906282