记录修改前后数据差异的方法及系统技术方案

技术编号:32462346 阅读:14 留言:0更新日期:2022-02-26 08:53
本发明专利技术提供了一种记录修改前后数据差异的方法及系统。该方法包括:对应用系统的数据持久化操作进行拦截;根据配置由数据库中查询修改前数据;执行数据持久化操作;将执行数据持久化操作后的数据与修改前数据进行比对,获取数据差异;生成数据差异描述信息;保存数据差异描述信息。本发明专利技术提供的记录修改前后数据差异的方法及系统能够解决当前记录方式不易扩展的问题。扩展的问题。扩展的问题。

【技术实现步骤摘要】
记录修改前后数据差异的方法及系统


[0001]本专利技术涉及数据持久化
,特别涉及一种记录修改前后数据差异的方法及系统。

技术介绍

[0002]数据修改前后差异是指对数据进行修改时,记录其具体的修改内容,一般格式为谁对什么数据进行了修改,将什么信息由什么值改为什么值,例如,张三对李四的信息进行了修改,将李四的住址由A改为B。目前记录数据修改前后差异一般是在数据库层面实现,即依赖数据库本身的日志,通过分析数据库日志来反推数据差异。
[0003]这种技术方案存在着以下明显的不足:
[0004]1、非常依赖具体的数据存储实现,比如MySQL和Oracle的解析策略是不一样的;
[0005]2、如果需要更换数据源的话,迁移的工作量可能相当庞大。

技术实现思路

