一种结构化数据版本管理方法与系统技术方案

技术编号:26597583 阅读:21 留言:0更新日期:2020-12-04 21:19
本发明专利技术公开了一种结构化数据版本管理方法,包括以下步骤:建立以ID为头结点的倒排索引;当需要写入数据时,先获取头部版本号head,然后将head+1生成新版本号重新赋予head,再将新版本的数据插入到倒排索引头部;当获取最新数据时,只需要定位到目标ID索引节点,再获取首节点的数据即可;当需要获取历史版本时,则指针向后继续移动,一种结构化数据版本管理系统,包括数据版本储存和索引模块,数据版本生成写入模块和数据版本快速访问模块,将历史版本数据从原业务系统中剥离存储于更加易于管理、访问的外部非结构化数据库中,同时兼顾对历史数据版本的索引,最新版本的快速获取,通过独立版本存储与访问服务为业务系统降低数据版本管理的代价。

【技术实现步骤摘要】
一种结构化数据版本管理方法与系统
本专利技术涉及信息
,具体为一种结构化数据版本管理方法与系统。
技术介绍
在信息
,数据留痕与多版本共存是一个刚性需求,现在主流的做法是在原系统的数据库表结构中增加一个版本字段,将原来的更新操作转换为插入操作,每次更新版本号加1生成一个新的版本号,然后在系统中插入一条新的记录,亦或有些软件开发人员为了方便,直接使用时间戳作为版本号。此解决方案在数据量较少,且版本留存较少的情况下,性能与易用性上还可以,但在数据版本更新频繁,留痕要求严格的情况下,因每一个版本的获取均需要进行全表扫描或联合键扫描,会对原数据集造成巨大的数据压力,甚至影响到系统的正常访问。数据历史版本的留存主要是为了解决数据的修改溯源问题,而不是一个高频需求,因此混合在一起的数据版本存储方案在扩展性、承载量及性能上都是一种不太理想的方案。基于此,本专利技术设计了一种结构化数据版本管理方法与系统,以解决上述提到的如何建立易于存取的快速版本存储结构与索引结构、如何建立高效的数据写入机制和如何建立数据任意历史版本的快速获取问题。
技术实现思路
本专利技术的目的在于提供一种结构化数据版本管理方法与系统,本专利技术的方法是将历史版本数据从原业务系统中剥离出来,以一种特殊的方式存储于更加易于管理、访问的外部非结构化数据库中,同时兼顾对历史数据版本的索引,最新版本的快速获取等诉求。同时,通过本专利技术的方法,可以在不改变现有系统数据存储结构、引擎、介质的情况下,通过独立版本存储与访问服务为业务系统提供数据版本管理服务,极大地降低数据版本管理的代价。为实现上述目的,本专利技术提供如下技术方案:一种结构化数据版本管理方法与系统,包括以下步骤:S1:建立以ID为头结点的倒排索引,所述倒排索引使用链表结构,每个索引链上的第一个节点为最新版本的数据,后续节点上版本依次降低;S2:根据写入的ID在倒排索引的ID中找到数据ID所在位置;S3:获取数据所在位置中的Version与SHA256;S4:计算当前数据的SHA256,并与版本库中当前最新版本的SHA256进行比较;S5:若相同则忽略,不同则进入下一步;S6:插入新版本数据,先获取头部数据版本N作为head,然后将头部数据版本N+1作为生成新数据版本,并重新赋予head,再将新数据版本插入到倒排索引头部;S7:需要获取最新数据时,从ID中找到数据ID所在位置;S8:定位数据所在目标数据ID的索引版本节点,直接获取首节点的数据,指针只需要移动一步;S9:当需要获取历史版本数据时,则指针从首节点的数据向后继续移动至目标版本数据,取出目标数据版本的数据。优选的,所述倒排索引链表的长度可根据版本的数量进行限制。优选的,所述数据版本的结构包括数据ID、当前最新的数据版本号Version、最新数据入版本库的时间戳TS、当前最新数据的数据指纹。优选的,所述当前最新数据的数据指纹通过SHA256方式进行计算,所述SHA256的计算方法:将所有数据按字段排序后用“+”隔开,计算SHA256值,若数据为复杂嵌套数据,则下级数据结构中的字段也要进行一次排序,排序规则遵循AlphaBeta。一种结构化数据版本管理系统,包括数据版本储存和索引模块,用于建立以ID为头结点的倒排索引,所述倒排索引使用链表结构,每个索引链上的第一个节点为最新版本的数据,后续节点上版本依次降低;数据版本生成写入模块,用于据写入的ID在倒排索引的ID中找到数据ID所在位置,获取数据所在位置中的Version与SHA256,计算当前数据的SHA256,并与版本库中当前最新版本的SHA256进行比较,若相同则忽略,不同则为插入新版本数据,先获取头部数据版本N作为head,然后将头部数据版本N+1作为生成新数据版本,并重新赋予head,再将新数据版本插入到倒排索引头部;数据版本快速访问模块,用于获取最新数据时,从ID中找到数据ID所在位置,定位数据所在目标数据ID的索引版本节点,直接获取首节点的数据,指针只需要移动一步,需要获取历史版本数据时,则指针从首节点的数据向后继续移动至目标版本数据,取出目标数据版本的数据。优选的,所述数据版本生成写入模块包括查找模块一,用于根据写入的ID在倒排索引的ID中找到数据ID所在位置;获取模块一,用于获取数据所在位置中的Version与SHA256;计算比较模块,用于计算当前数据的SHA256,并与版本库中当前最新版本的SHA256进行比较;判断模块,用于判断计算比较模块比较结果,若相同则忽略,不同则为插入新版本数据;倒排模块,用于对插入新版本数据,先获取头部数据版本N作为head,然后将头部数据版本N+1作为生成新数据版本,并重新赋予head,再将新数据版本插入到倒排索引头部。优选的,所述数据版本快速访问模块包括查找模块二,用于获取最新数据时,从ID中找到数据ID所在位置;获取模块二,用于定位数据所在目标数据ID的索引版本节点,直接获取首节点的数据,指针只需要移动一步;获取模块三,用于需要获取历史版本数据时,则指针从首节点的数据向后继续移动至目标版本数据,取出目标数据版本的数据。与现有技术相比,本专利技术的有益效果是:1、本专利技术提出的基于ID为头节点的倒排索引链式数据版本存储与索引结构,对任意版本的数据存储,复杂度低,在性能和扩展性方面都可以解决目前主流方案存在的核心问题;2、本专利技术提出的方法与系统,完全与业务系统无关,在使用上完全独立,只需要调用数据版本写入与读取接口即可完成版本数据的获取与存储,无须关心内部存储结构,极大的降低了使用和引入成本,避免了大量版本产生时可能对业务系统造成的冲击,更有效可靠;3、本专利技术提出的方法与系统,在数据获取方面,因可以快速定位到目标版本,读取与获取速度、效率比现有主流方案更佳,无须解包,直达数据位置,直接取之。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术方法流程图;图2为本专利技术数据版本储存和索引模块结构图;图3为本专利技术数据版本生成写入模块结构图;图4为本专利技术系统原理框图;图5为本专利技术数据版本生成写入模块原理框图;图6为本专利技术数据版本快速访问模块原理框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。实施例1本文档来自技高网...

