一种数据管理方法及相关设备技术

技术编号:25890505 阅读:48 留言:0更新日期:2020-10-09 23:31
本申请实施例公开了一种数据管理方法及相关设备,用于实现同一个数据对象在跨多个类型的存储系统存储的数据一致性。其中,数据对象的结构化属性对应的数据存储在第一存储系统,比如关系型数据库,数据对象的非结构化属性对应的数据存储在其它类型的存储系统,比如KV系统、文件系统等。通过存储在数据库中的关系数据表来记录数据对象的结构化数据和非结构化数据的关联关系。在对数据对象进行操作时,先访问数据库中的记录,从数据库的记录中获取非结构化属性的键值和路径,然后再通过其它类型的存储系统的接口访问非结构化属性对应的数据。这样,可以通过数据库的事务一致性和规定的数据访问顺序实现多种存储类型系统之间的数据一致性。

【技术实现步骤摘要】
一种数据管理方法及相关设备
本申请涉及计算机
,尤其涉及一种数据管理方法及相关设备。
技术介绍
在计算机系统中,数据一般分为结构化数据和非结构化数据,其中,结构化数据是由二维表结构来逻辑表达和实现的数据,遵循数据格式与长度规范,例如销售信息,财产信息等。非结构化数据是数据结构不规则或不完整,没有预定义的数据,例如文档、图片,音频和视频等。对数据的存储而言,结构化数据一般存储在关系型数据库中,大的非结构数据一般存储在文件存储系统中,小的非结构数据一般存储在键值(keyvalue,KV)系统中。在实际应用中,一个数据对象可能同时包含结构化数据和非结构化数据。举例而言,数据对象为一张图片的信息,这张图片的名称、大小、拍摄时间和拍摄地的经纬度信息等图片的属性信息为结构化数据,这张图片本身为非结构化数据,基于这张图片生成的缩略图为非结构化数据。那么,图片的名称、大小、拍摄时间和拍摄地的经纬度信息等数据将存储在关系型数据库中,图片本身将存储在文件存储系统中,基于图片生成的缩略图将存储在KV存储系统中。可以看出,由于一个数据对象可能同时包含结构化数据和非结构化数据,因此一个数据对象可能存在跨多个数据系统进行存储的情况。现有技术中,在一个数据对象跨多个数据系统进行存储的情况下,用户一般可以对多个数据系统中的数据分别进行操作,可能会存在同一数据对象在各个数据系统中的不一致的问题。例如,用户从文件存储系统中删除了一张图片的文件,用户仍旧可以通过数据库获取到图片的属性信息,但由于该图片的文件已被删除,该图片无法正常显示。如何让数据在跨多个数据系统存储的情况下保持数据一致性是本领域技术人员亟待解决的问题。
技术实现思路
本申请实施例提供一种数据管理方法及相关设备,用于实现数据对象在跨多个数据系统存储的情况下保持数据一致性。第一方面,本申请实施例提供了一种数据管理方法,该方法包括:在关系数据表中生成数据对象的记录,所述数据对象具有多个属性,所述多个属性包括结构化属性和非结构化属性,所述记录指示了所述数据对象的结构化属性和非结构化属性的关联关系,所述关系数据表存储于第一存储系统中;将所述数据对象的非结构化属性对应的数据存储到第二存储系统中;接收操作指令,所述操作指令用于对所述数据对象执行操作;响应于所述操作指令,从所述第一存储系统中确定所述数据对象的所述记录;根据所述记录从所述第一存储系统和所述第二存储系统中的至少一个存储系统中获取所述数据对象的所述多个属性中的至少一个属性对应的数据;基于所述至少一个属性对应的数据,对所述数据对象执行所述操作。由于该数据对象跨多个数据系统存储的多个属性对应的数据均通过该记录获取,可以让该数据对象在跨多个数据系统存储的情况下保持数据一致性。结合第一方面,在一种可能的实现方式中,所述在关系数据表中生成数据对象的记录,包括:接收插入指令或更新指令,所述插入指令用于插入所述数据对象,所述更新指令用于更新所述数据对象;所述插入指令和所述更新指令均包括所述数据对象的对象类型,以及所述数据对象的结构化属性对应的数据和非结构化属性对应的数据;根据所述对象类型确定所述数据对象对应的关系数据表;根据所述结构化属性对应的数据以及所述非结构化属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录;提交所述插入指令或更新指令对应的事务;其中,所述插入指令或更新指令对应的事务在所述数据对象的非结构化属性对应的数据存储到第二存储系统中之后提交。结合第一方面,在一种可能的实现方式中,接收的指令为所述插入指令,所述数据对象的非结构化属性包括键值KV属性,所述第二存储系统为KV存储系统;所述根据所述结构化属性对应的数据以及所述非结构化属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录,包括:根据第一版本标识和所述KV属性对应的数据中的第一键值生成第二键值;根据记录中的结构化属性对应的数据,以及记录中的KV属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录;其中,所述记录中的KV属性对应的数据包括所述第二键值,所述记录中的结构化属性对应的数据包括所述数据对象的结构化属性对应的数据。结合第一方面,在一种可能的实现方式中,接收的指令为所述插入指令,所述数据对象的非结构化属性包括文件属性,所述第二存储系统为文件存储系统;所述根据所述结构化属性对应的数据以及所述非结构化属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录,包括:根据所述第一版本标识和所述文件属性对应的数据中的第一路径生成第二路径;根据记录中的结构化属性对应的数据,以及记录中的文件属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录;其中,所述记录中的文件属性对应的数据包括所述第二路径,所述记录中的结构化属性对应的数据包括所述数据对象的结构化属性对应的数据。结合第一方面,在一种可能的实现方式中,接收的指令为所述更新指令,所述数据对象的非结构化属性包括KV属性,所述第二存储系统为KV存储系统;所述根据所述结构化属性对应的数据以及所述非结构化属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录,包括:根据第二版本标识和所述KV属性对应的数据中的第一键值生成第三键值;根据记录中的结构化属性对应的数据,以及记录中的KV属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录;其中,所述记录中的KV属性对应的数据包括所述第三键值,所述记录中的结构化属性对应的数据包括所述数据对象的结构化属性对应的数据。结合第一方面,在一种可能的实现方式中,接收的指令为所述更新指令,所述数据对象的非结构化属性包括文件属性,所述第二存储系统为文件存储系统;所述根据所述结构化属性对应的数据以及所述非结构化属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录,包括:根据所述第二版本标识和所述文件属性对应的数据中的第一路径生成第三路径;根据记录中的结构化属性对应的数据,以及记录中的文件属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录;其中,所述记录中的文件属性对应的数据包括所述第三路径,所述记录中的结构化属性对应的数据包括所述数据对象的结构化属性对应的数据。结合第一方面,在一种可能的实现方式中,所述第二存储系统中存储的所述数据对象的非结构化属性对应的数据,包括所述非结构化属性对应的标识和内容;所述第一存储系统中存储的所述记录中非结构化属性对应的数据包括非结构化属性对应的标识。结合第一方面,在一种可能的实现方式中,所述操作指令包括查询指令,所述查询指令中包括查询条件;所述响应于所述操作指令,从所述第一存储系统中确定所述数据对象的所述记录,包括:响应于所述操作指令,从所述第一存储系统中选取满足所述查询条件的数据对象的记录;所述根据所述记录从所述第一存储系统和所述第二存储系统中的至少一个存储系统中获取所述数据对象的所述多个属性中的至少一个属性对应的数据,包括:根据所述记录从所述第一存储系统和所本文档来自技高网
...

