《ETL数据预处理技术》课件-任务5 数据转换_第1页
《ETL数据预处理技术》课件-任务5 数据转换_第2页
《ETL数据预处理技术》课件-任务5 数据转换_第3页
《ETL数据预处理技术》课件-任务5 数据转换_第4页
《ETL数据预处理技术》课件-任务5 数据转换_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ETL数据预处理技术任务五数据转换任务5.1数据合并Kettle数据转换可以完成数据合并、排序及运算功能,本节主要学习数据高级转换——运算。数据合并实际应用中,对源文件数据进行转换时,往往采取转换存储格式或数据类型实现,而kettle可以省去文件转换环节,在不改变源文件的基础上,对其数据进行一系列运算,得到所需结果。01.数据集连接02.目录多种不同数据源合并CONTENTS子任务5.1.1数据集连接该控件可以完成多种不同的数据源的横向整合,如Excel文件、文本文件、数据表等,整合后的数据字段会增加,但记录数不会改变在某年级月考结束后,语文、数学、英语老师各自对全班学生的单科成绩进行了统计,现需要将三科成绩合并为一个文件。任务提出:数据准备准备如下三个文件:注意:合并前的各文件需按相同的字段进行排序Step1:创建转换使用Kettle工具,创建一个转换,命名为“多数据转换”,将结果导出为Excel文件形式,分别将Excel文件输入重命名,如下图:

Step2:配置“语文成绩”打开“语文成绩”对话框,先点击“文件或目录”右侧的“浏览”,添加文件所在路径,再单击“增加”,将文件添加到“选中的文件”中。Step2:配置“语文成绩”切换到“工作表”选项卡下,获取工作表的名称为“sheet1”,起始行、起始列均设置为0(这里的设置根据导入的Excel文件中的实际表名和起始行列而定)Step2:配置“语文成绩”切换到“字段”选项卡下,单击【获取来自头部数据的字段】,得到文件中各字段及其属性,如下左图,预览记录如下右图:Step3:配置“数学成绩”重复以上步骤,配置“数学成绩”与“英语成绩”,预览记录如下图:Step3:配置“排序记录”双击“排序记录”控件,打开对话框,在“字段名称”处选择“学号”,设置为升序排序,然后点击“确定”按钮,如下图Step3:配置“排序记录”重复以上步骤,配置“排序记录2”、“排序记录3”Step4:配置“MultiWaymergejoin”打开“MultiWaymergejoin”

对话框,将其改名为“多路数据合并”,设置如下图:

joinStep4:配置“MultiWaymergejoin”【Multiwaymergejoin】组件的参数含义如下表:参数名称说明Stepname表示多路数据合并连接组件名称,在单个转换工程中,名称必须唯一。默认值是【Multiwaymergejoin】的组件名称InputStepN表示合并连接的第N(N=1,2,3,4,…)个输入组件的名称,在下拉框中选择输入组件名称。默认值为空JoinKeys表示对应所在行InputStepN输入组件的连接关键字段。单击所在行的【SelectKeys】按钮,在弹出的对话框中选择字段名称。默认值为空JoinType表示多个源数据表的连接类型。在下拉框中选择连接类型,默认值为INNER。连接类型如下FULLOUTER:连接结果包含来自多个数据源表的所有记录,而不匹配的记录,字段值被系统设为空(null)INNER:只有在多个源数据表中具有相同关键字段值的记录才会包含在连接结果中(内连接)Step4:配置“字段选择”打开“字段选择”对话框,切换到“移除”选项卡下,如下图设置要移除的字段,单击“确定”完成设置Step3:配置“公式”编辑“总分”字段,输入总分的计算公式,如下图,注意此处的符号均为英文符号,单击【ok】按钮完成。Step4:配置“Excel输出”打开“Excel输出”对话框,设置结果文件名如下图:Step4:配置“Excel输出”输出字段如下图:Step5:运行转换查看“步骤度量”,如下左图,发现读取了156条,写入了52条记录,合并后的而部分内容如下右图所示。子任务5.1.2记录集连接记录集连接是将具有相同关键字字段的两个记录进行合并某单位的职工信息如下图,将两个文件合二为一。任务提出:Step1:创建转换使用Kettle工具,创建一个转换,命名为“公式应用”