【技术保护点】
1.一种结构化数据版本管理方法与系统,其特征在于:包括以下步骤:/nS1:建立以ID为头结点的倒排索引,所述倒排索引使用链表结构,每个索引链上的第一个节点为最新版本的数据,后续节点上版本依次降低;/nS2:根据写入的ID在倒排索引的ID中找到数据ID所在位置;/nS3:获取数据所在位置中的Version与SHA256;/nS4:计算当前数据的SHA256,并与版本库中当前最新版本的SHA256进行比较;/nS5:若相同则忽略,不同则进入下一步;/nS6:插入新版本数据,先获取头部数据版本N作为head,然后将头部数据版本N+1作为生成新数据版本,并重新赋予head,再将新数据版本插入到倒排索引头部;/nS7:需要获取最新数据时,从ID中找到数据ID所在位置;/nS8:定位数据所在目标数据ID的索引版本节点,直接获取首节点的数据,指针只需要移动一步;/nS9:当需要获取历史版本数据时,则指针从首节点的数据向后继续移动至目标版本数据,取出目标数据版本的数据。/n

【技术特征摘要】
1.一种结构化数据版本管理方法与系统,其特征在于:包括以下步骤:
S1:建立以ID为头结点的倒排索引,所述倒排索引使用链表结构,每个索引链上的第一个节点为最新版本的数据,后续节点上版本依次降低;
S2:根据写入的ID在倒排索引的ID中找到数据ID所在位置;
S3:获取数据所在位置中的Version与SHA256;
S4:计算当前数据的SHA256,并与版本库中当前最新版本的SHA256进行比较;
S5:若相同则忽略,不同则进入下一步;
S6:插入新版本数据,先获取头部数据版本N作为head,然后将头部数据版本N+1作为生成新数据版本,并重新赋予head,再将新数据版本插入到倒排索引头部;
S7:需要获取最新数据时,从ID中找到数据ID所在位置;
S8:定位数据所在目标数据ID的索引版本节点,直接获取首节点的数据,指针只需要移动一步;
S9:当需要获取历史版本数据时,则指针从首节点的数据向后继续移动至目标版本数据,取出目标数据版本的数据。


2.根据权利要求1所述的一种结构化数据版本管理方法与系统,其特征在于:所述倒排索引链表的长度可根据版本的数量进行限制。


3.根据权利要求1所述的一种结构化数据版本管理方法与系统,其特征在于:所述数据版本的结构包括数据ID、当前最新的数据版本号Version、最新数据入版本库的时间戳TS、当前最新数据的数据指纹。


4.根据权利要求3所述的一种结构化数据版本管理方法与系统,其特征在于:所述当前最新数据的数据指纹通过SHA256方式进行计算,所述SHA256的计算方法:将所有数据按字段排序后用“+”隔开,计算SHA256值,若数据为复杂嵌套数据,则下级数据结构中的字段也要进行一次排序,排序规则遵循AlphaBeta。


5.一种结构化数据版本管理系统,其特征在于:包括
数据版本储存和索引模块,用于建立以ID为头结点的倒排索引,所述倒排索引使用链表结...

【专利技术属性】
技术研发人员:周春姐戴鹏飞
申请(专利权)人:烟台云朵软件有限公司
类型:发明
国别省市:山东;37

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

1