【技术保护点】
1.一种数据管理方法,其特征在于,所述方法包括:/n在关系数据表中生成数据对象的记录,所述数据对象具有多个属性,所述多个属性包括结构化属性和非结构化属性,所述记录包含所述结构化属性对应的数据,以及所述数据对象的结构化属性和非结构化属性的关联关系,所述关系数据表存储于第一存储系统中;/n将所述数据对象的非结构化属性对应的数据存储到第二存储系统中;/n接收操作指令,所述操作指令用于对所述数据对象执行操作;/n响应于所述操作指令,从所述第一存储系统中确定所述数据对象的所述记录;/n根据所述记录从所述第一存储系统和所述第二存储系统中的至少一个存储系统中获取所述数据对象的所述多个属性中的至少一个属性对应的数据;/n基于所述至少一个属性对应的数据,对所述数据对象执行所述操作。/n

【技术特征摘要】
1.一种数据管理方法,其特征在于,所述方法包括:
在关系数据表中生成数据对象的记录,所述数据对象具有多个属性,所述多个属性包括结构化属性和非结构化属性,所述记录包含所述结构化属性对应的数据,以及所述数据对象的结构化属性和非结构化属性的关联关系,所述关系数据表存储于第一存储系统中;
将所述数据对象的非结构化属性对应的数据存储到第二存储系统中;
接收操作指令,所述操作指令用于对所述数据对象执行操作;
响应于所述操作指令,从所述第一存储系统中确定所述数据对象的所述记录;
根据所述记录从所述第一存储系统和所述第二存储系统中的至少一个存储系统中获取所述数据对象的所述多个属性中的至少一个属性对应的数据;
基于所述至少一个属性对应的数据,对所述数据对象执行所述操作。


