System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,特别涉及一种数据存储方法、数据回溯方法及计算机设备。
技术介绍
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、其中,所述主关联索引包括所述本文档来自技高网...
【技术保护点】
1.一种数据回溯方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标时间节点对应的数据配对编码和所述所有在先时间节点对应的数据配对编码,获知所述目标时间节点发生数据变更的字段,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于发生数据变更的时间节点相对于前一时间节点的数据变更情况设置数据配对编码,包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:
6.根据权利要求5所述的方法,其特征在于,所述基于所述目标时间节点所在的第一索引链的索引链标识、在所述第一索引链的位置编号查询所述第二索引链,获得所述目标时间节点发生数据变更的字段的变更数据值集合,包括:
7.根据权利要求6所述的方法,其特征在于,所述基于所述变更数据值集合和所述目标时间节点所在的第一
8.一种数据存储方法,其特征在于,包括:
9.根据权利要求8所述的方法,其特征在于,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:
10.一种计算机设备,其特征在于,包括:
...【技术特征摘要】
1.一种数据回溯方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标时间节点对应的数据配对编码和所述所有在先时间节点对应的数据配对编码,获知所述目标时间节点发生数据变更的字段,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于发生数据变更的时间节点相对于前一时间节点的数据变更情况设置数据配对编码,包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述索引信息和所述时间节点的数据值构建与所述第一索引链相对应的第二索引链,包括:<...
【专利技术属性】
技术研发人员:钟志明,欧阳江平,徐建良,
申请(专利权)人:深圳前海微众银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。