KETTL从安装-」简单使用-」java调用总结

介绍

本文主要介绍KETTLE
安装简单使用
SpringBoot如何调取kettle文件进行当量ETL

安装软件

解压即用 永久分享
链接:https://pan.baidu.com/s/1UmsvthJzCUGOQNNeBYCrmA
提取码:f5c3

开始使用 分为Transition、JOB

Transition

打开目录下应用软件即:
\pdi-ce-9.0.0.0-423\data-integration\Spoon.bat

1.创建转换文件:文件下方有图标快速创建 创建转换 保存至自主创建工作空间下
在这里插入图片描述
2.创建数据库连接 ,举例:MYSQL->ORACLE
根据自己需求进行添加填写 目标源数据库及目标数据库 ;

位置:主对象数-> 转换->转换1(转换名称)-> DB连接 右键新建
在这里插入图片描述

点击测试如出此图 为连接成功;

在这里插入图片描述
(友情提示:首次添加数据库时 会提示缺失驱动;
请在\pdi-ce-9.0.0.0-423\data-integration\lib 添加相关驱动jar包 ; 在数据库安装路径中即可找到,注意版本)

3.基本应用
Transition基本组成部分为: 目标源输入 、字段对应转换、 自定义数值映射、插入目标库

位置:
核心对象 ->输入 -> 表输入 ; 在这里插入图片描述
核心对象 ->转换 ->字段选择 ;在这里插入图片描述
核心对象 ->转换 -> 值映射 ; 在这里插入图片描述
核心对象 ->输出 ->插入/更新;在这里插入图片描述
在这里插入图片描述
特殊需求:要求添加自增列 如ID
位置: 核心对象 ->转换 -> 增加序列 ; 在这里插入图片描述
在这里插入图片描述

初步测试方法 :
文件名称下方 点击run即可
在这里插入图片描述

JOB创建

步骤:start -> 转换 ->成功
在这里插入图片描述

其中转换 要添加 ${Internal.Entry.Current.Directory}/t_set_params.ktr 可识别路径;
如填成了 C:/xxx/xxx.ktr 会造成变更路径不可用
同理点击run即可测试
在这里插入图片描述

测试规则:
行级测试 错误信息最为规范:具体问题具体分析

在这里插入图片描述

如何设置局部变量、全局变量及服务器全局变量位置

在transition或者job中任何地方使用, 参数可用 ${xxxx} 代替
其中包括全局变量及局部变量 例如:
在这里插入图片描述
在这里插入图片描述

设置局部标量方法

转换文件 位置 :核心对象-> 作业 -> 设置变量在这里插入图片描述
作业文件 位置:核心对象-> 通用 -> 设置变量在这里插入图片描述
两处都可设置,可按按照自己需求设定
在这里插入图片描述

全局变量设置

检查是否存在文件:
pdi-ce-9.0.0.0-423\data-integration.kettle\kettle.properties
或者 pdi-ce-9.0.0.0-423\data-integration\kettle.properties
本人亲适第二种可用,第一种问官方位置

一般全局变量方便数据统一更换使用;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

KETTLE文件linux服务器运行全局变量位置

一般在 /root/.kettle/kettle.properties 这里
如果没有请自行创建 ;

介绍 Java如何调用KETTLE文件

项目为SpringBoot项目
第一步导包 pom.xml中导入这些:

<!--kettle开始 -->
<dependency>
    <groupId>pentaho-kettle</groupId>
    <artifactId>jsch</artifactId>
    <version>0.1.54</version>
</dependency>
<dependency>
    <groupId>pentaho-kettle</groupId>
    <artifactId>kettle-core</artifactId>
    <version>9.0.0.0-423</version>
</dependency>
<dependency>
    <groupId>org.mozilla.javascript</groupId>
    <artifactId>org.mozilla.javascript</artifactId>
    <version>1.7.0.R2</version>
</dependency>

