基于数据模型层的数据增量更新方法、装置及计算机设备制造方法及图纸

技术编号:27513309 阅读:17 留言:0更新日期:2021-03-02 18:44
本申请公开了一种基于数据模型层的数据增量更新方法、装置及计算机设备,该方法包括:根据预设的结构体格式识别出数据模型层中的每一个结构体以及对应的属性和属性初始值;当监测到所述数据模型层执行了数据操作时,查找出所述数据模型层中属性初始值发生变更的所有结构体作为变更结构体集合;根据所述变更结构体集合中的每一个结构体以及对应的属性和属性变更值作为所述数据操作对应的操作切片;根据所述操作切片对数据库执行数据增量更新。本申请还提供一种计算机可读存储介质。本申请能够通过数据模型层的数据操作进行监测并生成操作切片,并根据操作切片对数据库进行数据更新,从而实现对数据库执行数据增量更新。从而实现对数据库执行数据增量更新。从而实现对数据库执行数据增量更新。

【技术实现步骤摘要】
基于数据模型层的数据增量更新方法、装置及计算机设备


[0001]本申请涉及互联网
,尤其涉及一种基于数据模型层的数据增量更新方法、装置及计算机设备。

技术介绍

[0002]随着计算机技术的发展,很多高效、实用的编程语言应运而被开发出来,比如,Python语言,Go语言(也称Golang语言)等。对于不同的编程语言,需要构建对应的数据模型层用于支持关系型数据库或非关系型数据库,比如MySQL数据库或Redis数据库的数据存储、数据操作以及数据约束。数据模型层,通常也叫Data Model,或者数据模型层,可以认为是用户端的应用数据与数据库的持久化数据之间的交换媒介。其中,用户端对数据库中的目标数据进行数据操作时,数据库先将目标数据备份到数据模型层;然后数据模型层根据用户的数据操作指令对备份的目标数据执行对应的数据操作,得到变更后的目标数据;最后,数据模型层将变更后的目标数据存储到数据库中替换原有的目标数据。
[0003]然而,现有的一些编程语言,比如Go语言,其对应的数据模型层的执行逻辑需要手动管理和更新,因此,并不支持对于数据更新的自动化处理。虽然也有第三方提供的ORM(Object Relational Mapping,对象关系映射)工具,能够将程序中的对象自动持久化到数据库中,但其执行效率并不高,而且不能提供数据增量更新的功能。

技术实现思路