[0006]本专利技术要解决的技术问题是提供一种记录修改前后数据差异的方法及系统,能够解决当前记录方式不易扩展的问题。
[0007]为解决上述技术问题,本专利技术提供了一种记录修改前后数据差异的方法,所述方法包括:对应用系统的数据持久化操作进行拦截;根据配置由数据库中查询修改前数据;执行数据持久化操作;将执行数据持久化操作后的数据与修改前数据进行比对,获取数据差异;生成数据差异描述信息;保存数据差异描述信息。
[0008]在一些实施方式中,还包括:在根据配置由数据库中查询修改前数据之前,对应用系统的数据持久化操作进行拦截之后,判断是否需要记录数据差异;如果不需要记录数据差异,直接执行数据持久化操作。
[0009]在一些实施方式中,数据持久化操作包括:create、update、、delete。
[0010]在一些实施方式中,生成数据差异描述信息,包括:生成XML格式的差异描述信息。
[0011]在一些实施方式中,生成XML格式的差异描述信息,包括:记录数据操作唯一标识;记录操作类型;记录操作人员信息;记录描述信息。
[0012]在一些实施方式中,生成XML格式的差异描述信息,还包括:记录维护详情。
[0013]此外,本专利技术还提供了一种记录修改前后数据差异的系统,所述系统包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据前文所述的记录修改前后数据差异的方法。
[0014]采用这样的设计后,本专利技术至少具有以下优点:
[0015]易维护,应用系统层面的实现在编码完成之后,几乎不需要花太多的精力维护,需要修改数据差异记录方式和记录内容的话,只需要修改配置文件即可,不需要对业务代码进行任何改变;
[0016]易扩展,应用系统层面的实现已经对数据进行了抽象,屏蔽掉不同数据库类型带来的差异,故可以随意的更换或者添加数据存储源;
[0017]灵活存储,生成的数据操作日志可以灵活配置存储位置,可以存储到数据库中,也可以存储到文件中。
附图说明
[0018]上述仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,以下结合附图与具体实施方式对本专利技术作进一步的详细说明。
[0019]图1是数据修改前后差异记录流程;
[0020]图2是数据差异记录配置示例。
具体实施方式
[0021]以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。
[0022]本专利技术是一种在应用系统层面实现的记录数据修改前后数据差异的方法,通过配置的方式来标识哪些数据需要进行数据差异的记录,以及对应的记录方式、记录内容等。在应用系统运行过程中,对应用系统的数据持久化操作进行拦截,判断该操作是否需要记录数据差异,若需要记录,则根据实时数据生成差异信息,并存储在数据库中或文件中。为尽可能的减少对应用系统性能的影响,生成及存储数据差异信息均为异步进行。
[0023]本专利技术可记录对数据的增、删、改等各种操作的数据差异信息,以下以记录数据修改前后差异为例,说明其执行过程,参见图1:应用系统对数据的修改可以简化为如下过程:1、调用sql查询数据库中数据
‑‑
>2、对数据进行修改
‑‑
>3、将修改后的数据更新至数据库。本专利技术记录数据差异的时机在将修改后的数据更新至数据库之前,拦截应用系统的数据持久化操作,根据配置信息判断是否需要记录修改前后的数据差异,若需要记录,则查询数据库中的原始数据,与修改后的数据做对比,生成数据差异,再根据数据差异的描述格式生成具体的差异描述信息,最后将描述信息存储到数据库或文件中。文件的具体形式可以参见图2。
[0024]本专利技术最关键的部分主要包括:
[0025]本专利技术的关键点和欲保护点
[0026]1、整体设计理念
[0027]本专利技术不依赖具体数据库的日志信息,直接在应用系统层面对比数据操作前后的数据差异,来实现对数据差异信息的生成与记录,易于维护和扩展
[0028]2、数据差异生成方式
[0029]通过拦截应用系统对数据的操作,来自动判断本次操作是否需要记录差异信息,若需要记录,则查询数据库中的原有数据,与修改后的数据进行对比,依据操作差异描述格式生成描述信息,最终将描述信息写入数据库或文件中。
[0030]在本专利技术文本中,数据差异是指,对数据进行新增、修改、删除等操作时记录相应的数据变化信息,即记录谁对什么数据进行了怎样的操作,抽象出来的字段就有operator(操作人),action(创建、修改等行为),entry(实体,通常会用实体id来代替)。
[0031]本专利技术还提供一种记录修改前后数据差异的系统。例如,所述记录修改前后数据差异的系统可以用于充当数据库系统中的数据差异记录主机。如本文所述,记录修改前后数据差异的系统可以用于在数据库系统中实现对数据操作前后所产生的差异的记录功能。记录修改前后数据差异的系统可以在单个节点中实现,或者记录修改前后数据差异的系统的功能可以在网络中的多个节点中实现。本领域的技术人员应意识到,术语记录修改前后数据差异的系统包括广泛意义上的设备,此处提及的记录修改前后数据差异的系统仅是其中一个示例。包括记录修改前后数据差异的系统是为了表述清楚,并不旨在将本专利技术的应用限制为特定的记录修改前后数据差异的系统实施例或某一类记录修改前后数据差异的系统实施例。本专利技术所述的至少部分特征/方法可以在网络装置或组件,例如,记录修改前后数据差异的系统中实现。例如,本专利技术中的特征/方法可以采用硬件、固件和/或在硬件上安装运行的软件实现。记录修改前后数据差异的系统可以是任何通过网络处理,存储和/或转发数据帧的设备,例如,服务器,客户端,数据源等。处理器可以包括一个或多个多核处理器和/或存储器设备,其可以用作数据存储器,缓冲区等。处理器可以被实现为通用处理器,或者可以是一个或多个专用集成电路(application specific integrated circ本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种记录修改前后数据差异的方法,其特征在于,包括:对应用系统的数据持久化操作进行拦截;根据配置由数据库中查询修改前数据;执行数据持久化操作;将执行数据持久化操作后的数据与修改前数据进行比对,获取数据差异;生成数据差异描述信息;保存数据差异描述信息。2.根据权利要求1所述的记录修改前后数据差异的方法,其特征在于,还包括:在根据配置由数据库中查询修改前数据之前,对应用系统的数据持久化操作进行拦截之后,判断是否需要记录数据差异;如果不需要记录数据差异,直接执行数据持久化操作。3.根据权利要求1所述的记录修改前后数据差异的方法,其特征在于,数据持久化操作包括:create、update、delete。4.根据权利要求1所述的记录...

【专利技术属性】
技术研发人员:郝利卿
申请(专利权)人:北京神州数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1