kettle的作业和参数组件
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/
如果您想及时得到个人撰写文章以及著作的消息推送,可以扫描上方二维码,关注个人公众号哦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2018-02-18 java.util.zip.ZipException: invalid LOC header (bad signature)
2018-02-18 mybatis_generator_逆向工程的使用笔记