1.案例介绍
通过Kettle工具对数据表company_new中的数据进行商务规则的计算,即对数据表company_new中的数据进行相关处理和计算,从而得出手机在各省份的日销售额,并存储于数据表regional_sales中。
2.数据准备
我们可以通过对数据表company_new中的数据处理和计算,得出总公司需要的各省份的手机日销售额。数据表company_new中的数据内容,如图所示。
3.具体步骤
(1)打开Kettle工具,创建转换
使用Kettle工具,创建一个转换total,并添加表输入控件、字段选择控件、计算器控件、排序记录控件、分组控件、唯一行控件、表输出控件以及Hop跳连接线,具体如图所示。
(2)配置表输入控件
双击“表输入”控件,进入“表输入”配置界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置如图所示。
在SQL框中编写查询数据表company_new中全部数据的SQL语句,然后单击【预览】按钮,查看数据表company_new中数据是否成功从MySQL数据库中抽取到表输入流中,具体如图所示。
(3)配置字段选择控件
双击“字段选择”控件,进入“选择/改名值”界面,并在“选择和修改”选项卡的“字段”处手动添加所需字段,这里添加字段id、salesArea、unitPrice和number,用于后续的计算处理,如图所示.
选择“元数据”选项卡,切换到“元数据”选项卡界面,将字段unitPrice的类型改为Integer,从而进行后续的计算操作,“元数据”选项卡的配置具体如图所示。
(4)配置计算器控件
双击“计算器”控件,进入“计算器”界面,在“字段”处,添加一个新字段salesAmount,用于存储计算出的手机日销售额;在“字段A”和“字段B”处的下拉选项中分别选择“unitPrice”(销售价格)和“number”(销售数量)字段;在“计算”处的下拉框中选择“A*B”,即表示将字段A与字段B进行相乘计算,具体如图所示。
(5)配置排序记录控件
双击“排序记录”控件,进入“排序记录”界面,并在“字段”框中添加字段salesArea,以该字段为基础对所有数据进行升序排序,具体如图所示。
(6)配置分组控件
双击“分组”控件,进入“分组”界面,并在“构成分组的字段”处的添加分组字段salesArea,将字段salesArea相同的数据分为一组,便于进行“聚合”操作;在“聚合”处添加一个新字段total,用于存储各省份的手机销售总额,具体如图所示。
(7)配置字段选择2控件
双击“字段选择2”控件,进入“选择/改名值”界面,并在“选择和修改”处选择需要的字段,这里选择的是字段salesArea和total,用于后续在“表输出”控件中进行输出操作,具体如图所示。
(8)配置唯一行控件
双击“唯一行”控件,进入“唯一行”界面,选择去重的字段为total,具体如图所示。
(9) 配置表输出控件
双击“表输出”控件,进入“表输出”控件的配置界面,单击目标表右侧的【浏览】按钮,指定输出目标表,即数据表regional_sales;勾选“指定数据库字段”复选框,单击“数据库字段”选项卡,单击【输入字段映射】按钮,弹出“映射匹配”对话框,依次选中“源字段”选项框的字段和“目标字段”选项框对应的字段,再单击【Add】按钮,将一对映射字段添加至“映射”选项框中,具体如图所示。
(10)运行转换