,并添加“Excel输入”控件、“排序记录”、“记录集连接”、“Excel输出”控件,如下图:Step2:配置“Excel输入”打开“Excel输入”对话框,修改步骤名称为“职工信息1”,,点击“文件或目录”右侧的“浏览”,添加文件所在路径,再单击“增加”,将文件添加到“选中的文件”中。Step2:配置“Excel输入”单击【字段】选项卡中的“获取来自头部数据的字段”,得到相应字段,并将“编号”的类型改为“integer”,单击【确定】完成配置。Step3:配置“Excel输入”重复step2操作,配置“Excel输入2”,将其改名为“职工信息2”,如下图:Step4:配置“排序记录”打开“排序记录”对话框,在字段名称处选择“编号”,设置升序排序,单击【确定】完成配置Step5:配置“排序记录2”打开“排序记录2”对话框,在字段名称处选择“编号”,设置升序排序,单击【确定】完成配置Step6:配置“记录集连接”双击“记录集连接”控件,打开对话框,分别设置“第一个步骤”为“排序记录”,第二个步骤”为“排序记录2”,连接类型默认设置“INNER”,连接字段为“编号”,因为两个文件的关键字为“编号”Step6:配置“记录集连接”【记录集连接】组件的参数包含组件的基础参数和连接字段表参数,有关参数说明如表所示。Step7:配置“Excel输出”双击“Excel输出”控件,打开对话框,设置结果文件名,如左图Step7:配置“Excel输出”切换到【字段】选项卡,单击【获取字段】。此处也可以删除“编号_1”字段,点击【确定】完成设置Step8:运行转换运行转换,打开“职工完整信息.xlsx”,可以看到两个文件的信息均有呈现。Step3:配置“JavaScript代码”这里组件名称用默认值“JavaScript代码”。在【JavaScript】编辑区中,编辑JavaScript脚本如下。var奖牌总数=0;for(vari=0;i<getInputRowMeta().size();i++){varvalueMeta=getInputRowMeta().getValueMeta(i);if(valueMeta.getTypeDesc().equals("Number")){

奖牌总数=奖牌总数+str2num(row[i]);}}Step3:配置“JavaScript代码”单击【获取变量】,字段框中会出现所有字段,选中需要删除的行,右单击然后点击“删除选中的行”,只保留“奖牌总数”,对该字段的设置如左图。单击【确定】按钮完成控件配置。Step4:运行转换单击工作区上方的运行按钮,开启运行,保存为“JavaScript代码应用”,运行结果如右图:小结连接两个具有相同关键字字段的记录文件记录集连接连接两个以上个文件,要求具有相同的关键字多路数据合并多路数据合并二者均要求合并前对源文件进行排序。“多路数据合并”的功能也可用通过多个“记录集连接”实现任务5.2数据高级转换Kettle数据转换可以完成数据合并、排序及运算功能,本节主要学习数据高级转换——运算。数据高级转换实际应用中,对源文件数据进行转换时,往往采取转换存储格式或数据类型实现,而kettle可以省去文件转换环节,在不改变源文件的基础上,对其数据进行一系列运算,得到所需结果。01.“公式”控件应用02.03.目录“JavaScript代码”控件应用“利用janino计算java表达式”控件应用CONTENTS子任务5.2.1“公式”控件应用公式是用来计算数据流中数据的表达式。公式可以是“A+B”这样的简单计算,也可以是类似“if/then”复杂业务逻辑判断的表达式在某年级的“期末考试成绩.xls”文件中,为了统计成绩以表彰优秀的学生,需要使用公式组件,统计学生所有考试科目的总分,并对总分650分以上的学生评优标注“优秀”任务提出:数据准备“期末考试成绩”文件,内容如下图;Step1:创建转换使用Kettle工具,创建一个转换,命名为“公式应用”

,并添加“Excel输入”控件、“公式”脚本控件以及Hop跳连接线如下图:Step1:创建转换打开“Excel输入”对话框,先点击“文件或目录”右侧的“浏览”,添加文件所在路径,再单击“增加”,将文件添加到“选中的文件”中。Step2:配置“Excel输入”切换到“工作表”选项卡下,获取工作表的名称为“sheet1”,起始行、起始列均设置为0(这里的设置根据导入的Excel文件中的实际表名和起始行列而定)Step2:配置“Excel输入”切换到“字段”选项卡下,单击【获取来自头部数据的字段】,得到文件中各字段及其属性,如下左图,预览记录如下右图:Step3:配置“公式”双击“公式”控件,打开对话框,如下图Step3:配置“公式”【公式】组件的参数包含组件的基础参数和【字段】表参数,有关参数说明如表所示。参数名称说明基础参数步骤名称表示公式组件名称,在单个转换工程中,名称必须唯一。默认值是【公式】组件名称字段新字段表示新增加的字段名称。默认值为空公式表示计算公式,单击单元格时,系统打开公式编辑器窗口,提供可用函数的帮助,方便用户编辑计算公式。默认值为空值类型表示字段的数据类型。类型选项有:BigNumber、Binary、Boolean、Date、Integer、InternetAddress、Number、String、Timestamp。默认值为空长度表示字段长度。默认值为空精度表示数字类型字段的浮点数的精确位数。默认值为空替换值表示字段需要替换值。默认值为空Step3:配置“公式”在【字段】表中,添加【总分】【评优】两个新字段,分别设置连个字段的类型及长度等。如下图Step3:配置“公式”编辑“总分”字段,输入总分的计算公式,如下图,注意此处的符号均为英文符号,单击【ok】按钮完成。Step3:配置“公式”“总分”与“评优”字段编写的最终效果如下图,点击【确定】按钮完成“公式”控件配置Step4:运行转换点击工作区的运行按钮,保存当前转换,开启运行,结果如右图:子任务5.2.2“JavaScript代码”控件应用Kettle提供用户界面,可采用JavaScript脚本编程修改数据。将某运动会个代表队获奖情况的数据进行统计,计算出每个代表队的奖牌总数任务提出:Step1:创建转换使用Kettle工具,创建一个转换,命名为“公式应用”

