kettle 教程(四):自定义 Java 代码

kettle 教程(四):自定义 Java 代码kettle拥有很多自带的组件,能帮我们实现很多的功能。但是我们总有一些很复(qi)杂(pa)的需求,用自带的组件实现不了,或者说实现起来很复杂。那么这时我们就要用到万能的组件了(Java代码),通过自己写代码来实现任何想要的功能。自定义Java代码假设有这样一个需…

大家好,又见面了,我是你们的朋友全栈君。

背景

kettle 拥有很多自带的组件,能帮我们实现很多的功能。

但是我们总有一些很复(qi)杂(pa)的需求,用自带的组件实现不了,或者说实现起来很复杂。那么这时我们就要用到万能的组件了( Java 代码),通过自己写代码来实现任何想要的功能。

自定义 Java 代码

假设有这样一个需求,user 表中有 id , code , name 这三个字段。

如果 code 为空,我们就取 name 的值来代替;

如果 code 不为空,那么就在 code 后面拼接上 “123” 。

当然这个需求不算复杂,用其它的一些组件结合起来也能实现,我们这边只是举个例子,用来介绍 Java 代码这个组件。

我们直接来看流程。

首先还是需要配置数据源(数据源配置可以参考该系列的第一篇文章介绍),并且使用一个表输入:

kettle 教程(四):自定义 Java 代码

接着,我们在左边找到 Java 代码这个组件,拖动到右方,将其与表输入连接起来:

kettle 教程(四):自定义 Java 代码

接着双击 Java 代码,在左侧找到 Main 方法并双击,可以看到右侧自动生成了原始代码:

kettle 教程(四):自定义 Java 代码

在右侧代码编辑区域,写入我们自定义的代码:

kettle 教程(四):自定义 Java 代码

运行一下,我们可以在下方调试区域看到处理前和处理后的值:

kettle 教程(四):自定义 Java 代码

这就是一个简单的自定义 Java 代码的例子,通过几行代码,就能实现原来需要多个组件实现的功能。

通过自定义代码,还能实现计数的功能,如下所示:

kettle 教程(四):自定义 Java 代码

总结

kettle 是一个基于 Java 开发的 ETL 工具,本身自带了一些常用的组件,可以满足一些常用的需求。

而通过 Java 代码这个组件,可以利用代码,来实现任何想要的功能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142466.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手把手教你写专利申请书/如何申请专利

    手把手教你写专利申请书/如何申请专利手把手教你写专利申请书·如何申请专利 摘要小前言(一)申请前的准备工作   1、申请前查询   2、其他方面的考虑   3、申请文件准备(二)填写专利申请系列文档   1、实际操作步骤   2、具体操作   3、经验分享、注意事项(三)关于费用(四)其他的话参考资源提示常见问题的问与答 摘要:   如何写好专利申请?由于很多专利申请人都…

    2022年6月11日
    29
  • RabbitMQ消费消息坑:failed to convert serialized Message content

    RabbitMQ消费消息坑:failed to convert serialized Message content文章目录一、问题描述二、解决方案方案一:共同使用一个对象方案二:消息JSON序列化(推荐)2.1.生产者发送消息JSON序列化2.2.消费者接收消息JSON反序列化三、测试一、问题描述2022-05-0314:01:40.630WARN16876—[ntContainer#0-2]s.a.r.l.ConditionalRejectingErrorHandler:ExecutionofRabbitmessagelistenerfailed.org.springfram

    2022年6月16日
    633
  • OkhttpClient的使用详解

    **概述及特性**HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttpClient是一个高效的HTTP客户端,它有以下默认特性:支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接连接池减少请求延时透明的GZIP压缩减少响应数据的大小缓存响应内容,避免一些完全重复的请求当网络出现问题的时候OkHttp依…

    2022年4月1日
    41
  • 3极管的原理_二极管讲解

    3极管的原理_二极管讲解我们把晶体管比作两个二极管时候,是指基极-射极二极管和基极-集电极二极管。NPN型二极管与PNP型二极管对三极管放大作用的理解,切记一点:能量不会无缘无故的产生,所以,三极管一定不会产生能量。但三极管厉害的地方在于:它可以通过小电流控制大电流。放大的原理就在于:通过小的交流输入,控制大的静态直流。假设三极管是个大坝,这个大坝奇怪的地方是,有两个阀门,一个大阀门,一个小阀门。小阀门可以用…

    2022年10月21日
    3
  • pycharm中的注释_java中单行注释

    pycharm中的注释_java中单行注释”””注释””””’注释”’\#注释前两种不是真正的注释,知识字符串的另一种表现形式,例如会被用于写__doc__等长字符串的时候起到保留格式的目的,虽然能够完成注释功能,但实际上还是字符串。按ctrl+/即可快速注释代码块ps.转载出处作者已注销账号…

    2022年8月26日
    6
  • JS、ActiveXObject、Scripting.FileSystemObject

    JS、ActiveXObject、Scripting.FileSystemObjectJavascript之文件操作(IE)一、功能实现核心:FileSystemObject对象要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对象。&#1

    2022年7月1日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号