一种数据记录的索引创建方法、装置及设备制造方法及图纸

技术编号:22000010 阅读:33 留言:0更新日期:2019-08-31 05:20
公开了一种数据记录的索引创建方法、装置及设备。通过本说明书实施例所提供的方案,对于写入账本的数据记录,确定出数据记录的业务属性,以及在账本中的存储位置,建立起二者的对应关系,创建以业务属性为主键的倒排索引。

An Index Creation Method, Device and Equipment for Data Records

【技术实现步骤摘要】
一种数据记录的索引创建方法、装置及设备
本说明书实施例涉及信息
,尤其涉及一种数据记录的索引创建方法、装置及设备。
技术介绍
在中心化的数据库服务方以块链式的账本对外提供服务时,账本中记录了相关用户所需要保存的相关数据记录。在实际应用中,中心化的数据库服务方一般对接的是企业用户,而企业用户需要进行存储的数据记录往往具有不同的业务属性。例如,数据记录的来源、用户、所属项目等等。在块链式账本中对于同一业务属性相关的数据记录的存储往往是分散的,对于同一业务属性相关的数据记录进行状态统计不便。基于此,需要一种关于数据记录的业务属性的索引创建方案。
技术实现思路
本申请实施例的目的是提供一种中心化的块链式账本中创建索引的方法。为解决上述技术问题,本申请实施例是这样实现的:一种数据记录的索引创建方法,应用于通过块链式账本存储数据的中心化的数据库服务提供方中,包括:获取数据记录中的指定标识字段,所述指定标识字段用于标识所述数据记录的业务属性;确定所述数据记录在账本中的位置信息,所述位置信息包括数据记录所处的数据块的块高,以及,在所处的数据块中的偏移量;建立所述指定标识字段和位置信息的对应关系,写入以所述指定标识字段为主键的索引;其中,在所述块链式账本中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。对应的,本说明书实施例还提供一种数据记录的索引创建装置,应用于通过块链式账本存储数据的中心化的数据库服务提供方中,包括:获取模块,获取数据记录中的指定标识字段,所述指定标识字段用于标识所述数据记录的业务属性;确定模块,确定所述数据记录在账本中的位置信息,所述位置信息包括数据记录所处的数据块的块高,以及,在所处的数据块中的偏移量;写入模块,建立所述指定标识字段和位置信息的对应关系,写入以所述指定标识字段为主键的索引;其中,在所述块链式账本中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。通过本说明书实施例所提供的方案,对于写入账本的数据记录,确定出数据记录的业务属性,以及在账本中的存储位置,建立起二者的对应关系,创建以业务属性为主键的倒排索引,不必了解用户的业务详情,从索引中即可以基于业务属性对于数据记录进行相应统计,以及后续的查询和验证。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1为本说明书实施例所提供的一种生成块链式账本的流程示意图;图2为本说明书实施例所涉及的系统架构示意图;图3是本说明书实施例提供的一种数据记录的索引创建方法的流程示意图;图4是本说明书实施例提供的一种数据记录的索引创建装置的结构示意图;图5是用于配置本说明书实施例方法的一种设备的结构示意图。具体实施方式为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。首先对本说明书实施例中所涉及的中心化下的块链式的账本予以说明。在中心化的数据库服务提供方,块链式的账本通过如下方式生成,如图1所示,图1为本说明书实施例所提供的一种生成块链式账本的流程示意图,包括:S101,接收待存储的数据记录,确定各数据记录的哈希值。此处的待存储的数据记录,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。S103,当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块。所述预设的成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第N个数据块的块高即为N;块高也可以其它方式生成。当N=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含数据记录,哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。当N>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据块(即第N-1个数据块)的哈希值生成当前数据块(第N个数据块)的哈希值,例如,一种可行的方式为,确定每一条将要写入第N个块中的数据记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值。又例如,还可以按照块中数据记录的顺序进行拼接并取哈希得到整体数据记录的哈希值,拼接前一数据块的哈希值和整体数据记录的哈希值,并对拼接得到的字串进行哈希运算,生成数据块的哈希值。用户在上传数据成功后,即可以得到对应的数据记录的哈希值以及所处的数据块的哈希值,并保存,并且可以基于该哈希值发起完整性验证。具体的验证方式即为在数据库中重新计算数据记录自身的哈希值以及所处的数据块的哈希值,与本地所保存的进行对比。通过前述的数据块的生成方式,每一个数据块通过哈希值确定,数据块的哈希值由数据块中的数据记录的内容、顺序以及前一数据块的哈希值决定。用户可以随时基于数据块的哈希值发起验证,对于数据块中任何内容(包括对于数据块中数据记录内容或者顺序的修改)的修改都会造成在验证时计算得到的数据块的哈希值和数据块生成时的哈希值不一致,而导致验证失败,从而实现了中心化下的不可篡改。在对于块链式的账本进行验证时,一般而言,即指定一段数据块进行连续的完整性验证,或者从初始数据块开始进行连续的完整性验证。验证的方式即为获取前一数据块的哈希值,并采用与生成数据块的哈希值时的同样算法,根据自身的数据记录和前一数据块的哈希值,重新计算一遍自身数据块的哈希值。前述部分对于本说明书实施例所涉及的块链式的账本进行了说明。在实际应用中,数据库服务方面向的常常为本文档来自技高网...

