当前位置:网站首页 / ETL / 正文

[AY]写给自己的Kettle笔记7

时间:2019年02月19日 | 作者 : aaronyang | 分类 : ETL | 浏览: 1516次 | 评论 0

====================www.ayjs.net       杨洋    wpfui.com        ayui      ay  aaronyang=======请不要转载谢谢了。=========

例23 Switch/Case

输入->自定义常量

image.png

流程->Switch / Case

然后

流程->拖动4个 空操作(什么也不做)

image.png

然后双击Switch

image.png

点击确定,

然后按住Shift键拖动到 条件满足后的步骤

image.png

开始设置

然后再次打开Switch设置

image.png



例24 识别流最后一行

image.png



例25 过滤记录

功能:通过使用表达式从输入流中过滤数据,将结果是TURE或FALSE的流输出到不同的节点。用户可以增加多个表达式,并用AND或OR连接

image.png

等于If的条件语句

选择字段,比较符,参考值

image.png

我设置的当Card等于1000时候

image.png

这里支持And,Or,也支持字段参考比较


image.png

image.png




例26 阻塞数据直到步骤都完成

image.png

这里我们模拟两条执行线路

image.png

延迟5秒,是在这里

image.pngimage.png

这个时候我们单击阻塞数据知道步骤都完成,可以选择要同步都完成的步骤

image.png

运行转换后,第二个步骤开始时候,等待1000的支持步骤完成,才会继续执行

image.png


例27 Javascript/JAVA脚本

功能描述:执行JS脚本,并且提供了很多函数

注意事项:

结果必须再赋给一个字段;

新字段的类型一定要给出,要不报错;

新字段添加为流的新列

image.png

js转换时间

var datString = date2str(datOriginal, "yyyyMMdd");

image.png

java脚本

image.png

那么也可以java过滤器

image.png

image.png

image.png

image.png

感觉就是个java中的if的条件语句编写。




例28 执行SQL脚本

包括DDL语句和DML语句,这里可以创建表

image.png

SQL语句中的第一个问号,会被下面

参数表格,按照行索引对应的字段的值替换。


检查表是否存在

image.png

发现image.png表名字段无法输入。

判断表是否含有某个列也无法操作

image.png




例29 调用存储过程

现在测试库,创建个存储过程

create procedure p1
@UN varchar(255)
as
SELECT * FROM UserInfo where Username=@UN
Go

功能描述:执行存储过程并获得返回值,返回值只有一个,参数可以多个

注意事项:返回值只有一个,并且只针对函数;当调用的过程时,返回值名称要删除


如果是返回列表类型的

使用表输入

image.png

然后就可以拿到值了

image.png


image.png



如果是 不带返回值的

ALTER procedure [dbo].[p3]
@id int
as
update UserInfo set Email='newEmail' where id=@id
go

image.png

image.pngimage.png

上图参数错了,修改自定义常量为id,这里名称不要太重要,为了好读,才和存储过程参数名一致的。

image.png

执行前

image.png

执行后,id为2的email被改了

image.png


如果存储过程具有返回值

创建一个p5的存储过程

create procedure p5
@id int,
@un varchar(255) output
as
select @un=UserName from userinfo where id=@id
go

sql中执行

declare @un varchar(255)
exec p5 '2',@un output
select @un

image.png

那么在kettle中执行

image.png

增加一个OUT的参数,这个参数是返回赋值的,不用在上一步定义。


例30 连接-排序记录和排序合并(自己实践下)

image.png

数据合并记录前必须排序,否则每次同步完数据是变化的

排序后面一般跟排序合并,用于集群状态下好像

按照中文字段排序可能会有问题,所以尽量避免中文字段排序

“仅仅传递非重复的记录”就是去掉这个字段的重复的记录

(只要是这个字段的重复记录就去掉,同行的不是重复的也去掉)

image.png

合并记录

功能描述:

用于比较两组输入数据,其中一组是引用流,一组是比较流,每次比较后只有最新版本的行数据被输出到下一步。

比较结果包括:

idectical一致:两组流的主键一致,值一致

changed有变化:两组流的主键一致,值有一个或多个不同

new新行:引用流中有而比较流中没有某一主键

deleted被删除的行:比较流中有而引用流中没有某一主键

image.png

例31 

下篇博客讲解


推荐您阅读更多有关于“kettleetl,”的文章

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

抖音:wpfui 工作wpf,兴趣学习flutter

目前在合肥市某公司上班,已经厌弃,如果你的公司看的上我,加我QQ私聊

AYUI8全源码 Github地址:前往获取

杨洋(AaronYang简称AY,安徽六安人)AY唯一QQ:875556003和AY交流

高中学历,2010年开始web开发,2015年1月17日开始学习WPF

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

标签列表