如何在Pentaho Data Integration(PDI)中搭建日志机制获取正确输出
解决方案
你需要实现的是将单行多字段变更数据,拆分为单字段变更的多行日志结构,按以下步骤配置PDI组件即可得到预期输出:
- 第一步:使用
选择值组件
规整字段,筛选后续需要用到的公共主键字段、各业务字段的旧值/新值字段,统一字段命名规范,避免后续映射出错。 - 第二步:使用行转列(Unpivot/去除数据透视) 组件
这是实现需求的核心组件,配置参数如下:要保留的关键字段:勾选所有需要在每行日志中重复展示的公共字段,比如主键ID、操作时间、操作人、操作类型等
目标字段设置:新增三个目标字段,分别为变更字段(存储发生变更的字段名)、旧值(存储对应字段变更前的值)、新值(存储对应字段变更后的值)
字段映射配置:按业务字段逐一映射,比如name_old映射到旧值、name_new映射到新值,对应的变更字段填充值写对应业务字段名,依次把所有需要监控的业务字段都完成映射即可 - 第三步:使用
过滤记录组件
配置过滤条件为旧值 <> 新值,过滤掉没有发生变更的字段记录,避免生成无效日志行 - 可选优化:如果输出有重复行,可在过滤后新增
唯一行(哈希集)组件,按主键+变更字段的组合去重即可
内容的提问来源于stack exchange,提问作者Ram
相关产品推荐
相关产品推荐

