前言:
昨天我们讲了数据库相关操作,流查询,通过流查询我们进行等值查询,从而实现类似数据库内连接的效果,今天我们来讲一个类似的组件,叫合并记录,合并记录顾名思义就是将数据进行合并,具体来讲就是将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配、比较、合并。
一、合并记录
今天我们讲的连接是转换里面的第八个分类。连接是结果集通过关键字进行连接。
合并记录是用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配、比较、合并。需要设置的参数包括旧数据来源:旧数据来源的步骤、新数据来源:新数据来源的步骤。
其中根据字段数据的状态,分为四种数据状态,分别为“identical”-旧数据和新数据一样、“changed”-数据发生了变化、“new”-新数据中有而旧数据中没有的记录、“deleted”-旧数据中有而新数据中没有的记录。 关键字段:用于定位两个数据源中的同一条记录。 比较字段:对于两个数据源中的同一条记录中,指定需要比较的字段。合并后的数据将包括旧数据来源和新数据来源的所有数据,对于变化的数据将用新数据代替旧数据,同时在结果中用一个标示字段,来指定新旧数据的比较结果。 需要注意的是: 旧数据和新数据需要事先按照关键字段排序 旧数据和新数据需要有相同的字段名称
合并记录的组件主要包括四大类内容,新旧数据源、标志字段、关键字段、数据字段。
二、任务实操
我们根据需求从EXcel读取新数据和旧数据,合并数据,标记出new/delete/changged/identical,把数据保持到Excel.
最终我们的转换包括两个EXCEL输入即新旧数据源、合并记录和EXCEL输出。
在实操的时候会提示我们需要先将数据进行排序,这是因为在kettle里面都是数据流处理的方式,因此在合并记录前需要将数据进行排序再进行合并、比较。
运行转换后我们就可以知道哪条数据是被修改过的,哪条记录是被删除的等等,是不是特别有用