CN105808559A - 处理数据冲突的方法及装置 - Google Patents

处理数据冲突的方法及装置 Download PDF

Info

Publication number
CN105808559A
CN105808559A CN201410842938.8A CN201410842938A CN105808559A CN 105808559 A CN105808559 A CN 105808559A CN 201410842938 A CN201410842938 A CN 201410842938A CN 105808559 A CN105808559 A CN 105808559A
Authority
CN
China
Prior art keywords
data
described data
identifier
operational semantics
collision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410842938.8A
Other languages
English (en)
Inventor
罗先桥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN KINGDEE MIDDLEWARE CO Ltd
Original Assignee
SHENZHEN KINGDEE MIDDLEWARE CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENZHEN KINGDEE MIDDLEWARE CO Ltd filed Critical SHENZHEN KINGDEE MIDDLEWARE CO Ltd
Priority to CN201410842938.8A priority Critical patent/CN105808559A/zh
Publication of CN105808559A publication Critical patent/CN105808559A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种处理数据冲突的方法,通过配置数据的操作语义标识符和主键唯一约束字段;根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据。本发明还提供一种处理数据冲突的装置,从而可以灵活处理不同业务操作数据的冲突,根据用户的集成业务来进行动态处理各种数据冲突,而不是将在代码中固化写死,并且不同的数据冲突的处理方式可以重用,从而提供解决数据冲突的灵活性。

Description