[0004]本申请提出一种基于数据模型层的数据增量更新方法、装置及计算机设备,能够解决现有技术中部分编程语言对应的数据模型层写入数据库时不支持数据增量更新的问题。
[0005]首先,为实现上述目的,本申请提供一种基于数据模型层的数据增量更新方法,所述方法包括:
[0006]根据预设的结构体格式识别出数据模型层中的每一个结构体以及对应的属性和属性初始值;监测所述数据模型层是否执行了数据操作;当监测到所述数据模型层执行了数据操作时,查找出所述数据模型层中属性初始值发生变更的所有结构体作为变更结构体集合,所述变更结构体集合包括至少一个结构体;根据所述变更结构体集合中的每一个结构体以及对应的属性和属性变更值作为所述数据操作对应的操作切片;根据所述操作切片对数据库执行数据增量更新。
[0007]在一个例子中,所述结构体格式中包括结构体标签和属性名称,所述根据预设的结构体格式识别出数据模型层中的每一个结构体以及对应的属性和属性初始值包括:根据目标类型结构体格式中的结构体标签对应的字符串特征与所述数据模型层中数据进行比对,查找出包括所述字符串特征的结构体作为所述目标类型结构体格式对应的结构体,所述目标类型结构体格式为所有结构体格式中的任一类型结构体格式;根据每一类型的结构体的属性名称对应的字段特征分别查找出对应结构体类型的所有结构体的属性,并获取属
性对应的属性初始值。
[0008]在一个例子中,所述结构体的类型包括记录型结构体,表型结构体和普通型结构体。
[0009]在一个例子中,所述监测所述数据模型层是否执行了数据操作包括:监测所述数据模型层是否触发调用了任一类型结构体的数据操作函数;当所述数据模型层是否触发调用了任一类型结构体的数据操作函数时,进一步监测所述数据操作函数是否执行成功;当所述数据操作函数执行成功时,则判断所述数据模型层执行了数据操作。
[0010]在一个例子中,所述查找出所述数据模型层中属性初始值发生变更的所有结构体作为变更结构体集合包括:当所述数据模型层执行了数据操作时,查找出所述数据操作相关的每一个目标结构体以及每一个所述目标结构体对应的属性的当前属性值;分别比较每一个所述目标结构体对应的属性的当前属性值和属性初始值是否相同;当所述目标结构体对应的属性的所述当前属性值与所述属性初始值不相同时,则将所述目标结构体记录为变更结构体,将所述目标结构体对应的属性的所述当前属性值记录为属性变更值。
[0011]在一个例子中,所述当所述数据模型层执行了数据操作时,查找出所述数据操作相关的每一个目标结构体以及每一个所述目标结构体对应的属性的当前属性值包括:在所述数据模型层中预先建立管理型结构体;当所述数据模型层执行了数据操作时,触发所述管理型结构体执行所述查找出所述数据操作相关的每一个目标结构体以及每一个所述目标结构体对应的属性的当前属性值的步骤。
[0012]在一个例子中,所述根据所述操作切片对数据库执行数据增量更新包括:从所述操作切片中获取第一结构体的第一结构体标签,其中,所述第一结构体为所述操作切片中的所有结构体中的任一结构体;从所述数据库中拉取包括所述第一结构体标签的第二结构体;将所述第一结构体中的所有属性的属性变更至替换写入到所述数据库中所述第二结构体的对应属性中。
[0013]在一个例子中,所述将所述第一结构体中的所有属性的属性变更至替换写入到所述数据库中所述第二结构体的对应属性中包括:查找出所述第一结构体标签对应的变更函数或数据库操作函数;通过所述变更函数或数据库操作函数将所述第一结构体中的目标属性的属性变更值写入到所述第二结构体的所述目标属性替换掉所述目标属性的属性值,其中,所述目标属性为所述第一结构体的任一属性。
[0014]在一个例子中,当所述第一结构体中的目标属性的属性变更值为非内置数据类型时,从预设的描述函数集中查找出所述第一结构体对应的目标描述函数,其中,所述描述函数集预先设置在所述数据模型层;通过所述目标描述函数对所述目标属性的属性变更值进行序列化,得到所述目标属性的属性变更表征值;通过所述变更函数或数据库操作函数将所述第一结构体中的目标属性的属性变更表征值写入到所述第二结构体的所述目标属性替换掉所述目标属性的属性表征值。
[0015]此外,为实现上述目的,本申请还提供一种基于数据模型层的数据增量更新装置,所述装置包括:
[0016]识别模块,用于根据预设的结构体格式识别出数据模型层中的每一个结构体以及对应的属性和属性初始值;监测模块,用于监测所述数据模型层是否执行了数据操作;查找模块,用于当监测到所述数据模型层执行了数据操作时,查找出所述数据模型层中属性初
始值发生变更的所有结构体作为变更结构体集合,所述变更结构体集合包括至少一个结构体;生成模块,用于根据所述变更结构体集合中的每一个结构体以及对应的属性和属性变更值作为所述数据操作对应的操作切片;更新模块,用于根据所述操作切片对数据库执行数据增量更新。
[0017]进一步地,本申请还提出一种计算机设备,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的基于数据模型层的数据增量更新方法的步骤。
[0018]进一步地,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于数据模型层的数据增量更新方法的步骤。
[0019]相较于现有技术,本申请所提出的基于数据模型层的数据增量更新方法本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于数据模型层的数据增量更新方法,其特征在于,所述方法包括:根据预设的结构体格式识别出数据模型层中的每一个结构体以及对应的属性和属性初始值;监测所述数据模型层是否执行了数据操作;当监测到所述数据模型层执行了数据操作时,查找出所述数据模型层中属性初始值发生变更的所有结构体作为变更结构体集合,所述变更结构体集合包括至少一个结构体;根据所述变更结构体集合中的每一个结构体以及对应的属性和属性变更值作为所述数据操作对应的操作切片;根据所述操作切片对数据库执行数据增量更新。2.如权利要求1所述的基于数据模型层的数据增量更新方法,其特征在于,所述结构体格式中包括结构体标签和属性名称,所述根据预设的结构体格式识别出数据模型层中的每一个结构体以及对应的属性和属性初始值包括:根据目标类型结构体格式中的结构体标签对应的字符串特征与所述数据模型层中数据进行比对,查找出包括所述字符串特征的结构体作为所述目标类型结构体格式对应的结构体,所述目标类型结构体格式为所有结构体格式中的任一类型结构体格式;根据每一类型的结构体的属性名称对应的字段特征分别查找出对应结构体类型的所有结构体的属性,并获取属性对应的属性初始值。3.如权利要求2所述的基于数据模型层的数据增量更新方法,其特征在于,所述结构体的类型包括记录型结构体,表型结构体和普通型结构体。4.如权利要求1所述的基于数据模型层的数据增量更新方法,其特征在于,所述监测所述数据模型层是否执行了数据操作包括:监测所述数据模型层是否触发调用了任一类型结构体的数据操作函数;当所述数据模型层是否触发调用了任一类型结构体的数据操作函数时,进一步监测所述数据操作函数是否执行成功;当所述数据操作函数执行成功时,则判断所述数据模型层执行了数据操作。5.如权利要求1或4中任一项所述的基于数据模型层的数据增量更新方法,其特征在于,所述查找出所述数据模型层中属性初始值发生变更的所有结构体作为变更结构体集合包括:当所述数据模型层执行了数据操作时,查找出所述数据操作相关的每一个目标结构体以及每一个所述目标结构体对应的属性的当前属性值;分别比较每一个所述目标结构体对应的属性的当前属性值和属性初始值是否相同;当所述目标结构体对应的属性的所述当前属性值与所述属性初始值不相同时,则将所述目标结构体记录为变更结构体,将所述目标结构体对应的属性的所述当前属性值记录为属性变更值。6.如权利要求5所述的基于数据模型层的数据增量更新方法,其特征在于,所述当所述数据模型层执行了数据操作时,查找出所述数据操作相关的每一个目标结构体以及每一个所述目标结构体对应的属性的当前属性值包括:在所述数据模型层中预先建立管理型结构体;当所述数据模型层执行了数据操作时,触发所述管理型结构体执行所述查找出所述数
据操作相关的...

【专利技术属性】
技术研发人员:黄帅陈彧
申请(专利权)人:上海幻电信息科技有限公司
类型:发明
国别省市:

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

1