【技术实现步骤摘要】
一种结构化数据版本管理方法与系统
本专利技术涉及信息
,具体为一种结构化数据版本管理方法与系统。
技术介绍
在信息
,数据留痕与多版本共存是一个刚性需求,现在主流的做法是在原系统的数据库表结构中增加一个版本字段,将原来的更新操作转换为插入操作,每次更新版本号加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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。