处理数据冲突的方法及装置
技术领域
本发明涉及通信领域,尤其涉及一种处理数据冲突的方法及装置。
背景技术
目前在进行数据交换和集成领域中,根据业务需要在两个或者多个异构的系统之间进行数据交换,实现跨系统的业务集成。而在数据集成的一些业务场景中,同一业务数据会根据需要在两个或者多个目标系统之间来回进行交换,比如政务内外网审批数据双相交换同步,使得交换的数据在目标系统进行持久化时,因数据存在重复不满足数据库唯一性约束的问题频频出现。当前对于交换中数据存在冲突的处理方法一般是:插入数据前主动检查是否存在重复数据的冲突;若检测到数据冲突,程序代码捕获冲突的异常并进行单一固化处理。通过这种方法基本能解决单一的冲突问题,但对于复杂的数据,且需要在两个或者多个数据存储介质中保持数据业务操作一致性的情形存在一些缺点和弊端,并且不同的业务数据需要解决冲突的方式各不相同,这使得这种解决数据冲突的方式无法重用。
发明内容
本发明提供一种处理数据冲突的方法及装置,主要目的在于如何灵活处理不同业务操作的数据冲突的技术问题。
为实现上述目的,本发明提供一种处理数据冲突的方法,所述方法包括:
配置数据的操作语义标识符和主键唯一约束字段,所述操作语义标识符用于标识所述数据的操作属性,所述主键唯一约束字段用于标识所述数据的唯一性;
根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;
若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;
根据所述数据的冲突策略处理所述数据。
优选地,所述根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突,包括:
若所述数据的操作语义标识符为插入标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为更新标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为删除标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突。
优选地,所述若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略,包括:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则所述数据的冲突策略为插入操作和/或忽略所述插入操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则所述数据的冲突策略为更新操作和/或忽略所述更新操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则所述数据的冲突策略为忽略删除操作和/或报告数据错误异常;
所述根据所述数据的冲突策略处理所述数据,包括:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则执行插入所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则执行更新所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则执行忽略所述数据和/或报告所述数据错误异常。
优选地,所述根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突之前,还包括:
判断是否预先设置主动检查数据冲突的时间;
若是,则执行根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;
若否,则对所述数据执行所述数据的操作语义标识符标识的数据操作;
若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据;
若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则结束处理所述数据冲突的操作。
优选地,所述根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突之后,还包括:
若确定所述数据不冲突,则执行对所述数据执行所述数据的操作语义标识符标识的数据操作;
若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据;
若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则结束处理所述数据冲突的操作。
此外,为实现上述目的,本发明还提供一种处理数据冲突的装置,所述装置包括:
配置单元,用于配置数据的操作语义标识符和主键唯一约束字段,所述操作语义标识符用于标识所述数据的操作属性,所述主键唯一约束字段用于标识所述数据的唯一性;
确定单元,用于根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;
获取单元,用于若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;
第一处理单元,用于根据所述数据的冲突策略处理所述数据。
优选地所述确定单元,用于:
若所述数据的操作语义标识符为插入标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为更新标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为删除标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突。
优选地,所述获取单元,用于:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则所述数据的冲突策略为插入操作和/或忽略所述插入操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则所述数据的冲突策略为更新操作和/或忽略所述更新操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则所述数据的冲突策略为忽略删除操作和/或报告数据错误异常;
所述第一处理单元,用于:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则执行插入所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则执行更新所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则执行忽略所述数据和/或报告所述数据错误异常。
优选地,所述装置还包括:
判断单元,用于判断是否预先设置主动检查数据冲突的时间;
若是,则执行确认单元;
若否,则执行操作单元;
所述操作单元,用于对所述数据执行所述数据的操作语义标识符标识的数据操作;
若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行所述获取单元和所述第一处理单元;
若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则执行第二处理单元,所述第二处理单元用于结束处理所述数据冲突的操作。
优选地,所述装置还包括:
所述操作单元,用于若确定所述数据不冲突,则执行对所述数据执行所述数据的操作语义标识符标识的数据操作;
若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行所述获取单元和第一处理单元;
若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则执行第二处理单元。
本发明实施例通过配置数据的操作语义标识符和主键唯一约束字段;根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据,从而可以灵活处理不同业务操作数据的冲突,根据用户的集成业务来进行动态处理各种数据冲突,而不是将在代码中固化写死,并且不同的数据冲突的处理方式可以重用,从而提供解决数据冲突的灵活性。
附图说明
图1为本发明处理数据冲突的方法第一实施例的流程示意图;
图2为本发明处理数据冲突的方法第二实施例的流程示意图;
图3为本发明处理数据冲突的方法第三实施例的流程示意图;
图4为本发明处理数据冲突的装置第一实施例的功能模块示意图;
图5为本发明处理数据冲突的装置第二实施例的功能模块示意图;
图6为本发明处理数据冲突的装置第三实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种处理数据冲突的方法。
参照图1,图1为本发明处理数据冲突的方法第一实施例的流程示意图。
在第一实施例中,该处理数据冲突的方法包括:
步骤101,配置数据的操作语义标识符和主键唯一约束字段,所述操作语义标识符用于标识所述数据的操作属性,所述主键唯一约束字段用于标识所述数据的唯一性;
具体的,源端获取数据,并对获取的数据进行封装,在数据中增加操作语义标识符和主键唯一约束字段,新增的操作语义标识符可以为新增和/或更新和/或删除。主键唯一约束字段用于记录业务的唯一性,数据的冲突检查以该字段为准。业务主键字段理论上应该和数据库主键字段一致,但也可以不一致。
步骤102,根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;
优选地,所述根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突,包括:
若所述数据的操作语义标识符为插入标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为更新标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为删除标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突。
具体的,若所述数据的操作语义标识符为插入标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段相同,即表示该数据在数据库中已有相同的数据,则确定插入所述数据为冲突操作;
若所述数据的操作语义标识符为更新标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,即表示该数据在数据库中没有对应的数据,则无法更新,确定更新所述数据为冲突操作;
若所述数据的操作语义标识符为删除标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,即表示该数据在数据库中没有对应的数据,则无法删除,确定删除所述数据为冲突操作。
步骤103,若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;
优选地,所述若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略,包括:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则所述数据的冲突策略为插入操作和/或忽略所述插入操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则所述数据的冲突策略为更新操作和/或忽略所述更新操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则所述数据的冲突策略为忽略删除操作和/或报告数据错误异常。
具体的,若数据的操作语义标识符为插入标识符,则数据冲突的策略可以为:执行insert操作和/或执行忽略该插入操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为更新标识符,则数据冲突的策略可以为:执行update操作和/或执行忽略该更新操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为删除标识符,则数据冲突的策略可以为:执行忽略该删除操作和/或执行报告数据错误异常的信息。
步骤104,根据所述数据的冲突策略处理所述数据。
优选地,若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则执行插入所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则执行更新所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则执行忽略所述数据和/或报告所述数据错误异常。
具体的,若数据的操作语义标识符为插入标识符,则数据冲突时,可以执行insert所述数据的操作和/或执行忽略该插入操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为更新标识符,则数据冲突时,可以执行update所述数据的操作和/或执行忽略该更新操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为删除标识符,则数据冲突时,可以执行忽略该删除操作和/或执行报告数据错误异常的信息。
对用户而言,用户可以人为设置对多个数据是否采取全局策略或者局部策略,根据所配置的处理策略查询策略配置库获取策略处理逻辑,并应用到当前所引用该策略的程序逻辑中来解决该冲突。策略库提供全局策略和局部策略的应用,说明如下:
如使用全局策略,而不使用局部单表策略,则应用全局策略;
如同时使用了全局策略和局部单表策略,则只应用局部单表策略。
本发明实施例通过配置数据的操作语义标识符和主键唯一约束字段;根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据,从而可以灵活处理不同业务操作数据的冲突,根据用户的集成业务来进行动态处理各种数据冲突,而不是将在代码中固化写死,并且不同的数据冲突的处理方式可以重用,从而提供解决数据冲突的灵活性。
参照图2,图2为本发明处理数据冲突的方法第二实施例的流程示意图。
在第一实施例的基础上,在步骤102之前还包括:
步骤105,判断是否预先设置主动检查数据冲突的时间;
目前,通常来说在一个整体的数据交换场景中,数据冲突出现的概率是不相同的。可能有部分业务数据交换到目标库中几乎不会有存在的数据,比如只交换一次初始数据;而另外一些业务数据,同样的一份业务数据则可能需要在多个系统或者数据库之间来回多次交换。提前检测冲突对于不会出现冲突的数据来说,从而降低了性能;而容易出现冲突的数据后再检查冲突,也会导致冲突出现后再执行冲突解决策略,从而降低性能。数据冲突检测时机是不同这将导致数据持久化性能具有很大差异。
本实施例中,用户可以指定检查冲突的时机,选择是否“主动检查冲突”,从而提高解决数据冲突的性能。
若是,则执行步骤102;
若否,则执行步骤106,对所述数据执行所述数据的操作语义标识符标识的数据操作;
具体的,新增操作标识的数据则进行insert操作;更新操作标识的数据执行update操作;删除操作标识的数据执行delete操作。
步骤107,若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据;
具体的,若数据的操作语义标识符为插入标识符,则数据冲突时,可以执行insert所述数据的操作和/或执行忽略该插入操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为更新标识符,则数据冲突时,可以执行update所述数据的操作和/或执行忽略该更新操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为删除标识符,则数据冲突时,可以执行忽略该删除操作和/或执行报告数据错误异常的信息。
步骤108,若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则结束处理所述数据冲突的操作。
对用户而言,用户可以人为设置对多个数据是否采取全局策略或者局部策略,根据所配置的处理策略查询策略配置库获取策略处理逻辑,并应用到当前所引用该策略的程序逻辑中来解决该冲突。策略库提供全局策略和局部策略的应用,说明如下:
如使用全局策略,而不使用局部单表策略,则应用全局策略;
如同时使用了全局策略和局部单表策略,则只应用局部单表策略。
本发明实施例通过配置数据的操作语义标识符和主键唯一约束字段;根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据,从而可以灵活处理不同业务操作数据的冲突,根据用户的集成业务来进行动态处理各种数据冲突,而不是将在代码中固化写死,并且不同的数据冲突的处理方式可以重用,从而提供解决数据冲突的灵活性;同时,用户可以根据不同的业务指定数据冲突的检测时机,从而提高处理数据冲突的性能。
参照图3,图3为本发明处理数据冲突的方法第三实施例的流程示意图。
在第一实施例的基础上,在步骤102之后还包括:
步骤106,若确定所述数据不冲突,则执行对所述数据执行所述数据的操作语义标识符标识的数据操作;
具体的,新增操作标识的数据则进行insert操作;更新操作标识的数据执行update操作;删除操作标识的数据执行delete操作。
步骤107,若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据;
具体的,若数据的操作语义标识符为插入标识符,则数据冲突时,可以执行insert所述数据的操作和/或执行忽略该插入操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为更新标识符,则数据冲突时,可以执行update所述数据的操作和/或执行忽略该更新操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为删除标识符,则数据冲突时,可以执行忽略该删除操作和/或执行报告数据错误异常的信息。
步骤108,若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则结束处理所述数据冲突的操作。
对用户而言,用户可以人为设置对多个数据是否采取全局策略或者局部策略,根据所配置的处理策略查询策略配置库获取策略处理逻辑,并应用到当前所引用该策略的程序逻辑中来解决该冲突。策略库提供全局策略和局部策略的应用,说明如下:
如使用全局策略,而不使用局部单表策略,则应用全局策略;
如同时使用了全局策略和局部单表策略,则只应用局部单表策略。
本发明实施例通过配置数据的操作语义标识符和主键唯一约束字段;根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据,从而可以灵活处理不同业务操作数据的冲突,根据用户的集成业务来进行动态处理各种数据冲突,而不是将在代码中固化写死,并且不同的数据冲突的处理方式可以重用,从而提供解决数据冲突的灵活性;同时,用户可以根据不同的业务指定数据冲突的检测时机,从而提高处理数据冲突的性能。
本发明提供一种处理数据冲突的装置。
参照图4,图4为本发明处理数据冲突的装置第一实施例的功能模块示意图。
在第一实施例中,该处理数据冲突的装置包括:
配置单元401,用于配置数据的操作语义标识符和主键唯一约束字段,所述操作语义标识符用于标识所述数据的操作属性,所述主键唯一约束字段用于标识所述数据的唯一性;
具体的,源端获取数据,并对获取的数据进行封装,在数据中增加操作语义标识符和主键唯一约束字段,新增的操作语义标识符可以为新增和/或更新和/或删除。主键唯一约束字段用于记录业务的唯一性,数据的冲突检查以该字段为准。业务主键字段理论上应该和数据库主键字段一致,但也可以不一致。
确定单元402,用于根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;
优选地,所述确定单元402,用于:
若所述数据的操作语义标识符为插入标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为更新标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为删除标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突。
具体的,若所述数据的操作语义标识符为插入标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段相同,即表示该数据在数据库中已有相同的数据,则确定插入所述数据为冲突操作;
若所述数据的操作语义标识符为更新标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,即表示该数据在数据库中没有对应的数据,则无法更新,确定更新所述数据为冲突操作;
若所述数据的操作语义标识符为删除标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,即表示该数据在数据库中没有对应的数据,则无法删除,确定删除所述数据为冲突操作。
获取单元403,用于若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;
优选地,所述获取单元403,用于:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则所述数据的冲突策略为插入操作和/或忽略所述插入操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则所述数据的冲突策略为更新操作和/或忽略所述更新操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则所述数据的冲突策略为忽略删除操作和/或报告数据错误异常。
具体的,若数据的操作语义标识符为插入标识符,则数据冲突的策略可以为:执行insert操作和/或执行忽略该插入操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为更新标识符,则数据冲突的策略可以为:执行update操作和/或执行忽略该更新操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为删除标识符,则数据冲突的策略可以为:执行忽略该删除操作和/或执行报告数据错误异常的信息。
第一处理单元404,用于根据所述数据的冲突策略处理所述数据。
优选地,所述第一处理单元404,用于:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则执行插入所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则执行更新所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则执行忽略所述数据和/或报告所述数据错误异常。
具体的,若数据的操作语义标识符为插入标识符,则数据冲突时,可以执行insert所述数据的操作和/或执行忽略该插入操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为更新标识符,则数据冲突时,可以执行update所述数据的操作和/或执行忽略该更新操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为删除标识符,则数据冲突时,可以执行忽略该删除操作和/或执行报告数据错误异常的信息。
对用户而言,用户可以人为设置对多个数据是否采取全局策略或者局部策略,根据所配置的处理策略查询策略配置库获取策略处理逻辑,并应用到当前所引用该策略的程序逻辑中来解决该冲突。策略库提供全局策略和局部策略的应用,说明如下:
如使用全局策略,而不使用局部单表策略,则应用全局策略;
如同时使用了全局策略和局部单表策略,则只应用局部单表策略。
本发明实施例通过配置数据的操作语义标识符和主键唯一约束字段;根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据,从而可以灵活处理不同业务操作数据的冲突,根据用户的集成业务来进行动态处理各种数据冲突,而不是将在代码中固化写死,并且不同的数据冲突的处理方式可以重用,从而提供解决数据冲突的灵活性。
参照图5,图5为本发明处理数据冲突的装置第二实施例的功能模块示意图。
在第一实施例的基础上,所述装置还包括:
判断单元405,用于判断是否预先设置主动检查数据冲突的时间;
目前,通常来说在一个整体的数据交换场景中,数据冲突出现的概率是不相同的。可能有部分业务数据交换到目标库中几乎不会有存在的数据,比如只交换一次初始数据;而另外一些业务数据,同样的一份业务数据则可能需要在多个系统或者数据库之间来回多次交换。提前检测冲突对于不会出现冲突的数据来说,从而降低了性能;而容易出现冲突的数据后再检查冲突,也会导致冲突出现后再执行冲突解决策略,从而降低性能。数据冲突检测时机是不同这将导致数据持久化性能具有很大差异。
本实施例中,用户可以指定检查冲突的时机,选择是否“主动检查冲突”,从而提高解决数据冲突的性能。
若是,则执行确认单元402;
若否,则执行操作单元406;
所述操作单元406,用于对所述数据执行所述数据的操作语义标识符标识的数据操作;
具体的,新增操作标识的数据则进行insert操作;更新操作标识的数据执行update操作;删除操作标识的数据执行delete操作。
若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行所述获取单元403和所述第一处理单元404;
具体的,若数据的操作语义标识符为插入标识符,则数据冲突时,可以执行insert所述数据的操作和/或执行忽略该插入操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为更新标识符,则数据冲突时,可以执行update所述数据的操作和/或执行忽略该更新操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为删除标识符,则数据冲突时,可以执行忽略该删除操作和/或执行报告数据错误异常的信息。
若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则执行第二处理单元407,所述第二处理单元407用于结束处理所述数据冲突的操作。
对用户而言,用户可以人为设置对多个数据是否采取全局策略或者局部策略,根据所配置的处理策略查询策略配置库获取策略处理逻辑,并应用到当前所引用该策略的程序逻辑中来解决该冲突。策略库提供全局策略和局部策略的应用,说明如下:
如使用全局策略,而不使用局部单表策略,则应用全局策略;
如同时使用了全局策略和局部单表策略,则只应用局部单表策略。
本发明实施例通过配置数据的操作语义标识符和主键唯一约束字段;根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据,从而可以灵活处理不同业务操作数据的冲突,根据用户的集成业务来进行动态处理各种数据冲突,而不是将在代码中固化写死,并且不同的数据冲突的处理方式可以重用,从而提供解决数据冲突的灵活性;同时,用户可以根据不同的业务指定数据冲突的检测时机,从而提高处理数据冲突的性能。
参照图6,图6为本发明处理数据冲突的装置第三实施例的功能模块示意图。
在第一实施例的基础上,所述装置还包括:
所述操作单元406,用于若确定所述数据不冲突,则执行对所述数据执行所述数据的操作语义标识符标识的数据操作;
具体的,新增操作标识的数据则进行insert操作;更新操作标识的数据执行update操作;删除操作标识的数据执行delete操作。
若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行所述获取单元403和第一处理单元404;
具体的,若数据的操作语义标识符为插入标识符,则数据冲突时,可以执行insert所述数据的操作和/或执行忽略该插入操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为更新标识符,则数据冲突时,可以执行update所述数据的操作和/或执行忽略该更新操作和/或执行报告数据错误异常的信息。
若数据的操作语义标识符为删除标识符,则数据冲突时,可以执行忽略该删除操作和/或执行报告数据错误异常的信息。
若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则执行第二处理单元407。
对用户而言,用户可以人为设置对多个数据是否采取全局策略或者局部策略,根据所配置的处理策略查询策略配置库获取策略处理逻辑,并应用到当前所引用该策略的程序逻辑中来解决该冲突。策略库提供全局策略和局部策略的应用,说明如下:
如使用全局策略,而不使用局部单表策略,则应用全局策略;
如同时使用了全局策略和局部单表策略,则只应用局部单表策略。
本发明实施例通过配置数据的操作语义标识符和主键唯一约束字段;根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据,从而可以灵活处理不同业务操作数据的冲突,根据用户的集成业务来进行动态处理各种数据冲突,而不是将在代码中固化写死,并且不同的数据冲突的处理方式可以重用,从而提供解决数据冲突的灵活性;同时,用户可以根据不同的业务指定数据冲突的检测时机,从而提高处理数据冲突的性能。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种处理数据冲突的方法,其特征在于,所述方法包括:
配置数据的操作语义标识符和主键唯一约束字段,所述操作语义标识符用于标识所述数据的操作属性,所述主键唯一约束字段用于标识所述数据的唯一性;
根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;
若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;
根据所述数据的冲突策略处理所述数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突,包括:
若所述数据的操作语义标识符为插入标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为更新标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为删除标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突。
3.根据权利要求1所述的方法,其特征在于,所述若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略,包括:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则所述数据的冲突策略为插入操作和/或忽略所述插入操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则所述数据的冲突策略为更新操作和/或忽略所述更新操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则所述数据的冲突策略为忽略删除操作和/或报告数据错误异常;
所述根据所述数据的冲突策略处理所述数据,包括:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则执行插入所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则执行更新所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则执行忽略所述数据和/或报告所述数据错误异常。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突之前,还包括:
判断是否预先设置主动检查数据冲突的时间;
若是,则执行根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;
若否,则对所述数据执行所述数据的操作语义标识符标识的数据操作;
若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据;
若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则结束处理所述数据冲突的操作。
5.根据权利要求1至3任意一项所述的方法,其特征在于,所述根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突之后,还包括:
若确定所述数据不冲突,则执行对所述数据执行所述数据的操作语义标识符标识的数据操作;
若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;根据所述数据的冲突策略处理所述数据;
若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则结束处理所述数据冲突的操作。
6.一种处理数据冲突的装置,其特征在于,所述装置包括:
配置单元,用于配置数据的操作语义标识符和主键唯一约束字段,所述操作语义标识符用于标识所述数据的操作属性,所述主键唯一约束字段用于标识所述数据的唯一性;
确定单元,用于根据所述数据的操作语义标识符、所述主键唯一约束字段和数据库存储的主键唯一约束字段确定所述数据是否冲突;
获取单元,用于若确定所述数据冲突,则根据所述数据的操作语义标识符和预先存储的数据冲突策略,获取所述数据的冲突策略;
第一处理单元,用于根据所述数据的冲突策略处理所述数据。
7.根据权利要求6所述的装置,其特征在于,所述确定单元,用于:
若所述数据的操作语义标识符为插入标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为更新标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突,和/或;
若所述数据的操作语义标识符为删除标识符,所述主键唯一约束字段和数据库存储的主键唯一约束字段不相同,则确定所述数据冲突。
8.根据权利要求6所述的装置,其特征在于,所述获取单元,用于:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则所述数据的冲突策略为插入操作和/或忽略所述插入操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则所述数据的冲突策略为更新操作和/或忽略所述更新操作和/或报告数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则所述数据的冲突策略为忽略删除操作和/或报告数据错误异常;
所述第一处理单元,用于:
若确定所述数据冲突,且所述数据的操作语义标识符为插入标识符,则执行插入所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为更新标识符,则执行更新所述数据和/或忽略所述数据和/或报告所述数据错误异常;
若确定所述数据冲突,且所述数据的操作语义标识符为删除标识符,则执行忽略所述数据和/或报告所述数据错误异常。
9.根据权利要求6至8任意一项所述的装置,其特征在于,所述装置还包括:
判断单元,用于判断是否预先设置主动检查数据冲突的时间;
若是,则执行确认单元;
若否,则执行操作单元;
所述操作单元,用于对所述数据执行所述数据的操作语义标识符标识的数据操作;
若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行所述获取单元和所述第一处理单元;
若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则执行第二处理单元,所述第二处理单元用于结束处理所述数据冲突的操作。
10.根据权利要求6至8任意一项所述的装置,其特征在于,所述装置还包括:
所述操作单元,用于若确定所述数据不冲突,则执行对所述数据执行所述数据的操作语义标识符标识的数据操作;
若执行所述数据的操作语义标识符标识的数据操作出现异常情况,则执行所述获取单元和第一处理单元;
若执行所述数据的操作语义标识符标识的数据操作未出现异常情况,则执行第二处理单元。
CN201410842938.8A 2014-12-29 2014-12-29 处理数据冲突的方法及装置 Pending CN105808559A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410842938.8A CN105808559A (zh) 2014-12-29 2014-12-29 处理数据冲突的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410842938.8A CN105808559A (zh) 2014-12-29 2014-12-29 处理数据冲突的方法及装置