<dependency>
    <groupId>pentaho-kettle</groupId>
    <artifactId>kettle-engine</artifactId>
    <version>9.0.0.0-423</version>
</dependency>
<dependency>
    <groupId>pentaho-kettle</groupId>
    <artifactId>vfs2</artifactId>
    <version>2-2.2</version>
</dependency>
<dependency>
    <groupId>pentaho-kettle</groupId>
    <artifactId>metastore</artifactId>
    <version>9.0.0.0-423</version>
</dependency>
<dependency>
    <groupId>pentaho-kettle</groupId>
    <artifactId>scannotation</artifactId>
    <version>1.0.2</version>
</dependency>
<dependency>
    <groupId>ojdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>1.0.2</version>
</dependency>
<dependency>
    <groupId>ojdbc8</groupId>
    <artifactId>ojdbc8_g</artifactId>
    <version>1.0.2</version>
</dependency>

<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.20.0-GA</version>
</dependency>
<dependency>
    <groupId>mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.0.0</version>
</dependency>
<dependency>
    <groupId>activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.0.0</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>

<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.2</version>
</dependency>
<!--kettle 结束-->

本地在 安装目录下能找到所需要的包
现将其放置mvn中 举例子 自己找包;
也可通过 https://mvnrepository.com/ 进行jar搜索

我自己整理的包:
链接:https://pan.baidu.com/s/1xHIbYDa5aldrcRlF9Q2GuA
提取码:vtho

放入本地mvn方式:Win+R 执行
在这里插入图片描述

mvn install:install-file -Dfile=C:\lib\jsch-0.1.54.jar -DgroupId=pentaho-kettle -DartifactId=jsch -Dversion=0.1.54 -Dpackaging=jar

mvn install:install-file -Dfile=C:\lib\kettle-core-9.0.0.0-423.jar -DgroupId=pentaho-kettle -DartifactId=kettle-core  -Dversion=9.0.0.0-423 -Dpackaging=jar

mvn install:install-file -Dfile=C:\lib\kettle-engine-9.0.0.0-423.jar -DgroupId=pentaho-kettle -DartifactId=kettle-engine -Dversion=9.0.0.0-423 -Dpackaging=jar

mvn install:install-file -Dfile=C:\lib\metastore-9.0.0.0-423.jar -DgroupId=pentaho-kettle -DartifactId=metastore -Dversion=9.0.0.0-423 -Dpackaging=jar

mvn install:install-file -Dfile=C:\lib\commons-vfs2-2.2.jar -DgroupId=pentaho-kettle -DartifactId=vfs2 -Dversion=2-2.2 -Dpackaging=jar

mvn install:install-file -Dfile=C:\lib\scannotation-1.0.2.jar -DgroupId=pentaho-kettle -DartifactId=scannotation -Dversion=1.0.2  -Dpackaging=jar

mvn install:install-file -Dfile=C:\lib\ojdbc8.jar -DgroupId=ojdbc -DartifactId=ojdbc8 -Dversion=1.0.2  -Dpackaging=jar

mvn install:install-file -Dfile=C:\lib\ojdbc8_g.jar -DgroupId=ojdbc8 -DartifactId=ojdbc8_g -Dversion=1.0.2  -Dpackaging=jar


mvn install:install-file -Dfile=C:\lib\batik-script-1.9.1.jar -DgroupId=batik -DartifactId=batik-script -Dversion=1.9.1  -Dpackaging=jar


mvn install:install-file -Dfile=C:\lib\com.springsource.org.mozilla.javascript-1.7.0.R2.jar -DgroupId=org.mozilla.javascript -DartifactId=org.mozilla.javascript -Dversion=1.7.0.R2  -Dpackaging=jar


mvn install:install-file -Dfile=C:\lib\mailapi-1.0.jar -DgroupId=org.mozilla.javascript -DartifactId=mailapi -Dversion=1.0  -Dpackaging=jar

mvn install:install-file -Dfile=C:\lib\mail-1.0.0.jar -DgroupId=mail -DartifactId=mail -Dversion=1.0.0  -Dpackaging=jar

