前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kettle的作业和参数组件

kettle的作业和参数组件

作者头像
别先生
发布2020-02-26 15:42:25
2.2K0
发布2020-02-26 15:42:25
举报
文章被收录于专栏:别先生别先生

1、大多数ETL项目都需要完成各种各样的维护工作。例如,如何传送文件;验证数据库表是否存在,等等。而这些操作都是按照一定顺序完成。

  1.1)、因为转换以并行方式执行,就需要一个可以串行执行的作业来处理这些操作。一个作业包含一个或者多个作业项,这些作业项以某种顺序来执行。作业执行顺序由作业项之间的跳(Job hop)和每个作业项的执行结果来决定。

  1.2)、作业项是作业的基本构成部分。如同转换的步骤,作业项也可以使用图标的方式图形化展示。但是,如果你再仔细观察,还是会发现作业项有一些地方不同于步骤:在作业项之间可以传递一个结果对象(result object)。这个结果对象里面包含了数据行,它们不是以数据流的方式来传递的。而是等待一个作业项执行完了,再传递个下一个作业项。因为作业顺序执行作业项,所以必须定义一个起点。有一个叫“开始”的作业项就定义了这个点。一个作业只能定一个开始作业项。

  1.3)、作业跳,作业的跳是作业项之间的连接线,他定义了作业的执行路径。作业里每个作业项的不同运行结果决定了做作业的不同执行路径。

    a)、无条件执行:不论上一个作业项执行成功还是失败,下一个作业项都会执行。这是一种蓝色的连接线,上面有一个锁的图标。     b)、当运行结果为真时执行:当上一个作业项的执行结果为真时,执行下一个作业项。通常在需要无错误执行的情况下使用。这是一种绿色的连接线,上面有一个对钩号的图标。     c)、当运行结果为假时执行:当上一个作业项的执行结果为假或者没有成功执行是,执行下一个作业项。这是一种红色的连接线,上面有一个红色的停止图标。     d)、在图标上单击就可以对跳进行设置。

2、对于ETL参数传递是一个很重要的环节,因为参数的传递会涉及到业务数据是如何抽取。参数分为两种:全局参数和局部参数。

  1)、全局参数,定义是通过当前用户下.kettle文件夹中的kettle.properties文件来定义(在这个C:\Users\.kettle目录里面的哦!)。定义方式是采用键=值对方式来定,如:start_date=20130101。注:在配置全局变量时需要重启Kettle才会生效。

  2)、局部参数,局部参数变量是通过“Set Variables”与“Get Variables”方式来设置。注:在“Set Variables”时在当前转换当中是不能马上使用,需要在作业中的下一步骤中使用。

  3)、参数的使用,Kettle中参数使用方法有两种:一种是%%变量名%%,一种是${变量名},推荐后者。注:在SQL中使用变量时需要把“是否替换变量”勾选上,否则无法使变量生效。

自己加的两个参数,PAGESIZE=4、STARTROW=0,重启Kettle以后顺序出现了乱序。

也可以去Kettle的编辑,编辑Kettle.properties文件,查看自己配置的全局参数的。

可以使用图元去测试自己配置的全局参数,如下所示,记得勾选替换SQL语句中的变量。

3、常量传递就是先自定义常量数据,在表输入的SQL语句里面使用?来替换。问号的替换顺序就是常量定义的顺序。

使用上一个步骤的常量值,如果要执行每一行,还要勾选每一行这个单选框的。

4、转换命名参数,就是在转换内部定义的变量,作用范围是在转换内部。在转换的空白处右键,选择转换设置就可以看见。

使用表输入参数传递,变量传递,转换命名参数,记得勾选替换SQL语句里的变量。

5、设置变量、获取变量,在转换里面有一个作业分类,里面有设置变量和获取变量的步骤。注意:“获取变量”时在当前转换当中是不能马上使用,需要在作业中的下一步骤中使用!

表输入参数传递,变量传递,转换内设置变量和获取变量。

获取变量,如下所示:

6、变量可以在转换里面设置,也可以在作业里面设置。表输入参数传递,变量传递,作业里设置变量。

7、发送邮件就是执行成功、失败、其它某种情景给相关人员发送邮件。

  注意:只有企业邮箱才可以!个人邮箱不行!并且需要在邮件设置中开通客户端授权码!

用户验证,允许在客户端登录需要进行邮件设置。

设置消息,然后就可以进行发送消息了。

作者:别先生 博客园:https://www.cnblogs.com/biehongli/ 如果您想及时得到个人撰写文章以及著作的消息推送,可以扫描上方二维码,关注个人公众号哦。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档