Publications (1)

Publication Number Publication Date
CN105808559A true CN105808559A (zh) 2016-07-27

Family

ID=56419850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410842938.8A Pending CN105808559A (zh) 2014-12-29 2014-12-29 处理数据冲突的方法及装置

Country Status (1)

Country Link
CN (1) CN105808559A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708948A (zh) * 2016-11-24 2017-05-24 广东网金控股股份有限公司 一种用主键唯一性实现事务操作的方法及装置
CN107609048A (zh) * 2017-08-18 2018-01-19 中国人民大学 一种可延迟唯一约束的方法
CN110059135A (zh) * 2019-04-12 2019-07-26 阿里巴巴集团控股有限公司 一种数据同步方法和装置
CN110928887A (zh) * 2018-09-19 2020-03-27 北京国双科技有限公司 一种数据处理方法及装置
CN111090648A (zh) * 2019-12-07 2020-05-01 杭州安恒信息技术股份有限公司 一种关系型数据库数据同步冲突解决方法
CN113486109A (zh) * 2021-06-01 2021-10-08 中国人民财产保险股份有限公司 异构数据库的数据同步方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102122289A (zh) * 2010-01-07 2011-07-13 微软公司 分派冲突的数据变更
US8175008B1 (en) * 2008-06-17 2012-05-08 Juniper Networks, Inc. Auto MEP ID assignment within CFM maintenance association
CN102880705A (zh) * 2012-09-28 2013-01-16 用友软件股份有限公司 数据库主键生成装置和数据库主键生成方法
CN102945260A (zh) * 2012-10-18 2013-02-27 江苏南开之星软件技术有限公司 一种基于用户级文件双向同步的冲突检测方法
CN103645944A (zh) * 2013-12-25 2014-03-19 中国工商银行股份有限公司 一种批量数据冲突检测方法、装置及系统
CN104113571A (zh) * 2013-04-18 2014-10-22 北京恒华伟业科技股份有限公司 数据冲突处理方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8175008B1 (en) * 2008-06-17 2012-05-08 Juniper Networks, Inc. Auto MEP ID assignment within CFM maintenance association
CN102122289A (zh) * 2010-01-07 2011-07-13 微软公司 分派冲突的数据变更
CN102880705A (zh) * 2012-09-28 2013-01-16 用友软件股份有限公司 数据库主键生成装置和数据库主键生成方法
CN102945260A (zh) * 2012-10-18 2013-02-27 江苏南开之星软件技术有限公司 一种基于用户级文件双向同步的冲突检测方法
CN104113571A (zh) * 2013-04-18 2014-10-22 北京恒华伟业科技股份有限公司 数据冲突处理方法和装置
CN103645944A (zh) * 2013-12-25 2014-03-19 中国工商银行股份有限公司 一种批量数据冲突检测方法、装置及系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708948A (zh) * 2016-11-24 2017-05-24 广东网金控股股份有限公司 一种用主键唯一性实现事务操作的方法及装置
CN107609048A (zh) * 2017-08-18 2018-01-19 中国人民大学 一种可延迟唯一约束的方法
CN107609048B (zh) * 2017-08-18 2020-09-04 中国人民大学 一种可延迟唯一约束的方法
CN110928887A (zh) * 2018-09-19 2020-03-27 北京国双科技有限公司 一种数据处理方法及装置
CN110059135A (zh) * 2019-04-12 2019-07-26 阿里巴巴集团控股有限公司 一种数据同步方法和装置
CN110059135B (zh) * 2019-04-12 2024-05-17 创新先进技术有限公司 一种数据同步方法和装置
CN111090648A (zh) * 2019-12-07 2020-05-01 杭州安恒信息技术股份有限公司 一种关系型数据库数据同步冲突解决方法
CN111090648B (zh) * 2019-12-07 2023-05-16 杭州安恒信息技术股份有限公司 一种关系型数据库数据同步冲突解决方法
CN113486109A (zh) * 2021-06-01 2021-10-08 中国人民财产保险股份有限公司 异构数据库的数据同步方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN105808559A (zh) 处理数据冲突的方法及装置
CN107644286B (zh) 工作流处理方法及装置
US8677348B1 (en) Method and apparatus for determining least risk install order of software patches
CN106951369B (zh) 一种联调测试的管理方法及装置
CN111158674B (zh) 组件管理方法、系统、设备及存储介质
CN106095432B (zh) 一种识别应用类型的方法
US10331439B2 (en) Source code transfer control method, computer program therefor, and recording medium therefor
CN108614702B (zh) 字节码优化方法及装置
CN102662833A (zh) 一种管理测试用例的方法
CN106528071B (zh) 目标代码的选取方法及装置
CN108664394B (zh) 一种内存泄露过程追溯方法及装置
CN101630350A (zh) 缓冲区溢出漏洞的检测方法、装置和代码插装方法、装置
KR101334806B1 (ko) 테스트 케이스 자동 생성 시스템에서 테스트 케이스를 구성하는 입력값의 집합을 자동으로 산출하는 방법
CN111026663A (zh) 一种软件缺陷检测方法、装置、计算机设备和存储介质
EP2107484A2 (en) A method and device for code audit
Nagamine et al. A case study of applying software product line engineering to the air conditioner domain
CN111913878A (zh) 基于程序分析结果的字节码插桩方法、装置及存储介质
CN111367869A (zh) 镜像文件处理方法、装置、存储介质及电子设备
CN105447384B (zh) 一种反监控的方法、系统及移动终端
CN110991983B (zh) 一种任务处理方法、装置、介质和设备
CN112506802A (zh) 测试数据的管理方法及系统
CN103309809A (zh) 一种计算机软件的智能化调试方法
CN107229650B (zh) 测试方法及装置
CN105868099A (zh) 分支提交差异检测方法及装置
CN114238507A (zh) 一种基于多个数据库的数据同步方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: South South technology twelve road 518000 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Applicant after: Shenzhen Kingdee middleware Limited by Share Ltd.

Address before: 518000 Guangdong city of Shenzhen province science and technology science and Technology Park of Nanshan District twelve South Road No. 2, Kingdee Software Park A block, floor 2

Applicant before: Shenzhen Kingdee Middleware Co., Ltd.

COR Change of bibliographic data
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160727