,并添加“Excel输入”控件、“javascript代码”脚本控件以及Hop跳连接线如下图:Step2:配置“Excel输入”打开“Excel输入”对话框,先点击“文件或目录”右侧的“浏览”,添加文件所在路径,再单击“增加”,将文件添加到“选中的文件”中。Step2:配置“Excel输入”确定工作表位置,切换到“字段”选项卡,配置如下:Step2:配置“Excel输入”确定工作表位置,切换到“字段”选项卡,配置如下,单击【确定】完成Step3:配置“JavaScript代码”双击“JavaScript代码”控件,打开对话框,如右图Step3:配置“JavaScript代码”参数名称说明步骤名称表示JavaScript代码组件名称,在单个转换工程中,名称必须唯一。默认值是【JavaScript代码】组件名称JavaScript函数TransformScripts表示创建的JavaScript脚本TransformConstants表示预定义的静态常量SKIP_TRANSFORMATION:从输出行记录数据集中排除当前行记录,并在下一行记录上继续处理ERROR_TRANSFORMATION:从输出行记录数据集中排除当前行,生成错误,不处理任何剩余行记录CONTINUE_TRANSFORMATION:在输出行记录集中包含当前行记录TransformFunctions表示在脚本中使用的字符串、数字、日期、逻辑、特殊函数和文件函数。这些函数是用Java实现的,执行速度比JavaScript函数快,每个函数都有一个演示其用法的示例脚本。双击该函数,将其添加到Javascript编辑区中。右键单击并选择Sample示例脚本,将Sample示例脚本添加到Java脚本窗格中Inputfields表示输入字段Outputfields表示输出字段【JavaScript代码】组件的参数除了包含组件的基础参数外,还包含了以下3部分参数。有关参数说明如表所示Step3:配置“JavaScript代码”Step3:配置“JavaScript代码”Step3:配置“JavaScript代码”这里组件名称用默认值“JavaScript代码”。在【JavaScript】编辑区中,编辑JavaScript脚本如下。var奖牌总数=0;for(vari=0;i<getInputRowMeta().size();i++){varvalueMeta=getInputRowMeta().getValueMeta(i);if(valueMeta.getTypeDesc().equals("Number")){

奖牌总数=奖牌总数+str2num(row[i]);}}Step3:配置“JavaScript代码”单击【获取变量】,字段框中会出现所有字段,选中需要删除的行,右单击然后点击“删除选中的行”,只保留“奖牌总数”,对该字段的设置如左图。单击【确定】按钮完成控件配置。Step4:运行转换单击工作区上方的运行按钮,开启运行,保存为“JavaScript代码应用”,运行结果如右图:子任务5.2.3“利用janino计算java表达式”控件应用Janino是一个超小型,超快的Java编译器,Kettle可以利用Janino提供类和对象,定义Java表达式来计算新值。任务提出:在某年级的“2020年4月月考成绩.xls”文件中,为了了解学生的考试情况,需要采用利用Janino计算Java表达式组件,统计每个学生月考成绩的总分,并按照四舍五入的方法,计算每个学生的平均分数据准备现有Excel文件,“2020年4月月考成绩”.xls,内容如图;Step1:创建转换使用Kettle工具,创建一个转换,命名为“janino应用”

,并添加“Excel输入”控件、“利用janino计算java表达式”脚本控件以及Hop跳连接线如左图:Step2:配置“Excel输入”先点击“文件或目录”右侧的“浏览”,添加文件所在路径,再单击“增加”,将文件添加到“选中的文件”中。Step2:配置“Excel输入”切换到“工作表”选项卡下,获取工作表的名称为“sheet1”,起始行、起始列均设置为0(这里的设置根据导入的Excel文件中的实际表名和起始行列而定)Step2:配置“Excel输入”切换到“字段”选项卡下,单击【获取来自头部数据的字段】,得到文件中各字段及其属性,如下左图,预览数据如下右图。Step3:配置“利用janino计算java表达式”控件双击“利用janino计算java表达式”控件,打开对话框,如下图Step3:配置“利用janino计算java表达式”控件组件的参数包含组件的基础参数和【Fields】表参数,有关参数说明

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论