kettle高级转换 | 您所在的位置:网站首页 › kettle设置日期变量 › kettle高级转换 |
一,记录集连接 1.简单介绍 记录集连接是将具有相同关键字字段的两个记录表进行合并。 案例:某年级的月考成绩分散在“月考语文成绩.xls”“月考英语成绩.xls”两个文件中, 为了统计学生考试成绩的总分,需要使用记录集连接组件,将成绩数据合并在一 起,并计算出总分。 2.建立转换并添加控件 “语文成绩”,“英语成绩”控件位Excel输入控件,“语文成绩排序”和“英语成绩排序”为 排序记录控件。 3.配置各控件 (1)双击进入语文成绩控件,点击浏览找到“月考语文成绩.xls”“月考英语成绩.xls”两个 文件,并点击增加,具体如下图 点击工作表,添加工作表,用于浏览数据,具体如下 点击字段,获取字段,具体如下 预览数据
(2)英语成绩控件和语文成绩控件的具体配置一样,这里不再做演示。 (3)双击进入语文成绩排序控件,按照学号将数据进行升序排序,具体配置如下。
(4)英语成绩排序和语文成绩排序配置一样,再不做演示。 (5)双击进入记录集连接控件,具体配置如下。
(6)计算器控件,双击进入,添加一个新字段“totle”,计算公式选择"A+B",字段A设置为 语文,字段B设置为英语,值类型设置为Number,具体如下。 (7)字段选择控件,双击进入,添加如下字段,具体如下图。 配置结束 4.保存运行 从上图可以清楚看到,它合并了语文成绩和英语成绩,并计算出了总分。 二,多路数据合并连接 1.简单介绍 记录集连接是两个记录集的合并,而3个及以上的记录集,采用多路数据合并连接的方式。多路数据合并连接英文名称为Multiway merge join,是对多个记录集的合并,效率更高,速度更快。 案例:由于某次月考成绩分散在“月考语文成绩.xls”“月考英语成绩.xls”“月考数学成绩.xls”3个文件中,为了统计学生语数英的考试分数,需要使用多路数据合并连接组件,合并这3个文件的成绩数据,并计算总分。 2.建立转换并添加控件 “语文成绩”,“英语成绩”,“数学成绩”控件为Excel输入控件,“语文成绩排序”,“英语成绩排序”,"数学成绩排序"为排序记录控件,“多数据合并”控件为Multiway merge join控件。
3.配置各控件 (1)“语文成绩”,“英语成绩”,“数学成绩”三个控件的配置和记录集连接中的配置是一样 一样的,这里不再演示。 (2)“语文成绩排序”,“英语成绩排序”,"数学成绩排序"三个控件的配置和记录集连接中 的配置是一样的,这里不再演示。 (3)多数据合并控件,双击【Multiway merge join】组件,弹出【Multiway merge join 】对话框,进行参数设置,【Input Step1】参数设置为“语文成绩排序”,同一行的【Join Keys】参数设置为“学号”。也可以单击同一行【Select Keys】按钮,弹出【Join keys】对话 框,在【Keys】表中的第1行,单击【Key Field】下的第一个输入框,在下拉框中选择“学 号”,单击【确定(O)】按钮,添加“学号”字段名称至【Join Keys】参数中,如图所示。
【Multiway merge join】组件的参数包含【Step name】组件名称、Input StepN (N=1,2,3,…)输入组件名称、【Join Keys】连接关键字(Input StepN与【Join Keys】参 数需两两配对)和【Join Type】连接类型参数。 (4)计算器控件,双击进入,添加一个新字段“totle”,计算公式选择"A+B+C",字段A设置 为数学,字段B设置为英语,字段C设置为语文,值类型设置为Number,具体如下。 (5)字段选择控件,双击进入,添加如下字段,具体如下图。 (6)排序记录控件,对过滤后的数据按照学号进行一个升序,具体如下。 4.保存运行 三,单变量统计 1.简单介绍 单变量统计是对数据进行单个变量的数据统计,以字段为单变量,可以分别对多个字段进行数据统计,统计类型有N(统计数量)、最小值、最大值、平均值、样本标准差、中位数和任意百分位数等。 案例:在“2018年上学期期末考试成绩.xls”文件中,为了了解学生考试的统计数据,对语文和数学两门主科进行数据统计,使用单变量统计组件,分别统计学生的考试人数、最低分、最高分、平均分和中位数等。 2.建立转换并添加控件 3.配置各控件 (1)Excel输入控件再上面的案例中都已经介绍,在这里不再演示,只给出获取字段部分。 (2)单变量统计控件,双击进入控件,具体配置如下。
四.公式 1.简单介绍 公式是用来计算数据流中数据的表达式。公式可以是“A+B”这样的简单计算,也可以是类似“if/then”复杂业务逻辑判断的表达式。 案例:在某年级的“2019年11月月考成绩.xls”文件中,为了统计成绩以表彰优秀的学生,需要使用公式组件,统计学生所有考试科目的总分,并对总分650分以上的学生评优标注“优秀”。 2.建立转换并添加控件 3.配置各控件 (1)Excel输入控件再上面的案例中都已经介绍,在这里不再演示,只给出获取字段部分。 (2)公式控件:双击进入控件,在公式框中编辑公式(点击公式框,会弹出如下窗口),具体如下。 4.保存运行
五.利用Janino计算Java表达式 1.简单介绍 Janino是一个超小型,超快的Java编译器,Kettle可以利用Janino提供类和对象,定义Java表达式来计算新值。 案例:在某年级的“2020年4月月考成绩.xls”文件中,为了了解学生的考试情况,需要采用利用Janino计算Java表达式组件,统计每个学生月考成绩的总分,并按照四舍五入的方法,计算每个学生的平均分。 2.建立转换并添加控件 3.配置各控件 (1) Excel输入控件再上面的案例中都已经介绍,在这里不再演示,只给出获取字段部分。 (2)利用Janino计算Java表达式控件:双击进入控件,具体配置如下。 4.保存运行
六.JavaScript代码 1.简单介绍 Kettle提供用户界面,可采用JavaScript脚本编程修改数据。 案例:在某年级的“2020年4月月考成绩.xls”文件中,为了了解每个学生考试的总分,需要使用JavaScript代码组件,统计每个学生月考成绩的总分等。 2.建立转换并添加控件 Excel控件,点击浏览,添加文件,具体如下。
接着点击工作表,进入后,点击下方获取工作表名称,将其添加,具体如下。 点击字段,获取字段,具体如下。 点击预览
Java Script控件,点击进入控件,填写代码和配置下方字段,具体如下 var 总分=0; for (var i=1;i |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |