CN111046052A - 一种数据库中的操作记录存储方法、装置及设备 - Google Patents
一种数据库中的操作记录存储方法、装置及设备 Download PDFInfo
- Publication number
- CN111046052A CN111046052A CN201911094100.4A CN201911094100A CN111046052A CN 111046052 A CN111046052 A CN 111046052A CN 201911094100 A CN201911094100 A CN 201911094100A CN 111046052 A CN111046052 A CN 111046052A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- service attribute
- hash value
- record
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种数据库中的操作记录存储方法、装置及设备。在生成操作记录前,首先评估操作指令对于包含业务属性的数据记录可能产生的变动程度,如果变动程度很大,就记载操作指令,生成包含操作指令的操作记录,进行存储;如果变动程度不大,就记载发生了变化的数据记录或者与其相关的哈希值,生成包含了前述状态变化的操作记录,并进行存储。
Description
技术领域
本说明书实施例涉及信息技术领域,尤其涉及一种数据库中的操作记录存储方法、装置及设备。
背景技术
中心化的数据库服务端在对外提供数据服务时,同时需要保存用户对于数据记录的操作(包括添加、清除、隐匿、查询等等)导致数据记录的变化或者数据记录中的某个属性的状态变化,即需要存储操作记录,以便进行追溯或者回滚。在中心化的场景下,数据记录往往数量庞大,操作记录的数量也往往很大。
基于此,需要一种灵活的操作记录存储方法。
发明内容
本申请实施例的目的是提供一种在数据库中灵活的操作记录存储方案。
为解决上述技术问题,本申请实施例是这样实现的:
接收操作指令,所述操作指令中包含有业务属性;
评估所述操作指令对于包含有所述业务属性的数据记录的变动程度,确定操作影响特征值,其中,所述操作影响特征值与包含有所述业务属性的数据记录的变动程度正相关;
若所述操作影响特征值超过阈值,生成包含所述操作指令的操作记录,并存储;
否则,确定所述包含有所述业务属性的数据记录的变动状态,生成包含有所述变动状态的操作记录,并存储。
对应的,本说明书实施例还提供一种块链式账本中的操作记录存储装置,包括:
接收模块,接收操作指令,所述操作指令中包含有业务属性;
评估模块,评估所述操作指令对于包含有所述业务属性的数据记录的变动程度,确定操作影响特征值,其中,所述操作影响特征值与包含有所述业务属性的数据记录的变动程度正相关;
第一存储模块,若所述操作影响特征值超过阈值,生成包含所述操作指令的操作记录,并存储;
第二存储模块,否则,确定所述包含有所述业务属性的数据记录的变动状态,生成包含有所述变动状态的操作记录,并存储。
通过本说明书实施例所提供的方案,在生成操作记录前,首先评估操作指令对于包含业务属性的数据记录可能产生的变动程度,如果变动程度很大,就记载操作指令,生成包含操作指令的操作记录,进行存储;如果变动程度不大,就记载发生了变化的数据记录或者与其相关的哈希值,生成包含了前述状态变化的操作记录,并进行存储。通过评估操作指令可能产生的影响,动态的生成相关的操作记录,在保障可以准确的回溯数据状态,节省了存储操作记录时的系统开销,实现灵活的操作记录存储方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本说明书实施例所涉及的系统架构示意图;
图2是本说明书实施例所提供的数据系统架构示意图;
图3为本说明书实施例所提供的块链式账本中的操作记录存储方法的流程示意图;
图4为本说明书实施例所提供的一种生成块链式账本的流程示意图;
图5为本说明书实施例所提供的一种数据块的块头的示意图;
图6是本说明书实施例提供的一种数据库中的操作记录存储装置的结构示意图;
图7是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在中心化的数据库服务端,常常面向各种机构提供服务,各机构则可以将它们与第三方用户(包括其它机构或者个人)之间所产生的数据记录在数据库服务方进行存储。如图1所示,图1为本说明书实施例所涉及的系统架构示意图。在该示意图中,一个企业机构可以面向多名用户,而每个用户均可以通过其对应的企业机构向数据库服务提供方进行查询。
例如,数据库服务端对接的机构是某金融产品公司,数据记录可以是个人用户在该金融产品公司的理财记录;或者,对接的机构可以是政府部门,其中的数据记录是政府部门对于该部门所管理的公共项目的开销明细;或者,数据库服务方对接的机构是某个医院,其中的数据记录是病人的病历;或者,数据库服务方对接的机构是第三方支付机构,数据记录可以是个人用户通过该机构的支付记录,等等。
数据库提供服务的方式可以是常规的关系型/非关系型数据结构,可以是块链式的数据结构。如图2所示,图2是本说明书实施例所提供的数据系统架构示意图。用户的数据被保存在图2中所示的账本主体中(可以是关系型的表格,块链式的账本等等)。其中的索引可以根据需要自行定义,例如,对于块链式的账本,索引中可以包含以数据记录的业务属性为主键,以块高和偏移序号为值的倒排索引;元数据部分可以对账本主体、索引以及其它信息进行统计,得到相关的信息,例如,元数据部分可以包括:账本中的数据记录总条数,账本中的数据块的总数量,账本中的业务属性总数量,数量排行前若干位的业务属性的数据记录的数量,账本中某业务属性所处的数据块的数量,等等。在一些业务场景下,元数据还可以对于某个业务属性进行状态计算,例如,在金融相关的场景下,数据记录是关于用户的支出/收入记录,或者是用户关于证券的买进/卖出记录等等,在这个方式下,元数据中还可以包括对于某些业务属性(例如用户的金额相关)的世界状态值。
在用户的数据记录被写入数据块之后,用户还可以对账本中的数据记录进行各种操作,例如,包括更新UPDATA、添加APPEND、清除PURGE、验证VERIFY、查询SELECT、隐匿OCCULT等等。在这个过程中就会产生相应的操作记录,操作记录则可以进行存储中的日志部分,或者也可以进行存储中的账本主体部分。基于此,本说明书实施例还提供一种块链式账本中的操作记录存储方法,如图3所示,图3为本说明书实施例所提供的块链式账本中的操作记录存储方法的流程示意图,包括:
S301,接收操作指令,所述操作指令中包含有业务属性。
如前所述,在常规的数据库中,操作指令可以采用常见的结构化查询语言(Structured Query Language,SQL),包括诸如UPDATA、APPEND、PURGE、VERIFY、SELECT、OCCULT等等。
例如SELECT(balance,FULL),查询在账本中以“balance”为业务属性的所有数据记录;又例如,UPDATA(key1,v1,v2),将账本中将包含有业务属性“key1”的数据记录中的v1替换为v2等等。操作指令可以来源于数据库服务端、对接机构或者对接机构的用户等等。
在一些非常规的数据库中,操作指令也可以是用户所自定义的具有某些特定功能的语句,例如,在块链式账本中的清除PURGE(用于清除指定块高之前的数据块),隐匿OCCULT(用于隐藏某条指定数据记录的明文)等等。
业务属性可以是与用户的业务数据相关的字段,例如,用户ID、手机号、物品名称等等此处不做限制;业务属性也可以是与存储用户数据的账本主体、索引以及元数据相关的字段,例如,账本名称、索引名称、索引中的行列数值等等。
S303,评估所述操作指令对于包含有所述业务属性的数据记录的变动程度,确定操作影响特征值。
在用户通过操作指令对于数据记录进行操作时,相应的就会对数据记录产生影响。这里的影响变动程度主要包括“对于数据记录本身的改变”、“对于数据记录相关的索引的改变”以及“对于元数据的改变”等等。
具体而言,可以从多个方面综合性的进行评估。以下列举两个方面:
第一,根据操作指令的类型进行评估。
如前所述,操作指令包括多种类型,而不同类型的操作指令对于数据记录的影响程度是不一样的。例如,一个查询指令可能不会改变任何的数据记录或者元数据,而一条隐藏指令OCCULT可能影响到一条数据记录,而一条UPDATA则可能对于所有包含有指定业务属性的数据记录都会产生影响,以及对于索引和元数据都可能产生相应的影响。
因此,可以根据实际经验,赋予各操作指令相应的指令影响系数K,指令影响系数用于评估操作指令的操作影响特征值。例如,查询指令的K1=0,隐藏指令的K2=1等等。
第二,根据包含有业务属性的数据记录的数量进行评估。
如前所述,在常规的数据库或者块链式的数据库中,都可以包含于账本主体相关的元数据。例如,账本中的数据记录总条数、账本中的业务属性总数量以及数量排行前若干位(例如,前20位)的业务属性的数据记录的数量。
因此,对于一条包含有指定业务属性的操作指令,其可能影响多少条数据记录可以从元数据中直观的得到反映。
例如,假设在元数据中,依序记录了前100名的包含某个业务属性的数据记录的数量,业务属性“key1”处于该表中,包含有业务属性“key1”的数据记录的数量条数为“N1”,则可以知道该操作指令可能影响到“N1”条数据记录。
又例如,而假设在元数据中,业务属性“key2”不处于该表格中,则可以知道包含业务属性“key2”的数量不是特别多,可以推定不在前100的业务属性,所对应的数据记录的条数是均匀分布,因此,可以计算得到包含有业务属性“key2”的数量N2=(N总-N前100)/(数据记录总条数-100)。
在这种情形下,可以根据操作指令可能影响到的数据记录的条数“N”进行评估,得到数据数量影响系数“M”,显然,M与可能影响到的数据记录的条数“N”是正相关的,例如“M=N”,或者“M=LnN”
对于操作影响特征值T的评估可以根据指令影响系数K和/或数据数量影响系数“M”综合进行,例如,T=K*M。以及,在实际应用中,还可以综合其它相关的因素,例如,操作指令本身的时间复杂度或者空间复杂度等等。总之,操作指令可能影响到的数据记录的变动程度越大,操作影响特征值T越大。
S305,若所述操作影响特征值超过阈值,生成包含所述操作指令的操作记录,并存储。
若所述操作影响特征值超过阈值,说明该操作指令可能影响了多条数据记录以及元数据。如果在操作指令中记载每条数据记录的变化状态,则可能需要相当多的资源。
例如,假设一条UPDATA指令对于某业务属性所对应的值进行了统一更新,包含该业务属性的数据记录有1000条,那么,如果对每条数据记录的变化状态进行记载,则需在一条操作记录中记录1000条数据记录的前后变化。这显然需要耗费相当多的资源。
而此时如果采用记载操作指令的方式,那么,显然此时只需要在操作记录中包含有该操作指令即可。具体而言,生成的操作记录中还可以包括操作指令的接收时间、具体发送指令的用户标识等等,操作指令以明文形式存储。
生成的操作记录可以存储在相应的日志文件中,在块链式账本中,生成的操作记录也可以写入到账本中的数据块中。
S307,否则,确定所述包含有所述业务属性的数据记录的变动状态,生成包含有所述变动状态的操作记录,并存储。
所述操作影响特征值不超过阈值,则可以说明该操作记录可能仅仅影响了较少数量的数据记录。例如,对于一条操作指令APPEND(key1,V),仅仅是在数据库中添加了一条包含有业务属性“key1”的数据记录,在元数据中,可能导致的改变是“key1”所对应的数据记录的数量条数+1,或者,可能导致的改变是“key1”所对应的世界状态由当前值,变更为当前值加伤“V”中的相应数值。
甚至,如果该业务属性“key1”所对应的数据数量较少(例如,不处于数量前100的表格中),对元数据都不会造成有什么变化。
那么,此时可以分别确定有哪些数据记录或者元数据发生了改变,将对应的状态变化写入到操作记录中。
具体而言,对于操作记录的变化,可以是直接记载数据记录本身的变化。即,确定发生变动的包含有所述业务属性的数据记录中,所述业务属性的初始值和变化值,生成包含有所述业务属性的初始值和变化值的操作记录。
例如,假设一条操作指令仅仅改变了一条数据记录中“key1”的对应值从“0”变为“1”,对于元数据没有造成改变。则此时,在操作记录中仅仅需要记载该数据记录产生变化的数据记录的位置,业务属性key1,以及初始值(变化前的值)“0”和变化值(即产生变化后的值)“1”即可。
在一种实施方式中,对于某些特定的实施场景,如果业务属性的累计值对于用户有特定的意义(例如,用户账户支出、收入的变化导致的账户余额,用户买入、卖出导致的利润值等等)。则此时,对于该操作指令,还可以确定包含有所述业务属性的数据记录中所述业务属性的累计状态值,生成包含有所述累计状态值的操作记录。在这种实施方式下,显然一条操作指令只会影响到累计状态值的1次变更。
在影响到的数据记录不多的时候,通过记录少量数据记录的初始值、变化值以及累计状态值的变化,同样也无需消耗太多资源。
在一种实施方式下,记录数据记录的状态值的时候,还可以通过对于数据记录的前后变化进行完整的记录,以及记录发生变动前的数据记录的第一数据哈希值和发生变动后的数据记录的第二数据哈希值,生成包含有所述第一数据哈希值和第二数据哈希值的操作记录。
在这种方式下,数据记录变化前的哈希值以及数据记录变化前的原文都得到了记载,在数据进行回滚的时候,还可以根据数据记录的第一数据哈希值进行校验:即在回滚后重新计算数据记录的回滚哈希值,与第一数据哈希值进行对比,如果一致,则说明回滚正确无误,保证了数据回滚的正确性。第二数据哈希值用于下一次数据状态发生变化时,以及,用于操作记录中根据第一数据哈希值和第二数据哈希值进行追溯。
通过本说明书实施例所提供的方案,在生成操作记录前,首先评估操作指令对于包含业务属性的数据记录可能产生的变动程度,如果变动程度很大,就记载操作指令,生成包含操作指令的操作记录,进行存储;如果变动程度不大,就记载发生了变化的数据记录或者与其相关的哈希值,生成包含了前述状态变化的操作记录,并进行存储。通过评估操作指令可能产生的影响,动态的生成相关的操作记录,在保障可以准确的回溯数据状态时,节省了存储操作记录时的系统开销,实现灵活的操作记录存储方法。
在一种实施方式中,本说明书实施例中所涉及的数据库可以是以块链式账本对外提供服务的中心化的数据库。这里的块链式账本可以是区块链账本,也可以是中心化的类区块链账本。
在中心化的数据库服务提供方,块链式的账本通过如下方式生成,如图4所示,图4为本说明书实施例所提供的一种生成块链式账本的流程示意图,包括:
S401,接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含业务属性。
如前所述,此处的待存储的数据记录,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。
在本说明书实施例中,数据记录中包含有业务属性,在每个与数据库服务方对接的机构中,所述业务属性在所述对接机构中,一般而言是唯一存在的,业务属性基于不同的业务场景,可以包括用户名、用户身份证号、驾照编号、手机号、项目唯一编号等等。
例如,对于第三方支付机构而言,数据记录是用户的消费记录,此时的业务属性即为用户标识(包括手机号、身份证号、用户名等等),或者对该用户标识进行哈希算法所得到的哈希值;或者,对于政府机构而言,数据记录为多个公共项目的开销流水,则此时的业务属性可以为每个项目的唯一编号。
业务属性可以存储于数据记录中的指定字段(例如,数据记录的头部或者尾部),从而可以方便数据库服务端以及用户从中获取该数据记录的业务属性。
需要说明的是,在同一账本中,可以包含有多条数据记录。这些数据记录的业务属性则很可能是不一样的。例如,在一个账本面向多个用户开放时,数据记录可能来源于不同的的用户,若业务属性为用户标识,则容易理解不同的数据记录中常常包含了不同的用户标识。
S403,当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块。
所述预设的成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。
此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第N个数据块的块高即为N;块高也可以其它方式生成。
当N=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含数据记录,哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。
当N>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据块(即第N-1个数据块)的哈希值生成当前数据块(第N个数据块)的哈希值,例如,一种可行的方式为,确定每一条将要写入第N个块中的数据记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值。又例如,还可以按照块中数据记录的顺序进行拼接并取哈希得到整体数据记录的哈希值,拼接前一数据块的哈希值和整体数据记录的哈希值,并对拼接得到的字串进行哈希运算,生成数据块的哈希值。
用户在上传数据成功后,即可以得到对应的数据记录的哈希值以及所处的数据块的哈希值,并保存,并且可以基于该哈希值发起完整性验证。具体的验证方式包括重新计算数据记录自身的哈希值以及所处的数据块的哈希值,与本地所保存的进行对比。
上述方式生成的数据块,可以包括块头和块体两个部分。块体中可以用于存储拼接数据的明文,或者拼接数据的哈希值等等;块头中可以用于存储有关本数据块的元数据,例如,账本的版本号,前一数据块的哈希值,自身数据块中的拼接数据所组成的默克尔树的根哈希值,自身数据块的哈希值,用于记录拼接数据的被操作状态的状态数组等等。如图5所示,图5为本说明书实施例所提供的一种数据块的块头的示意图。
通过前述方式,用户的数据记录被保存在了块链式账本中,并且可以随时发起完整性验证,从而保证用户的数据不会被篡改。同时需要说明的是,在本说明书实施例中,块链式账本是一个广义上的账本,其不仅仅包括存储用户的数据记录的那一部分结构,也包括存储与数据记录相关的元数据、操作日志、索引等等部分。
在这种实施场景下,数据记录被存储在不可篡改的块链式账本中,但是数据库服务端同样可以对某个业务属性的“状态数据”(包括累计值、是否被操作、被操作时间等等)进行计算。例如,针对某个业务属性,在索引表或者元数据中的指定区域块中记载该业务属性的相关的状态数据。
此时,如果用户针对某个业务属性进行了相应的操作,则会导致该区域中的某些值发生变化。则此时,数据库服务端可以根据业务属性,确定发生变动的包含有所述业务属性的指定区域块,进而确定发生变动前的指定区域块的第一块哈希值和发生变动后的所述指定区域块的第二块哈希值,生成包含有所述第一块哈希值和第二块哈希值的操作记录。
第一块哈希值与第二块哈希值的作用于前述的第一数据哈希值和第二数据哈希值的作用类似,用于所述的指定区域块的回滚与追溯,以保证数据回滚时的准确。
显然,在生成的操作记录中还可以包含有指定表区块的位置标示,以及所述业务属性,以便进行追溯与回滚。
对应的,本说明书实施例还提供一种数据库中的操作记录存储装置,如图6所示,图6是本说明书实施例提供的一种数据库中的操作记录存储装置的结构示意图,包括:
接收模块601,接收操作指令,所述操作指令中包含有业务属性;
评估模块603,评估所述操作指令对于包含有所述业务属性的数据记录的变动程度,确定操作影响特征值,其中,所述操作影响特征值与包含有所述业务属性的数据记录的变动程度正相关;
第一存储模块605,若所述操作影响特征值超过阈值,生成包含所述操作指令的操作记录,并存储;
第二存储模块607,否则,确定所述包含有所述业务属性的数据记录的变动状态,生成包含有所述变动状态的操作记录,并存储。
进一步地,在所述装置中,所述评估模块603,根据所述操作指令的类型,评估所述操作指令对于包含有所述业务属性的数据记录的变动程度。
进一步地,在所述装置中,所述评估模块603,确定包含有所述业务属性的数据记录的数量,根据所述数量评估所述操作指令对于包含有所述业务属性的数据记录的变动程度。
进一步地,在所述装置中,所述第二存储模块607,确定发生变动的包含有所述业务属性的数据记录中,所述业务属性的初始值和变化值,生成包含有所述业务属性的初始值和变化值的操作记录;或者,确定包含有所述业务属性的数据记录中所述业务属性的累计状态值,生成包含有所述累计状态值的操作记录。
进一步地,在所述装置中,所述第二存储模块607,确定发生变动的包含有所述业务属性的数据记录中,发生变动前的数据记录的第一数据哈希值和发生变动后的数据记录的第二数据哈希值,生成包含有所述第一数据哈希值和第二数据哈希值的操作记录。
进一步地,在所述装置中,当所述数据记录存储在块链式账本中时,所述第二存储模块607,确定发生变动的包含有所述业务属性的指定区域块;确定发生变动前的指定区域块的第一块哈希值和发生变动后的所述指定区域块的第二块哈希值,生成包含有所述第一块哈希值和第二块哈希值的操作记录。
进一步地,所述装置还包括数据块生成模块609,接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含业务属性;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
进一步地,在所述装置中,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图3所示的操作记录存储防控方法。
图7示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图3所示的操作记录存储方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (17)
1.一种数据库中的操作记录存储方法,包括:
接收操作指令,所述操作指令中包含有业务属性;
评估所述操作指令对于包含有所述业务属性的数据记录的变动程度,确定操作影响特征值,其中,所述操作影响特征值与包含有所述业务属性的数据记录的变动程度正相关;
若所述操作影响特征值超过阈值,生成包含所述操作指令的操作记录,并存储;
否则,确定所述包含有所述业务属性的数据记录的变动状态,生成包含有所述变动状态的操作记录,并存储。
2.如权利要求1所述的方法,评估所述操作指令对于包含有所述业务属性的数据记录的变动程度,包括:
根据所述操作指令的类型,评估所述操作指令对于包含有所述业务属性的数据记录的变动程度。
3.如权利要求1所述的方法,评估所述操作指令对于包含有所述业务属性的数据记录的变动程度,包括:
确定包含有所述业务属性的数据记录的数量,根据所述数量评估所述操作指令对于包含有所述业务属性的数据记录的变动程度。
4.如权利要求要求1所述的方法,确定所述包含有所述业务属性的数据记录的变动状态,生成包含有所述变动状态的操作记录,包括:
确定发生变动的包含有所述业务属性的数据记录中,所述业务属性的初始值和变化值,生成包含有所述业务属性的初始值和变化值的操作记录;
或者,确定包含有所述业务属性的数据记录中所述业务属性的累计状态值,生成包含有所述累计状态值的操作记录。
5.如权利要求1所述的方法,确定所述包含有所述业务属性的数据记录的变动状态,生成包含有所述变动状态的操作记录,包括:
确定发生变动的包含有所述业务属性的数据记录中,发生变动前的数据记录的第一数据哈希值和发生变动后的数据记录的第二数据哈希值,生成包含有所述第一数据哈希值和第二数据哈希值的操作记录。
6.如权利要求1所述的方法,当所述数据记录存储在块链式账本中时,确定所述包含有所述业务属性的数据记录的变动状态,生成包含有所述变动状态的操作记录,包括:
确定发生变动的包含有所述业务属性的指定区域块;
确定发生变动前的指定区域块的第一块哈希值和发生变动后的所述指定区域块的第二块哈希值,生成包含有所述第一块哈希值和第二块哈希值的操作记录。
7.如权利要求6所述的方法,所述块链式账本通过如下方式预先生成:
接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含业务属性;
当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
8.如权利要求7所述的方法,所述预设的成块条件包括:
待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
9.一种数据库中的操作记录存储装置,包括:
接收模块,接收操作指令,所述操作指令中包含有业务属性;
评估模块,评估所述操作指令对于包含有所述业务属性的数据记录的变动程度,确定操作影响特征值,其中,所述操作影响特征值与包含有所述业务属性的数据记录的变动程度正相关;
第一存储模块,若所述操作影响特征值超过阈值,生成包含所述操作指令的操作记录,并存储;
第二存储模块,否则,确定所述包含有所述业务属性的数据记录的变动状态,生成包含有所述变动状态的操作记录,并存储。
10.如权利要求9所述的装置,所述评估模块,根据所述操作指令的类型,评估所述操作指令对于包含有所述业务属性的数据记录的变动程度。
11.如权利要求9所述的装置,所述评估模块,确定包含有所述业务属性的数据记录的数量,根据所述数量评估所述操作指令对于包含有所述业务属性的数据记录的变动程度。
12.如权利要求9所述的装置,所述第二存储模块,确定发生变动的包含有所述业务属性的数据记录中,所述业务属性的初始值和变化值,生成包含有所述业务属性的初始值和变化值的操作记录;或者,确定包含有所述业务属性的数据记录中所述业务属性的累计状态值,生成包含有所述累计状态值的操作记录。
13.如权利要求9所述的装置,所述第二存储模块,确定发生变动的包含有所述业务属性的数据记录中,发生变动前的数据记录的第一数据哈希值和发生变动后的数据记录的第二数据哈希值,生成包含有所述第一数据哈希值和第二数据哈希值的操作记录。
14.如权利要求9所述的装置,当所述数据记录存储在块链式账本中时,所述第二存储模块,确定发生变动的包含有所述业务属性的指定区域块;确定发生变动前的指定区域块的第一块哈希值和发生变动后的所述指定区域块的第二块哈希值,生成包含有所述第一块哈希值和第二块哈希值的操作记录。
15.如权利要求9所述的装置,还包括数据块生成模块,接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含业务属性;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
16.如权利要求9所述的装置,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
17.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至8任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911094100.4A CN111046052B (zh) | 2019-11-11 | 2019-11-11 | 一种数据库中的操作记录存储方法、装置及设备 |
PCT/CN2020/117005 WO2021093462A1 (zh) | 2019-11-11 | 2020-09-23 | 一种数据库中的操作记录存储方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911094100.4A CN111046052B (zh) | 2019-11-11 | 2019-11-11 | 一种数据库中的操作记录存储方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111046052A true CN111046052A (zh) | 2020-04-21 |
CN111046052B CN111046052B (zh) | 2021-04-06 |
Family
ID=70231903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911094100.4A Active CN111046052B (zh) | 2019-11-11 | 2019-11-11 | 一种数据库中的操作记录存储方法、装置及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111046052B (zh) |
WO (1) | WO2021093462A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444215A (zh) * | 2020-06-12 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 一种块链式账本中的成块方法、装置及设备 |
WO2021093462A1 (zh) * | 2019-11-11 | 2021-05-20 | 蚂蚁区块链科技(上海)有限公司 | 一种数据库中的操作记录存储方法、装置及设备 |
WO2023242720A1 (en) * | 2022-06-15 | 2023-12-21 | International Business Machines Corporation | Conditional replication of data |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120529A1 (en) * | 2006-11-21 | 2008-05-22 | Denso Corporation | Soft decision correction method, receiver using the same, and program therefor |
CN102073555A (zh) * | 2009-11-24 | 2011-05-25 | 联想(北京)有限公司 | 一种备份方法、实现备份的装置及计算机 |
CN110046162A (zh) * | 2019-03-26 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 辅助证据存证方法、系统、装置及设备 |
CN110275916A (zh) * | 2019-05-23 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 数据操作记录的存储方法、系统、装置及设备 |
CN110347679A (zh) * | 2019-06-20 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种基于收据的数据存储方法、装置及设备 |
CN110362570A (zh) * | 2019-06-20 | 2019-10-22 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715041B (zh) * | 2015-03-24 | 2018-09-14 | 深圳市乾华数据科技有限公司 | 一种数据库恢复方法及系统 |
CN107145403B (zh) * | 2017-04-20 | 2020-06-30 | 浙江工业大学 | 面向Web开发环境的关系型数据库数据回溯方法 |
US11055264B2 (en) * | 2017-05-10 | 2021-07-06 | Dropbox, Inc. | Automatically coordinating application schema changes in a distributed data storage system |
CN110020547A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据隐匿方法、装置及设备 |
CN111046052B (zh) * | 2019-11-11 | 2021-04-06 | 蚂蚁区块链科技(上海)有限公司 | 一种数据库中的操作记录存储方法、装置及设备 |
-
2019
- 2019-11-11 CN CN201911094100.4A patent/CN111046052B/zh active Active
-
2020
- 2020-09-23 WO PCT/CN2020/117005 patent/WO2021093462A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120529A1 (en) * | 2006-11-21 | 2008-05-22 | Denso Corporation | Soft decision correction method, receiver using the same, and program therefor |
CN102073555A (zh) * | 2009-11-24 | 2011-05-25 | 联想(北京)有限公司 | 一种备份方法、实现备份的装置及计算机 |
CN110046162A (zh) * | 2019-03-26 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 辅助证据存证方法、系统、装置及设备 |
CN110275916A (zh) * | 2019-05-23 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 数据操作记录的存储方法、系统、装置及设备 |
CN110347679A (zh) * | 2019-06-20 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种基于收据的数据存储方法、装置及设备 |
CN110362570A (zh) * | 2019-06-20 | 2019-10-22 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
施光源 等: ""基于块级的分级存储数据特征模型及其应用研究"", 《计算机研究与发展》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021093462A1 (zh) * | 2019-11-11 | 2021-05-20 | 蚂蚁区块链科技(上海)有限公司 | 一种数据库中的操作记录存储方法、装置及设备 |
CN111444215A (zh) * | 2020-06-12 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 一种块链式账本中的成块方法、装置及设备 |
WO2023242720A1 (en) * | 2022-06-15 | 2023-12-21 | International Business Machines Corporation | Conditional replication of data |
Also Published As
Publication number | Publication date |
---|---|
CN111046052B (zh) | 2021-04-06 |
WO2021093462A1 (zh) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188096B (zh) | 一种数据记录的索引创建方法、装置及设备 | |
CN110162662B (zh) | 一种块链式账本中数据记录的验证方法、装置及设备 | |
US9904694B2 (en) | NoSQL relational database (RDB) data movement | |
WO2021073242A1 (zh) | 索引创建和数据查询方法、装置及设备 | |
CN110162526B (zh) | 一种块链式账本中数据记录的查询方法、装置及设备 | |
CN111046052B (zh) | 一种数据库中的操作记录存储方法、装置及设备 | |
WO2020233146A1 (zh) | 数据操作记录的存储方法、系统、装置及设备 | |
CN111352935B (zh) | 一种块链式账本中的索引创建方法、装置及设备 | |
CN113726751B (zh) | 一种块链式账本中的权重管理方法、装置及设备 | |
WO2020211497A1 (zh) | 一种个人资产变更记录的存储方法、系统、装置及设备 | |
CN110349019B (zh) | 一种块链式账本中的验证方法、装置及设备 | |
CN110837502B (zh) | 一种块链式账本中的数据存储方法、装置及设备 | |
US20160246705A1 (en) | Data fabrication based on test requirements | |
CN110347679B (zh) | 一种基于收据的数据存储方法、装置及设备 | |
CN111046069B (zh) | 一种块链式账本中的聚合计算方法、装置及设备 | |
US20200183883A1 (en) | Storing an asset update record | |
CN110347744A (zh) | 多层块链式账本的数据存储方法、装置及设备 | |
US11321318B2 (en) | Dynamic access paths | |
CN111506580A (zh) | 一种基于中心化块链式账本的交易存储方法 | |
CN110059088B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN110362570B (zh) | 一种数据存储方法、装置及设备 | |
CN110059087B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN111444194B (zh) | 一种块链式账本中索引的清除方法、装置及设备 | |
US11115189B2 (en) | Verifying a blockchain-type ledger | |
CN111444197B (zh) | 一种块链式账本中数据记录的验证方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200702 Address after: Unit 02, 20 / F, block a, building 4, Lane 838, Huangpi South Road, Huangpu District, Shanghai 200025 Applicant after: Ant blockchain Technology (Shanghai) Co., Ltd Address before: 801-11, Section B, 8th floor, No. 556, Xixi Road, Xihu District, Hangzhou City, Zhejiang Province Applicant before: Alipay (Hangzhou) Information Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |