天天看点

Kettle 记录集连接实战

Kettle 记录集连接实战

之前文章中 kettle 实战记录这个是 之前的需求 ,使用记录集连接 优化了程序,取消了 阻塞数据的组件,针对批量积压的文件也可以从容应对。

https://blog.csdn.net/qq_35995514/article/details/106856885

Kettle 记录集连接实战

需求:将HDFS文件解析,将最新的设备状态更新到数据库,由于文件是5分钟2个(可控制) ,只想拿到最新的设备状态字段做设备信息更新,所以对文件中的字段做 分组排序(文本文件输入2),根据时间拿到每个设备的最新上报时间; 

两个文本输入的数据是一样的,文件文件输入2  拿到最新的 时间字段 然后 和 文本文件输入 记录集连接 拿到想要解析的处理的字段 ;

更新IP的分支是读取数据库的配置信息将IP变化的更新到数据库中,用的是部门提供的存储过程,记录集 连接的是 文件解析出的字段和 配置库查询出的字段信息。

优化后的 ETL 过程 

Kettle 记录集连接实战
 分组之前一样要将分组字段排序,然后根据时间排序
Kettle 记录集连接实战
根据两个字段分组,按照时间字段排序 
Kettle 记录集连接实战
连接类型为 inner 跟两个表的 join 差不多
Kettle 记录集连接实战
记录集连接之前必须将要连接的字段排好序 ,升序 或者 降序要保持一致
Kettle 记录集连接实战
调用存储过程 ,存储过程是查询数据库,要将查询出的结果集输出就要用表输入而不能用调用存储过程的的组件
Kettle 记录集连接实战
这个步骤使用到了去除重复记录组件,将两个IP 相同的记录去除掉,去除重复记录组件之前两个字段也要排序,但是这个组件是将字段全部相同记录集去除,只是减少记录
Kettle 记录集连接实战
JS判断 两个字段IP是否相等
Kettle 记录集连接实战
IP不等 也就是条件 为 TRUE的时候将变了的 IP 第三个字段给到后面的调用存储过程。
Kettle 记录集连接实战

继续阅读