centos7.2环境中kettle环境搭建及任务推送配置详解

时间:2023-03-08 17:36:21

目标:将mysql5.5中testdb1的ehr_user表推送到tdoa的ehr_user表中,为避免不必要的麻烦,两张表结构、编码,包括数据库编码保持一致

centos7.2环境中kettle环境搭建及任务推送配置详解



操作系统:centos7.2

kettle:5.2

jdk:1.8.102

数据库:mysql





1.环境搭建

安装jdk1.8.102

rpm -ivh jdk-8u102-linux-x64.rpm





2.下载kettle软件上传到/data/目录下,并解压kettle.zip





3.在windows中建立好推送任务任务

具体步骤:

①安装好jdk1.8.102并设置java环境并设置java_home目录



centos7.2环境中kettle环境搭建及任务推送配置详解

②双击D:\software\source_tar\kettle\kettle\data-integration\Spoon.bat运行kettle软件

a.文件/新建/转换,保存下,此次我保持名为win_centos



centos7.2环境中kettle环境搭建及任务推送配置详解

db连接-新建,输入数据库的名称、连接IP、用户名、密码、数据库名,可以点击测试数据库是否联通,分别建立源数据库和目标数据库连接



centos7.2环境中kettle环境搭建及任务推送配置详解

点击运行可以进行测试是否连通

centos7.2环境中kettle环境搭建及任务推送配置详解centos7.2环境中kettle环境搭建及任务推送配置详解

centos7.2环境中kettle环境搭建及任务推送配置详解

centos7.2环境中kettle环境搭建及任务推送配置详解

centos7.2环境中kettle环境搭建及任务推送配置详解centos7.2环境中kettle环境搭建及任务推送配置详解

b.建立一个作业

centos7.2环境中kettle环境搭建及任务推送配置详解

将这些文件上传到/data/job目录中





kettle任务运行脚本,做成定时任务,每天晚上一次:





1 1 * * * /bin/bash /data/job/appPush/appPush.sh



cat appPush.sh





#!/bin/sh





JAVA_HOME=/usr/java/jdk1.8.0_102

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME

export CLASSPATH 

export PATH





/data/kettle/data-integration/kitchen.sh -file=/data/job/appPush/win_centos.kjb > /data/job/appPush/bi.log





问题描述:





数据库中的数据在不同的数据库中转换来装换去,由于不同库可能使用了不同的字符集,所以可能导致结果数据乱码问题。此次是在一个作业中跑数据,跑完数据前台数据显示出现乱码,检查了作业中的多有中间过程表,包括表输入的预览,表中的数据都是正常的,可想而知,问题肯定是处在“表输入”到“表输出”这个中间的转换环节上,根据能想到的,应该是字符集问题,为了更有保障的“表输入”和“表输出”的字符集相同,所以在表输入输出中。都添加了字符集的配置参数characterEncoding,值为utf8,



centos7.2环境中kettle环境搭建及任务推送配置详解

步骤截图如下



centos7.2环境中kettle环境搭建及任务推送配置详解

主对像树/DB连接,源数据库和目标数据库都要改