1. 概述
1.1 应用场景
用户希望将筛选出的数据,只做新增/更新/删除操作。
用户来源表数据已经有了标识字段和标识值,需要对目标表数据进行新增/更新/删除操作。
1.2 功能简介
在 数据同步 节点中,写入方式选择「基于标识字段,新增/更新/删除数据」,可实现上述场景。
注1:本文适用于 4.0.28 及之后版本;本文方案不适用于逻辑删除。
注2:本文方案只适用于 1.1 节中的应用场景,若是其他场景中实现数据的增删改,请参考:数据同步方案概述
2. 示例一:只做新增/更新/删除操作
示例表数据:订单数据记录.xls
本章示例:从「订单数据记录」表中,筛选出「货主地区」为空的数据,并删掉这些数据。
2.1 设置数据来源
1)新建定时任务,拖入「数据同步」节点。
2)从「订单数据记录」表中,筛选出「货主地区」为空的数据。如下图所示:
2.2 设置数据去向与映射
在「数据去向与映射」Tab 中,设置目标表为「订单数据记录」表。如下图所示:
2.3 设置写入方式
写入方式选择「基于标识字段,新增/修改/删除数据」,只勾选「删除」按钮,选择物理删除;此时,不填标识值,则对读取的所有数据进行新增或更新或删除;点击「主键映射」,设置逻辑主键为「订单ID」。如下图所示:
2.4 效果查看
1)点击「运行」按钮,任务运行成功后,如下图所示:
2)点击「数据同步节点>数据预览」,可看到查看结果为空。
3. 示例二:已有标识字段和标识值
本章示例:来源表中,增加、修改、删除的数据已有标识字段和标识值,实现目标表数据的增删改操作。
3.1 场景模拟
来源表「产品」中,「状态」列为标识列,值为「热销」时做新增操作,值为「一般」时做删除操作,值为「火爆」时做更新操作。
「产品」表中将产品ID为 15 的新增数据标记为「热销」,产品ID为 16 的删除数据标记为「一般」,产品ID为 14 的更新数据标记为「火爆」,希望能将数据变化同步到目标表「产品数据」中。
注:本文示例删除为物理删除(目标表中实际删除数据);若用户希望目标表中删除数据只标记删除,不实际删除,目标表中需要新增「状态」列,用来标记数据变化。
3.2 设置数据来源
1)新建定时任务,拖入「数据同步」节点。
2)数据来源 Tab 中,读取来源表「产品」的数据。如下图所示:
3.3 设置数据去向与映射
1)数据写入到目标表「产品数据」中。如下图所示:
2)本文示例中,不需要将「状态」列同步到目标表中,所以取消「状态」列的映射。如下图所示:
3.4 设置写入方式
写入方式选择「基于标识字段,新增/修改/删除数据」,标识字段设置为「状态」,值为「热销」时做新增操作,值为「一般」时做删除操作,值为「火爆」时做更新操作。
由于目标表没有物理主键,写入方式勾选了「更新」和「删除」,所以需要设置逻辑主键,主键映射处设置「产品ID」为逻辑主键。
3.5 效果查看
1)点击「运行」按钮,任务运行成功后,如下图所示:
2)目标表「产品数据」如下图所示,可发现新增产品ID为 15 的数据,删除产品ID为 16 的数据,修改产品ID为 14 的数据。