精品Kettle例子.docx
- 文档编号:30646389
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:11
- 大小:312.86KB
精品Kettle例子.docx
《精品Kettle例子.docx》由会员分享,可在线阅读,更多相关《精品Kettle例子.docx(11页珍藏版)》请在冰豆网上搜索。
精品Kettle例子
Kettle使用范例
1.错误处理
在转换步骤的过程中,当某个步骤发生错误时可能要进行额外的步骤处理。
因此,在设置时就要求为步骤添加错误处理。
以下面的流程为例:
该流程为将源表的数据同步到目标表中,在目标表中人为的设置某个字段的长度小于源表,让其能在处理过程中会报出异常。
为了可视化处理结果,将同步的结果输出到XML文件中。
选中“TargetTable”步骤,点击鼠标右键,然后选择“Defineerrorhandling…”菜单项,将会弹出设置对话框。
在“Targetstep”中选择后续处理步骤即可。
在各个fieldname填上字段的名字,将会在结果集中多出相应的字段,以便后续步骤能读出相应的错误信息。
例如界面上的“ErrorDesc”字段,将用于保存错误信息。
以上的数据处理流程处理结束之后,“SuccessXMLOutput”步骤生成的XML文件内容为所有同步成功的数据;“ErrorXMLOutput”步骤生成的XML文件内容为所有同步错误的数据。
2.字典翻译
2.1.单选字典翻译
单选字典翻译要使用到“Streamlookup/流查询”步骤,分别要从业务表和字典表中抽取出数据。
“QueryAJXX”步骤负责从业务表中抽取出数据。
“QueryAJLXDictionary”步骤负责从字典表中抽取出字典数据。
“TransformAJLX”步骤负责翻译“ajlx”字段的字典值。
由于使用这种方式翻译单选字段时,要多查询一个字典表,因此最好控制字典表的数据量,以免影响性能。
2.2.多选字典翻译
由于“Streamlookup”只能实现单值的数据查询,无法实现像多选字典这类多值的数据查询,因此“Streamlookup”步骤无法实现多选字典字段的翻译。
多选字典的翻译,只能通过采用调用存储过程的方式实现,这就要使用到“CallDBProcedure”。
由于“CallDBProcedure”步骤在调用存储过程或是函数时,参数设置不能使用常量,只能调用数据流中的字段值。
因此,在调用“CallDBProcedure”步骤之前,要使用“Addconstants”步骤来为数据流添加一个常量字段,做为字典种类。
增加了常量字段之后,该字段就可以在“CallDBProcedure”步骤中引用了。
3.设置转换全局参数
点击主菜单的Transformation菜单项里的“Settings”的子菜单项,调出transfrom设置界面。
选择“Parameters”Tab页,在“Parameters”列表中设置转换流程的全局参数。
在流程设计过程中,可以使用${PARAM_NAME}代表对应全局参数。
4.批量数据单条记录分别转换
在实际应用中,经常会有这样的一种转换情况:
首先要从某个数据源(表或者是格式化文件)中提取出批量数据,然后再对批量数据中的每一条记录分别执行一个完整的数据转换。
这种数据处理流程,在设计时要通过Transformation和Job相结合来实现,以数据传输抽取数据的过程为例:
数据传输首先要从增量表中检索出有哪些更新的表,然后再每个表提取出增量数据的主键信息,最后到业务表中取抽取出业务数据,打包成数据文件。
可以查看Kettle程序samples\jobs\processalltables目录下的例子。
4.1.设计一个总体的Job。
总体流程了分别为“Getlistoftables”Transformation和“Extractatable”子Job。
在“Extractatable”子Job中,“Executeforeveryinputrow”的选项要选中,才能实现当条记录分别执行“Extractatable”Job流程。
4.2.设计一个Transformation取批量数据
“Getlistoftables”Transformation负责从增量表中取得所有增量表的名字。
Transformation的最后一步,要使用“Copyrowstoresult”步骤,以便总体Job能读取。
4.3.设计一个子Job处理单条记录
“Extractatable”子Job负责针对每一个表抽取出增量数据。
在该子Job中,分别设计了两个Transformation:
“Defineextracttablenamevariable”和“Extractontable”。
4.3.1.取单条记录并设置变量
“Defineextracttablenamevariable”Transformation主要是负责从总Job中取出批量数据的单条数据信息,并定义变量信息,以便子Job中的其他Transformation能使用。
“Getrowsfromresult”step负责取得单条数据的信息。
“GetSystemidInfo”step负责取出当前时间。
“Selectvalues”step负责将extracttime字段由日期类型转为字符串。
“DefineExtractTablevariable”step负责设置变量。
“Variablescopetype”为变量的作用域,具体根据需求设置。
4.3.2.执行单条数据的转换
“Extractonetable”Transformation负责执行抽取单个表的数据。
“Gettableupdatedrecordkey”step负责抽取出单表的增量数据主键。
“Databasejoin”step负责根据表主键信息抽取出业务数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 Kettle 例子
![提示](https://static.bdocx.com/images/bang_tan.gif)