加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹤壁站长网 (https://www.0392zz.cn/)- 分布式云、存储数据、视频终端、媒体处理、内容创作!
当前位置: 首页 > 大数据 > 正文

开源ETL工具kettle系列之动态转换

发布时间:2021-02-04 14:47:56 所属栏目:大数据 来源:网络整理
导读:摘要 本文主要讨论使用Kettle来设计一些较为复杂和动态的转换可能使用到的一些技巧,这些技巧可能会让你在使用Kettle的时候更加容易的设计更强大的ETL任务。 动态参数的传递 Kettle 在处理运行时输入参数可以使用JavaScript 来实现,大部分工作只是按照一个

Display 和 shell 都是swt 里面的对象,你只用知道他们是表示UI的就可以了.
DateFromProposal和DateToProposal都是前面传过来的字段,dateFromAsString和dateToAsString都是需要输出的内容,整个脚本只是简单的取了两个日期变量的时间部分,使用了字符串操作的substr()函数。
其中有三点需要注意:
1. dialog对象的初始化方式:使用的构造函数类型为
EnterTextDialog(Shell parent,String title,String message,String text),另一种构造函数类型是加一个参数fixed :
EnterTextDialog(Shell parent,String text,boolean fixed)
fixed代表字体是否用固定宽度,text参数代表的是输入在对话框里面的值,一般可以默认为空或输入一段用户提示信息,例子中是设置成原先转换之前的值,相当于默认值。
2. 使用open()函数取得输入值
我们调用dialog 的open()函数取得输入的值。
3. 异常的处理方式
基本上是一个标准的java 语法的try catch throw .
最后运行一下并查看输出,运行的时候什么都不输入接受默认值就可以了,最后查看输出,以下是文本方式的输出,以分号分割
DateFromProposal;DateToProposal;dateFromAsString;dateToAsString
2006/01/01 00:00:00.000;2006/12/31 00:00:00.000;2006/01/01;2006/12/31

最后需要注意的是这种方式的实现可能将来会直接用一个新的step来实现,不用这样写脚本。

调试

调试可不是程序的专利,ETL过程同样需要调试过程,Kettle同样支持比较简单的调试过程,你可能已经发现了在菜单下面的工具栏下面有一个debug 和preview 按钮来支持调试过程,这种调试的技巧同样可以用来帮助你完成一些复杂的ETL工程,下面以一个例子来解释调试过程.
首先,打开samples / add sequence specify a common counter.ktr 文件,你会发现一个定义了两个sequence 的转换,点击debug按钮,它会弹出一个Transformation debug dialog 窗口。

这里写图片描述


这个窗口左边列出了在这个转换中所有的步骤,我们选取Generate ID 步骤,然后设置断点的条件:
Kettle支持两种断点的方法,一种基于限定结果集的数量大小,另一种是基于条件的判断过程。
我们选择基于结果集大小的方式,只查看前面5条数据。
你会看到Kettle列出了Generate ID 步骤产生的前面5条数据,

这里写图片描述


从上图中可以看到这个generate id 步骤产生了5个值并不是连续的,下面的按钮Close,Stop 可以控制当前线程是继续还是停止.

利用调试的方法可以帮住我们设计一些需要基于条件判断的复杂ETL过程,我们使用调试的方法来查看数据中是否可能存在某些特定数据,以此来设计一些ETL过程针对这些数据进行处理。

(编辑:鹤壁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读