【技术保护点】
1.一种数据记录的索引创建方法,应用于通过块链式账本存储数据的中心化的数据库服务提供方中,包括:获取数据记录中的指定标识字段,所述指定标识字段用于标识所述数据记录的业务属性;确定所述数据记录在账本中的位置信息,所述位置信息包括数据记录所处的数据块的块高,以及,在所处的数据块中的偏移量;建立所述指定标识字段和位置信息的对应关系,写入以所述指定标识字段为主键的索引;其中,在所述块链式账本中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。

【技术特征摘要】
1.一种数据记录的索引创建方法,应用于通过块链式账本存储数据的中心化的数据库服务提供方中,包括:获取数据记录中的指定标识字段,所述指定标识字段用于标识所述数据记录的业务属性;确定所述数据记录在账本中的位置信息,所述位置信息包括数据记录所处的数据块的块高,以及,在所处的数据块中的偏移量;建立所述指定标识字段和位置信息的对应关系,写入以所述指定标识字段为主键的索引;其中,在所述块链式账本中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。2.如权利要求1所述的方法,获取数据记录中的指定标识字段,包括:接收到用户所发送的数据记录时,获取数据记录中的指定标识字段;或者,确定账本中的数据块所包含的数据记录,针对所述数据块中所包含的任一数据记录,获取其指定标识字段。3.如权利要求1所述的方法,写入以所述指定标识字段为主键的索引,包括:当所述索引中的主键不包含所述指定标识字段时,在所述索引表中创建以所述指定标识字段为主键的索引记录;当所述索引中的主键包含所述指定标识字段时,将所述位置信息写入所述指定标识字段所处的索引记录。4.如权利要求3所述的方法,将所述位置信息写入所述指定标识字段所处的索引记录,包括:确定数据记录的时间戳;在同一索引记录中按照时间戳的先后顺序,将数据记录的位置信息依序写入索引记录的值。5.如权利要求1所述的方法,在中心化的数据库服务提供方,数据块通过如下方式预先生成:接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含指定标识字段;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:当N=1时,初始数据块的哈希值和块高基于预设方式给定;当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。6.如权利要求5所述的方法,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。7.如权利要求1所述的方法,所述方法还包括:接收包含业务属性具体值的查询指令;根据所述用户业务属性的具体值,从索引表中进行匹配,确定在所述索引表中所述业务属性具体值所对应的位置信息;根据所述位置信息从所述账本中获取对应的数据记录,并返回获取得到的对应的数据记录至查询指令发送方。8.如权利要求1所述的方法,所述方法还包括:接收包含业务属性具体值的验证指令;根据所述用户业务属性具体值,从索引表中进行匹配,确定在所述索引表中所述业务属性具体值所对应的位置信息;根据所述位置信息对所述位置信息所对应的数据记录和/或数据块进行完整性验证。9.一种数据记录的索引创建装置,应用于通过块链式账本存储数...

【专利技术属性】
技术研发人员:杨新颖
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1