2.根据权利要求1所述的方法,其特征在于,所述在关系数据表中生成数据对象的记录,包括:
接收插入指令或更新指令,所述插入指令用于插入所述数据对象,所述更新指令用于更新所述数据对象;所述插入指令和所述更新指令均包括所述数据对象的对象类型,以及所述数据对象的结构化属性对应的数据和非结构化属性对应的数据;
根据所述对象类型确定所述数据对象对应的关系数据表;
根据所述结构化属性对应的数据以及所述非结构化属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录;
提交所述插入指令或更新指令对应的事务;
其中,所述插入指令或更新指令对应的事务在所述数据对象的非结构化属性对应的数据存储到第二存储系统中之后提交。


3.根据权利要求2所述的方法,其特征在于,接收的指令为所述插入指令,所述数据对象的非结构化属性包括键值KV属性,所述第二存储系统为KV存储系统;
所述根据所述结构化属性对应的数据以及所述非结构化属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录,包括:
根据第一版本标识和所述KV属性对应的数据中的第一键值生成第二键值;
生成所述数据对象的记录,其中,所述记录中的KV属性对应的数据包括所述第二键值,所述记录中的结构化属性对应的数据包括所述数据对象的结构化属性对应的数据。


4.根据权利要求2所述的方法,其特征在于,接收的指令为所述插入指令,所述数据对象的非结构化属性包括文件属性,所述第二存储系统为文件存储系统;
所述根据所述结构化属性对应的数据以及所述非结构化属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录,包括:
根据所述第一版本标识和所述文件属性对应的数据中的第一路径生成第二路径;
在所述数据对象对应的关系数据表中生成所述数据对象的记录;其中,所述记录中的文件属性对应的数据包括所述第二路径,所述记录中的结构化属性对应的数据包括所述数据对象的结构化属性对应的数据。


5.根据权利要求2所述的方法,其特征在于,接收的指令为所述更新指令,所述数据对象的非结构化属性包括KV属性,所述第二存储系统为KV存储系统;
所述根据所述结构化属性对应的数据以及所述非结构化属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录,包括:
根据第二版本标识和所述KV属性对应的数据中的第一键值生成第三键值;
在所述数据对象对应的关系数据表中生成所述数据对象的记录;其中,所述记录中的KV属性对应的数据包括所述第三键值,所述记录中的结构化属性对应的数据包括所述数据对象的结构化属性对应的数据。


6.根据权利要求2所述的方法,其特征在于,接收的指令为所述更新指令,所述数据对象的非结构化属性包括文件属性,所述第二存储系统为文件存储系统;
所述根据所述结构化属性对应的数据以及所述非结构化属性对应的数据,在所述数据对象对应的关系数据表中生成所述数据对象的记录,包括:
根据所述第二版本标识和所述文件属性对应的数据中的第一路径生成第三路径;
在所述数据对象对应的关系数据表中生成所述数据对象的记录;其中,所述记录中的文件属性对应的数据包括所述第三路径,所述记录中的结构化属性对应的数据包括所述数据对象的结构化属性对应的数据。


7.根据权利要求3~6任一项所述的方法,其特征在于,所述第二存储系统中存储的非结构化属性对应的数据包括所述非结构化属性的标识和内容;所述关系数据表中存储的所述非结构化属性对应的数据包括所述非结构化属性的标识。


8.根据权利要求1~7任一项所述的方法,其特征在于,所述操作指令包括查询指令,所述查询指令中包括查询条件;
所述从所述第一存储系统中确定所述数据对象的所述记录,包括:
从所述第一存储系统中选取满足所述查询条件的数据对象的记录;
所述根据所述记录从所述第一存储系统和所述第二存储系统中的至少一个存储系统中获取所述数据对象的所述多个属性中的至少一个属性对应的数据,包括:
根据所述记录从所述第一存储系统和所述第二存储系统中获取所述数据对象的所述多个属性对应的数据;
所述基于所述至少一个属性对应的数据,对所述数据对象执行所述操作,包括:
根据获取的所述多个属性对应的数据返回查询结果。


