不同的企业,有着不同的业务规则和数据指标,这些指标应该计算完存储到数据仓库中,供企业决策者进行分析,从而得出战略性的企业决策。例如,A公司和B公司的总公司想要得知各省份的手机日销售额,这就属于一个商务规则。
通过Kettle工具对数据表company_new中的数据进行商务规则的计算,即对数据表company_new中的数据进行相关处理和计算,从而得出手机在各省份的日销售额,并存储于数据表regional_sales中。
数据准备:我们可以通过对数据表company_new中的数据处理和计算,得出总公司需要的各省份的手机日销售额。数据表company_new中的数据内容,如图所示。
1.打开Kettle工具,创建转换
使用Kettle工具,创建一个转换total,并添加表输入控件、字段选择控件、计算器控件、排序记录控件、分组控件、唯一行控件、表输出控件以及Hop跳连接线,具体如图所示。
2.配置表输入控件
在SQL框中编写查询数据表company_new中全部数据的SQL语句,然后单击【预览】按钮,查看数据表company_new中数据是否成功从MySQL数据库中抽取到表输入流中,具体如图所示。
3.配置唯一行(哈希值)2控件
因为之前多次输入,导致输入表中有重复数据,现将重复数据过滤掉。
4.配置字段选择控件
双击“字段选择”控件,进入“选择/改名值”界面,并在“选择和修改”选项卡的“字段”处手动添加所需字段,这里添加字段id、salesArea、unitPrice和number,用于后续的计算处理,如图所示。
选择“元数据”选项卡,切换到“元数据”选项卡界面,并添加需要改变元数据的字段,由于数据表company_new中字段unitPrice的数据类型为varchar(字符),字段number的类型为int,这字段类型不同的数据无法进行计算,因此需要将字段unitPrice的类型改为Integer,从而进行后续的计算操作,“元数据”选项卡的配置具体如图所示。
5.配置计算器控件
双击“计算器”控件,进入“计算器”界面,在“字段”处,添加一个新字段salesAmount,用于存储计算出的手机日销售额;在“字段A”和“字段B”处的下拉选项中分别选择“unitPrice”(销售价格)和“number”(销售数量)字段;在“计算”处的下拉框中选择“A*B”,即表示将字段A与字段B进行相乘计算,具体如图所示。
6.配置排序记录控件
双击“排序记录”控件,进入“排序记录”界面,并在“字段”框中添加字段salesArea,以该字段为基础对所有数据进行升序排序,具体如图所示。
7.配置分组控件
双击“分组”控件,进入“分组”界面,并在“构成分组的字段”处的添加分组字段salesArea,将字段salesArea相同的数据分为一组,便于进行“聚合”操作;在“聚合”处添加一个新字段total,用于存储各省份的手机销售总额,具体如图所示。
8.配置字段选择2控件
双击“字段选择2”控件,进入“选择/改名值”界面,并在“选择和修改”处选择需要的字段,这里选择的是字段salesArea和total,用于后续在“表输出”控件中进行输出操作,具体如图所示。
9.配置唯一行控件
双击“唯一行”控件,进入“唯一行”界面,并在“用来比较的字段”处添加要去重的字段,因为“字段选择2”控件流中字段total的数据有重复,所以需要进行去重操作,因此这里选择去重的字段为total,具体如图所示。
10.配置表输出控件
11.运行转换
12.查看数据表regional_sales中的数据
运行创建的转换total,实现对数据表company_new中数据进行商务规则的计算,从而得出手机在各省份的日销售额,并存储于数据表regional_sales中,具体如图所示