Kettle手册-SwitchCase 控件

Kettle手册-SwitchCase 控件,第1张

介绍 Switch Case 控件

在转换中有这样一个控件

这个类似于SQL中的case when这种功能,通过条件控件来走不同的节点,还是有一些应用场景的,这里简单介绍下简单使用方法。

我们使用Switch Case控件,根据结果集中的某一个字段,来判断这行记录应该走下游的哪一个节点

需求1:

在Switch Case中,进行如下配置,就类似与 *** 作版的case when

然后使用3个日志控件进行输出

然后就没啥了,主要注意的一点是,转换中执行顺序的问题,在转换中每个控件的执行顺序不是按照hop串行的,如果两者没有数据流依赖,应该会并行,这里可以使用一种方式来解决,就是将一组 *** 作放到一个转换中,再去调用就可以了。

1统计是转换里面的第十三个分类。

2统计是提供数据的采样和统计功能。

分组是按照某一个或某几个进行分组,同时可以将其余字段按照某种规则进行合并。

注意:

分组之前数据应该进行排序!

案例:

从Excel读取数据,按照group进行分组统计,把结果保存到Excel

分析:

输入:Excel输入

统计:分组

输出:Microsoft Excel输出

kettle中有一个控件叫“生成随机数”,里面可以生成随机数字,随机整数,但是好像没有能指定范围的地方。

如果想实现,可以借助“java代码”来实现,以下是我的程序,经过了测试可以运行,希望对你有所帮助。

首先建立一个转换

自定义常量数据

java代码

import javautilRandom;

import javaioFile;

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws Exception

{  

Object[] r = getRow();  

if (r == null) {

setOutputDone();

return false;

}

Random rand = new Random();

int a= randnextInt(21)+5;

String randNum = StringvalueOf(a);

get(FieldsOut, "randNum")setValue(r,randNum);

putRow(dataoutputRowMeta, r);  

return true;

}

设置变量

写日志

配置完毕后运行结果

因为不知道你的范围,我程序区的范围是[5,25],因此JAVA代码中为

int a= randnextInt(21)+5

百度了下随机数,你的范围请根据以下规则来写

int a =randnextInt(MAX - MIN + 1) + MIN; // a 将被赋值为一个 MIN 和 MAX 范围内的随机数

纯人工码字测试,有财富值希望追加,谢谢采纳

打开kettle,定义数据源

1

kettle中定义两个数据源,其中“DS_ERP”是来源数据库,“DS_ODS”是用于同步的数据库

END

新建转换,用于同步某一张表

1

新建一个转换(执行SQL脚本--->>表输入--->>表输出)

执行SQL脚本:删除DS_ODS库中已经存在的数据

表输入:查询DS_ERP库中的数据

表输出:将“表输入”中的结果输出到DS_ODS库中

2

执行SQL脚本:删除DS_ODS库中已经存在的数据

${qy_table_name}:这个是参数,指同步的表名

3

表输入:查询DS_ERP库中的数据

${qy_table_name}:这个是参数,指同步的表名

4

表输出:将“表输入”中的结果输出到DS_ODS库中

${qy_table_name}:这个是参数,指同步的表名

END

新建转换,用于获取需要同步的表名

1

新建一个转换(文本文件输入--->>复制结果到记录)

文本文件输入:通过读取指定txt文件,获取所有要同步的表。(这里也可以通过其他方式获取,例如通过sql查询数据库系统表)

2

指定txt文件路径

3

定义txt文件中的字段名,同上一步中定义的参数名

4

txt中定义需要同步的表,每行一张表名

END

新建任务,实现批量同步

新建任务,调用前面的转换

其中,同步表的转换需要设置循环执行,并将获取到的表名传递到转换内部

以上就是关于Kettle手册-Switch/Case 控件全部的内容,包括:Kettle手册-Switch/Case 控件、Kettle09:Kettle统计控件、Kettle如何取得指定范围的随机数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/10144908.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存