本技术涉及数据处理,特别涉及一种数据存储方法、数据回溯方法及计算机设备。
背景技术:
1、现有技术方案,存储数据时,通过binlog(全称:binary log)日志文件记录所有对数据库的修改操作,包括插入(insert)、更新(update)、删除(delete)等指令。需要回溯数据时,解析这些binlog日志文件,将其反向转译为相应的sql(structured querylanguage,结构化查询语言)语句,从而实现数据回溯。
2、由于binlog日志文件非常庞大,特别是在高并发、大规模分布式数据库环境中,binlog日志文件的数量和体积都会急剧增加,数据存储占用存储空间大。并且,binlog日志文件存储的方式缺乏高效的数据排列和传输机制,解析binlog日志文件需要逐条执行指令,无法快速定位和恢复指定时间节点的数据状态,导致数据回溯效率低下。
技术实现思路
1、为了解决上述问题,本技术提供了一种数据存储方法、数据回溯方法及计算机设备。
2、根据本技术实施例的一方面,公开了一种数据存储方法,该数据存储方法包括:
3、基于发生数据变更的时间顺序构建包含有多个时间节点的第一索引链,所述时间节点配置有索引信息,所述索引信息包括所在的第一索引链的索引链标识、发生数据变更的数据变更时间、位置编号及数据配对编码,所述位置编号表示所在的第一索引链各所述时间节点发生数据变更的时间先后,所述数据配对编码包括多个编码值,每一所述编码值对应于一字段并表示所述字段的数据值是否发生数据变更;
4、基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,所述第二索引链配置有所对应的所述第一索引链的索引链标识、在所述第一索引链的各位置编号对应的数据配对编码、所对应的所述第一索引链中作为初始时间节点的时间节点中所有字段的初始数据值以及在所述第一索引链中位置编号在所述初始时间节点之后的时间节点发生了数据变更的字段的变更数据值,所述发生了数据变更的字段为所述位置编号在后的后一时间节点中相对所述位置编号在前的前一时间节点发生了数据变更的字段。
5、在一些实施例中,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:
6、基于所述索引信息和所述时间节点的数据值构建包含有主关联索引和低维关联索引的第二索引链;
7、其中,所述主关联索引包括所述第二索引链所对应的所述第一索引链的索引链标识、在所述第一索引链的位置编号及数据配对编码,所述低维关联索引包括与所述主关联索引相对应的数据配对编码、所述第二索引链所对应的所述第一索引链中作为初始时间节点的时间节点中所有字段的初始数据值以及在所述第一索引链中位置编号在所述初始时间节点之后的时间节点发生了数据变更的字段的变更数据值。
8、根据本技术实施例的一方面,公开了一种计算机设备,该计算机设备包括一个或多个处理器以及存储器,所述存储器用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述处理器实现如上所述的数据存储方法。
9、根据本技术实施例的一方面,公开了一种数据回溯方法,该数据回溯方法包括:
10、基于发生数据变更的时间顺序构建包含有多个时间节点的第一索引链,所述时间节点配置有索引信息,所述索引信息包括所在的第一索引链的索引链标识、发生数据变更的数据变更时间、位置编号及数据配对编码,所述位置编号表示所在的第一索引链各所述时间节点发生数据变更的时间先后,所述数据配对编码包括多个编码值,每一所述编码值对应于一字段并表示所述字段的数据值是否发生数据变更;
11、基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,所述第二索引链配置有所对应的所述第一索引链的索引链标识、在所述第一索引链的各位置编号对应的数据配对编码、所对应的所述第一索引链中作为初始时间节点的时间节点中所有字段的初始数据值以及在所述第一索引链中位置编号在所述初始时间节点之后的时间节点发生了数据变更的字段的变更数据值,所述发生了数据变更的字段为所述位置编号在后的后一时间节点中相对所述位置编号在前的前一时间节点发生了数据变更的字段;
12、基于需要数据回溯的回溯时间查询所述第一索引链,获得所述回溯时间在所述第一索引链中所对应的时间节点作为目标时间节点,并查询所述目标时间节点配置的索引信息,获得所述目标时间节点所在的第一索引链的索引链标识和在所述第一索引链的位置编号以及对应的数据配对编码;
13、基于所述目标时间节点所在的第一索引链的索引链标识和在所述第一索引链的位置编号,确定发生数据变更的时间在所述目标时间节点之前的所有在先时间节点,并获取所述所有在先时间节点对应的数据配对编码;
14、基于所述目标时间节点对应的数据配对编码和所述所有在先时间节点对应的数据配对编码,获知所述目标时间节点发生数据变更的字段;
15、基于所述目标时间节点所在的第一索引链的索引链标识、在所述第一索引链的位置编号查询所述第二索引链,获得所述目标时间节点发生数据变更的字段的变更数据值集合;
16、基于所述变更数据值集合和所述目标时间节点所在的第一索引链中作为初始时间节点的时间节点中所有字段的初始数据值,获得所述回溯时间的数据值。
17、在一些实施例中,所述基于所述目标时间节点对应的数据配对编码和所述所有在先时间节点对应的数据配对编码,获知所述目标时间节点发生数据变更的字段,包括:
18、将所述目标时间节点对应的数据配对编码与所述所有在先时间节点对应的数据配对编码进行异或运算,获得异动变更配对编码;
19、基于所述异动变更配对编码,获知所述目标时间节点发生数据变更的字段。
20、在一些实施例中,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:
21、基于发生数据变更的时间节点相对于前一时间节点的数据变更情况设置数据配对编码;
22、其中,所述数据变更情况包括相对于前一时间节点发生了数据变更和相对于前一时间节点没有发生数据变更。
23、在一些实施例中,所述基于发生数据变更的时间节点相对于前一时间节点的数据变更情况设置数据配对编码,包括:
24、将所述发生数据变更的时间节点相对于前一时间节点发生了数据变更的字段对应的编码值设置为1和0的其中一者;
25、将所述发生数据变更的时间节点相对于前一时间节点没有发生数据变更的字段对应的编码值设置为1和0的其中另一者。
26、在一些实施例中,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:
27、基于所述索引信息和所述时间节点的数据值构建包含有主关联索引和低维关联索引的第二索引链;
28、其中,所述主关联索引包括所述第二索引链所对应的所述第一索引链的索引链标识、在所述第一索引链的位置编号及数据配对编码,所述低维关联索引包括与所述主关联索引相对应的数据配对编码、所述第二索引链所对应的所述第一索引链中作为初始时间节点的时间节点中所有字段的初始数据值以及在所述第一索引链中位置编号在所述初始时间节点之后的时间节点发生了数据变更的字段的变更数据值。
29、在一些实施例中,所述基于所述目标时间节点所在的第一索引链的索引链标识、在所述第一索引链的位置编号查询所述第二索引链,获得所述目标时间节点发生数据变更的字段的变更数据值集合,包括:
30、基于所述目标时间节点所在的第一索引链的索引链标识、在所述第一索引链的位置编号查询所述第二索引链的主关联索引,获得所述目标时间节点在所述主关联索引上对应的数据配对编码;
31、获取所述目标时间节点在所述主关联索引上对应的数据配对编码中表征字段的数据值发生数据变更的编码值和所述表征字段的数据值发生数据变更的编码值所对应的字段;
32、基于所述表征字段的数据值发生数据变更的编码值和所述表征字段的数据值发生数据变更的编码值所对应的字段查询所述第二索引链的低维关联索引,获得所述目标时间节点发生数据变更的字段的变更数据值集合。
33、在一些实施例中,所述基于所述变更数据值集合和所述目标时间节点所在的第一索引链中作为初始时间节点的时间节点中所有字段的初始数据值,获得所述回溯时间的数据值,包括:
34、基于关系式di(ti)=d0(t0)+δd(ti),获得所述回溯时间的数据值;
35、其中,d0(t0)表示所述目标时间节点所在的第一索引链中作为初始时间节点的时间节点中所有字段的初始数据值,δd(ti)表示所述变更数据值集合。
36、根据本技术实施例的一方面,公开了一种计算机设备,该计算机设备包括一个或多个处理器以及存储器,所述存储器用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述处理器实现如上所述的数据回溯方法。
37、本技术的实施例提供的技术方案至少包括以下有益效果:
38、本技术公开的方案,构建了第一索引链和与第一索引链相对应的第二索引链,第一索引链包含基于发生数据变更的时间顺序排布的多个时间节点,而第二索引链则记录所对应的第一索引链中作为初始时间节点的时间节点中所有字段的初始数据值以及在第一索引链中位置编号在初始时间节点之后的时间节点发生了数据变更的字段的变更数据值。通过双重索引,实现了数据的高效排列和传输,大幅减少了数据指令记录数量,能够在有限的存储空间中存储更多的数据,实现了高效的数据压缩和存储,提高了数据存储的效率和密度。
39、与此同时,本技术的数据存储方式也为分布式数据库环境下,大规模数据回溯提供了技术支持,第一索引链包含基于发生数据变更的时间顺序排布的多个时间节点,数据回溯时,基于需要数据回溯的回溯时间查询第一索引链,获得相关索引信息,而后再查询第二索引链,便可进一步获得回溯时间的数据值,可以实现任意发生数据变更的时间节点的数据回溯,打破了按照顺序指令执行数据回溯的模式,能够在更短的时间内完成数据回溯,显著提升了数据回溯的效率。
1.一种数据回溯方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标时间节点对应的数据配对编码和所述所有在先时间节点对应的数据配对编码,获知所述目标时间节点发生数据变更的字段,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于发生数据变更的时间节点相对于前一时间节点的数据变更情况设置数据配对编码,包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:
6.根据权利要求5所述的方法,其特征在于,所述基于所述目标时间节点所在的第一索引链的索引链标识、在所述第一索引链的位置编号查询所述第二索引链,获得所述目标时间节点发生数据变更的字段的变更数据值集合,包括:
7.根据权利要求6所述的方法,其特征在于,所述基于所述变更数据值集合和所述目标时间节点所在的第一索引链中作为初始时间节点的时间节点中所有字段的初始数据值,获得所述回溯时间的数据值,包括:
8.一种数据存储方法,其特征在于,包括:
9.根据权利要求8所述的方法,其特征在于,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:
10.一种计算机设备,其特征在于,包括: