You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pentaho的Insert/Update步骤中获取仅插入/更新的行?

在Pentaho中筛选Insert/Update步骤实际插入/更新的行

方法一:利用Insert/Update自带的标记字段

  • 打开Insert/Update步骤的配置界面,在字段映射区域底部,勾选「生成插入/更新字段」(部分版本显示为Create insert/update fields)。这个设置会自动为每一行添加两个布尔型字段:Inserted(标记该行是否被插入)和Updated(标记该行是否被更新)。
  • 在Insert/Update步骤后添加过滤行步骤,设置过滤条件为 Inserted = true 或 Updated = true(注意不同版本布尔值的格式,有些用Y/N替代true/false,以实际运行结果为准)。
  • 把过滤后的数据流接入Log步骤,此时Log只会记录实际被插入或更新的行。

方法二:用Merge Rows (diff)预处理对比

如果需要提前区分数据状态,可先通过对比预处理筛选出需要操作的行:

  • 先添加一个「表输入」步骤,读取目标表的现有数据作为参照流;待处理的数据源作为主数据流。
  • 添加**合并行(差异)**步骤,将主数据流和参照流接入,设置和Insert/Update一致的匹配主键。该步骤会生成change_type字段,取值包括:
    • NEW:目标表中不存在的新行(对应插入操作)
    • CHANGED:目标表已存在且字段有变更的行(对应更新操作)
    • UNCHANGED:无变化的行
  • 用过滤行步骤保留change_type为NEW或CHANGED的行,再将这些行送入Insert/Update步骤,后续的Log步骤就只会记录实际执行插入/更新的行。

内容的提问来源于stack exchange,提问作者Hoang Minh Quang FX15045

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:37:05