9.根据权利要求8所述的方法,其特征在于,所述记录的非结构化属性包括KV属性,所述根据所述记录从所述第一存储系统和所述第二存储系统中获取所述数据对象的多个属性中对应的数据,包括:
根据键值从所述第二存储系统中读取所述键值对应的KV数据,并去除所述键值中的版本标识;所述键值为所述记录中的KV属性对应的数据,所述版本标识包括第一版本标识和第二版本标识;
其中,所述数据对象的KV属性对应的数据包括去除版本标识后的键值和所述KV数据;所述数据对象的结构化属性对应的数据包括所述记录中结构化属性对应的数据。


10.根据权利要求8所述的方法,其特征在于,所述记录的非结构化属性包括文件属性,所述根据所述记录从所述第一存储系统和所述第二存储系统中获取所述数据对象的多个属性中对应的数据,包括:
根据路径从所述第二存储系统中读取所述路径对应的文件数据,并去除所述路径中的版本标识;所述路径为所述记录中的文件属性对应的数据,所述版本标识包括第一版本标识和第二版本标识;
其中,所述数据对象的文件属性对应的数据包括,去除版本标识后的路径和所述文件数据;所述数据对象的结构化属性对应的数据包括,所述记录中结构化属性对应的数据。


11.根据权利要求1~7任一项所述的方法,其特征在于,所述操作指令包括删除指令,所述删除指令包括所述数据对象的对象类型,以及所述数据对象的结构化属性对应的数据和非结构化属性对应的数据;
其中,所述从所述第一存储系统中确定所述数据对象的所述记录,包括:
根据所述对象类型确定所述数据对象对应的关系数据表;
从所述关系数据表中确定所述数据对象的所述记录,所述记录中的结构化属性对应的数据与所述数据对象的结构化属性对应的数据相同;
所述根据所述记录从所述第一存储系统和所述第二存储系统中的至少一个存储系统中获取所述数据对象的多个属性中的至少一个属性对应的数据,包括:
所述根据所述记录从所述第一存储系统中获取所述数据对象的所述多个属性对应的数据;
所述基于所述至少一个属性对应的数据,对所述数据对象执行所述操作,包括:
从所述第一存储系统中删除所述数据对象的所述多个属性对应的数据;
提交所述删除指令对应的事务。


12.根据权利要求1~7任一项所述的方法,其特征在于,所述非结构化属性包括KV属性,所述第二存储系统为KV存储系统,所述方法还包括:
当接收到校验指令时或者当检测到满足校验条件时,遍历所述第二存储系统中的键值,所述键值为所述第二存储系统中的KV属性对应的数据;
在遍历所述键值的过程中,若在所述第一存储系统存储的关系数据表中无法查找到与第四键值相同的键值,则在所述第二存储系统中删除所述第四键值和所述第四键值对应的KV数据,所述第四键值为所述第二存储系统中多个键值中的一个。


13.根据权利要求1~7任一项所述的方法,其特征在于,所述非结构化属性包括文件属性,所述第二存储系统为文件存储系统,所述方法还包括:
当接收到校验指令时或者当检测到满足校验条件时,遍历所述第二存储系统中的路径,所述路径为所述第二存储系统中的文件属性对应的数据;
在遍历所述路径的过程中,若在所述第一存储系统存储的关系数据表中无法查找到与第四路径相同的路径,则在所述第二存储系统中删除所述第四路径和所述第四路径对应的文件数据,所述第四路径为所述第二存储系统中多个路径中的一个。


14.根据权利要求2~6任一项所述的方法,其特征在于,在根据所述对象类型确定所述数据对象对应的关系数据表之前,所述方法还包括:
接收针对所述数据对象所属对象类型的定义指令,所述定义指令中包含所述对象类型的定义信息,所述定义信息用于定义所述对象类型的关系数据表的结构;
根据所述定义指令在所述第一存储系统中,生成所述对象类型的关系数据表。


15.根据权利要求2~6任一项所述的方法,其特征在于,所述根据所述对象类型确定所述数据对象对应的关系数据表,包括:
根据所述插入指令或更新指令...

【专利技术属性】
技术研发人员:田文罡
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1