mvn install:install-file -Dfile=C:\lib\activation-1.0.0.jar -DgroupId=activation -DartifactId=activation -Dversion=1.0.0  -Dpackaging=jar

JAVA调取kettle 干货 直接可用KettleUtil

变量参数格式:{"YEAR":"2020","MONTH":"07"}
KettleUtil.runJob(路径,变量参数);
/**
 * JAVA 调取 Kettle 工具转换类
 */
@Slf4j
public class KettleUtil {

     //1.通过文件方式执行转换。
    public static void runTransfer(String[] params, String ktrPath) {
        Trans trans = null;
        try {
            // // 初始化
            // 转换元对象
            KettleEnvironment.init();// 初始化
            EnvUtil.environmentInit();
            TransMeta transMeta = new TransMeta(ktrPath);
            // 转换
            trans = new Trans(transMeta);
            // 执行转换
            trans.execute(params);
            // 等待转换执行结束
            trans.waitUntilFinished();
            // 抛出异常
            if (trans.getErrors() > 0) {

                throw new Exception(
                        "There are errors during transformation exception!(传输过程中发生异常)"+ktrPath);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    //2.通过文件方式执行job

    /**
     *
     * @param jobPath 文件路径
     * @param varObj  程序定义 变量 与 kettle中的全局标量和局部标量一样,优先级最高
     */
    public static void runJob(String jobPath, JSONObject varObj) {
        log.info(jobPath+"开始转换");
        //JOB转换
        try {
            //防止缺少插件报错;将安装目录下plugins 移至服务器
            StepPluginType.getInstance().getPluginFolders().add(new PluginFolder("/data/etl/plugins", false, true));
            KettleEnvironment.init();
            // jobname 是Job脚本的路径及名称
            JobMeta jobMeta = new JobMeta(jobPath, null);
            log.info(jobPath+"转换了");
            Job job = new Job(null, jobMeta);

            // 设置变量 java代码中变量会覆盖kettle里面设置的变量
            if(BeanUtils.isNotEmpty(varObj)){
                for(String key:varObj.keySet()){
                    job.setVariable(key, varObj.getString(key));
                }
            }

            job.start();
            job.waitUntilFinished();
            log.info(jobPath+"结束了");
            if (job.getErrors() > 0) {
                log.info("这个出现问题"+jobPath);
                throw new Exception(
                        "There are errors during job exception!(执行job发生异常)"+jobPath);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Kettl图书下载是指通过使用Kettl图书平台下载电子图书资源的过程。Kettl图书是一个拥有大量电子图书资源的在线平台,用户可以在该平台上下载各种各样的电子图书,包括小说、科普读物、教育参考书等等。 要进行Kettl图书下载,首先需要用户在平台上注册一个账号,并登录进入自己的个人用户界面。在个人界面中,用户可以根据自己的兴趣和需求,搜索所需的图书资源。平台上提供了多个搜索选项,用户可以根据关键词、作者、分类等进行搜索,以快速找到所需资源。 当找到想要下载的图书后,用户可以点击图书的详情页面,获取更加详细的信息。包括图书的简介、作者信息、出版社等。如果这本图书是可以下载的,就会在页面上显示一个下载链接。 用户点击下载链接后,系统会提示用户选择下载格式(如PDF、EPUB等)和设备类型(如电脑、手机等)。用户可以根据自己的设备和喜好进行选择,然后点击下载按钮即可开始下载。 在下载完成后,用户可以在自己的设备上找到下载的图书文件,使用相应的阅读软件进行打开和阅读。同时,Kettl图书平台也提供了一些额外的功能,比如添加标签、做笔记、设置阅读进度等,用户可以根据自己的需要进行个性化设置和管理。 总而言之,Kettl图书下载是一个方便快捷的方式,让用户可以随时随地获取到自己喜欢的电子图书资源,并且更加灵活地进行阅读和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lono27

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值