摘要:这是一个非常普遍的需求,当我们向一张表插入记录的时候,如果该记录已经存在(通常是主键相同/其他条件匹配),我们就不应当重复插入记录,而是更新该记录。 于是我们最原始的想法一般都是有这样一个存储过程/方法/SQL,先判断是否该记录是否存在,然后决定究竟是更新还是插入。 首先要避免的是用程序来回读取,它们起码要被原子性地处理在一起,否则先不说先判断再执行带来增加一次数据库访问给应用带来性能上的开销外,...
阅读全文
摘要:假设有这么一个场景: 表1和表2,假设结构相同(这不是重点),两张表都以userId作为Key。目标是从表1的数据同步到表2。 实现:1、表1中有,表2中没有的数据,从表1同步到表2。 2、表1中有,表2中也有的数据,以表1的各个字段为准。 3、表1中没有,表2中有的数据,在表2中继续保留。做法1: 两个MA,分别以userId作为Anchor,DistinguishedName,并且字段分别映射...
阅读全文
摘要:问题描述: 从A导入数据,同步到B,在A系统中删除数据,在B系统中删除数据。 前提:A、B已经完成一次FULL_IMPORT、FULL_SYNC,假设在A中的数据在B中的数据(不考虑过滤),都一一对应。 按照之前的思路,在A中删除一条记录后,通过FULL_IMPORT的时候,在CS_A中会删除记录A,通过FULL_SYNC,因为CS_B中的DATA_1仍然与MV保持Connected,因此包括MV...
阅读全文
摘要:最近在做FIM的时候,发现Provisioning的项无法被添加了,然后发现自己在重构的时候,出现了一点儿画蛇添足。 首先说一下为什么要做Provisioning,原因是这样的,在FIM同步里面,假设有一个数据源,另一个目标数据源,目的是从一个数据源将数据导入到目标数据源中。默认情况下,FIM只处理两边都存在的数据,假设有这样两个数据: 表名:DB1.Table1 数据: aUser, aUser...
阅读全文