【问题标题】:Merge Rows diff step flags "changed" when actually they should be identical合并行差异步骤标志实际上应该相同时“已更改”
【发布时间】:2019-05-16 13:11:12
【问题描述】:

我正在使用 Merge Rows diff() 步骤来比较两个数据集。集合 A 是来自源的记录(比较行),集合 B 是来自目标的记录(参考行)。 当记录实际上“相同”时,合并行差异会引发“已更改”标志。 我正在使用“合并后同步”步骤在目标表中插入或更新记录,该步骤在记录“新”时插入,并在记录“更改”时更新记录。 因此,每次我执行转换时,它总是将标志显示为已更改,这是不可能发生的。

我的两个数据集来自 postgres 数据库。 使用“排序行”步骤对转换中的主键字段上的两个数据集进行排序。 在合并行步骤中,我使用“关键字段”来匹配两个流中的记录。并比较了值字段

我希望使用合并行差异标志的确切行为 如果值更改 - 我希望将标志视为“已更改” 如果记录值相同 - 我想将标志视为“相同” 当源头有新消息时-我希望将标志视为“新”

sorted source sorted target

【问题讨论】:

    标签: postgresql kettle pentaho-spoon pentaho-data-integration


    【解决方案1】:

    双重检查;三重检查。有一些不同,某处。并且不要忘记前导或尾随空格。

    您确定systemmmodstamp 在这两种情况下具有相同的值吗?

    【讨论】:

    • systemmodstamp 是自动字段,当源中的记录被触及时会同步。是的,这两个数据集是相同的,除非源中的记录得到更新。
    • @nsuousa 感谢您的支持。在合并差异比较步骤之前,我使用了字符串操作并为两个数据集执行了修剪类型“两者”,这解决了我的比较问题。并获得预期的结果!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多