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


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


    操作系统: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目录


    ②双击D:softwaresource_tarkettlekettledata-integrationSpoon.bat运行kettle软件
    a.文件/新建/转换,保存下,此次我保持名为win_centos


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


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




    b.建立一个作业


    将这些文件上传到/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,


    步骤截图如下


    主对像树/DB连接,源数据库和目标数据库都要改
  • 相关阅读:
    Event Recommendation Engine Challenge分步解析第五步
    Event Recommendation Engine Challenge分步解析第四步
    Event Recommendation Engine Challenge分步解析第一步
    Event Recommendation Engine Challenge分步解析第三步
    Event Recommendation Engine Challenge分步解析第二步
    pickle详解
    服从正态分布的样本似然估计的期望和方差
    实战Google深度学习框架-C5-MNIST数字识别问题
    python如何直接控制鼠标键盘
    需要注意的面试题
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239697.html
Copyright © 2020-2023  润新知