CN106599111B - 一种数据管理方法及存储系统 - Google Patents

一种数据管理方法及存储系统 Download PDF

Info

Publication number
CN106599111B
CN106599111B CN201611080056.8A CN201611080056A CN106599111B CN 106599111 B CN106599111 B CN 106599111B CN 201611080056 A CN201611080056 A CN 201611080056A CN 106599111 B CN106599111 B CN 106599111B
Authority
CN
China
Prior art keywords
data
container
unit
name
storage
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.)
Active
Application number
CN201611080056.8A
Other languages
English (en)
Other versions
CN106599111A (zh
Inventor
尚薇薇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Xin'an Digital Technology Co.,Ltd.
Original Assignee
Zhejiang Xin'an Digital Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Xin'an Digital Technology Co ltd filed Critical Zhejiang Xin'an Digital Technology Co ltd
Priority to CN201611080056.8A priority Critical patent/CN106599111B/zh
Publication of CN106599111A publication Critical patent/CN106599111A/zh
Application granted granted Critical
Publication of CN106599111B publication Critical patent/CN106599111B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application

Abstract

本发明公开了数据管理方法,包括存入方法:通过统一接口获取数据的存储指令并进行解析,获取容器名称及对象名称;将数据进行序列化;根据容器名称,查找该容器是否已存在;若存在,根据解析出的对象的名称,在该容器中查找是否存在解析的对象,若查找不到该对象,则根据解析的对象名称,在容器中建立一个对象;若容器不存在,根据解析的容器名称及对象名称,建立一个新容器并在该新容器中建立一个对象;将数据的描述信息存储在对象的元数据中;将数据内容以数据块的形式存储在对象的数据部分;存储成功后,返回数据块编号,并存储于相应的对象的元数据部分。本发明将不同类型的数据,包括视频、音频、图片或文档,通过统一入口进行存储及管理。

Description

一种数据管理方法及存储系统
技术领域
本发明涉及数据存储领域,尤其涉及一种数据管理方法及存储系统。
背景技术
大数据时代,移动互联、社交网络、数据分析、云服务等应用的迅速普及,对数据的存储提出革命性的需求,存储基础架构已经成为IT核心之一。尤其是在电信、金融等行业,几乎已经到了“数据就是业务本身”的地步。数据的价值日益凸显,数据已经成为不可或缺的资产。作为数据载体和驱动力量,存储系统成为大数据基础架构中最为关键的核心。
NoSQL数据库是大数据应用的首选,但是由于不同数据库存储的数据模型不同,而现有的存储方案都是根据本身的业务需求,设定特定的存储数据模型,而且用户使用之前要花费大量的时间和精力学习如何使用和操作数据库。
目前行业的方案是针对不同的数据类型,分别提供不同的存储数据模型,从而进行分类型的存储。该方案的缺点是用户需要自行根据数据类型调用多种API接口,而且用户一般要学习如何使用数据库,无法使用统一的API达到对不同数据类型的统一存储,进一步的统一管理。
发明内容
本发明提供一种数据管理方法及数据存储系统,解决了用户需要自行根据数据类型调用多种API接口,而且用户一般要学习如何使用数据库,无法使用统一的API达到对不同数据类型的统一管理的难题。
本发明一种数据管理方法,包括:
S10数据存入方法;包括步骤:
S110通过统一接口获取所述数据的存储指令,解析所述存储指令,获取所述存储指令中的容器的名称及对象的名称;
S120将所述数据进行序列化操作,变换成可存储的状态;
S130根据所述容器的名称,查找所述容器是否已存在;
S140当所述容器已存在时,根据所述存储指令中的对象的名称,在所述容器中查找是否存在所述存储指令中的对象;
S145当所述容器中不存在所述存储指令中的对象时,根据所述存储指令中的对象的名称,在所述容器中建立一个对象,所述对象包括元数据部分和数据部分,随后进入步骤S160;
S150当所述容器不存在时,根据所述存储指令中的容器的名称,建立一个新容器;
S155根据所述存储指令中的对象的名称,在所述新容器中建立一个对象,所述对象包括元数据部分和数据部分;
S160将所述数据的描述信息存储在所述对象的元数据中;将所述数据内容以数据块的形式存储在所述对象的数据部分;
S170存储成功后,返回所述数据存储的数据块编号,并存储于相应的对象的元数据部分。
目前行业的方案是针对不同的数据类型,分别提供不同的存储数据模型,从而进行分类型的存储。用户需要自行根据数据类型调用多种API接口,而且用户一般要学习如何使用数据库,无法使用统一的API达到对不同数据类型的统一存储。而本方案不区分数据文件的类型,通过同一接口统一存储,最大程度简化用户设计数据存储模型和熟悉并学习操作数据库的过程,而且达到使其他不同的语言都可以调用的目的。本方案中的数据管理均使用同一个接口,即统一的接口来获取管理指令,进行后续的管理。
进一步的,所述步骤S160包括步骤:
S161判断所述数据的大小是否大于预设的数据块大小,若是,则进入步骤S162;否则进入步骤S163;
S162将所述数据分割成若干数据块,并依次对所述数据块进行编号,将所述带编号的数据块存储于所述对象的数据部分;将所述数据的描述信息存储于所述对象的元数据部分;
S163将所述数据存入一个数据块,所述数据块编号后存储于对象的数据部分;将所述数据的描述信息存储于对象的元数据部分。
进一步的,包括方法S20数据删除方法,包括步骤:
S210通过统一接口获取所述数据的删除指令,解析所述删除指令,获取所述删除指令中的容器的名称及对象的名称;
S220根据所述删除指令,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
S230查看所述对象的元数据部分,进而找到对应的数据部分,并获取所述数据部分的数据块编号;
S240根据所述数据块编号,删除所述对象的数据部分的数据块及所述对象的元数据,保留所述对象删除后的空位。
同样的,通过统一接口统一删除数据,由于容器和对象的名称唯一性,查找简单,删除操作易简单可行。保留空位可尽可能的不影响同一容器中其他对象的数据块编号。
进一步的,所述S20还包括步骤:
S250判断所述容器中存在的空位是否超过预设的数值,若是,则去除所有空位,并将所有剩余的数据部分的数据块重新编号;
S260同步更改所述容器中所述对象的元数据部分存储的所述对象的编号信息。
对于容器中空位过多时,为增强容器的利用率,可适时统一进行调整,去除空位,重新编号。
进一步的,包括S30数据更新方法,包括步骤:
S310通过统一接口获取所述数据的更新指令;解析所述更新指令,获取所述更新指令中的容器的名称及对象的名称;
S320将所述数据进行序列化操作,变换成可存储的状态;
S330根据所述更新指令,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
S340执行步骤S230、S240,判断所述数据所需的数据块数量是否比查找到的对象对应的数据块数量多,若是,则进入步骤S350,否则,进入步骤S360;
S350重新建立一个新对象,将所述数据存储在所述对象的数据部分,将所述数据的描述信息存储在所述对象的元数据部分;
S360将所述数据存储在所述保留的空位上。
同样的,通过统一接口更新数据,方便管理。
进一步的,包括步骤:
S142当所述容器中存在所述存储指令中的对象时,推送是否继续存储的确认界面,所述确认界面包含查找到的已存储的所述对象、及待存储的数据的对比信息;
S143当用户确认继续存储所述数据且保留原对象时,在同一容器中创建新对象;
S144当用户确认继续存储且删除原对象时,进入步骤S340;
S145当用户确认取消存储所述数据时,结束操作。
若存储过程中,发现已存在同样的数据,则需与用户确认后续的操作,避免用户的误操作或者重复存储。
进一步的,包括:
S40数据读取方法,包括步骤:
S410通过统一接口获取所述数据的读取指令,解析所述读取指令,获取所述读取指令中的容器的名称及对象的名称;
S420根据所述读取指令,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
S430查看所述对象的元数据部分,获取所述数据部分的数据块编号,进而找到对应的数据部分;
S440根据所述数据块编号,将所述查询到的对应的数据部分进行排序,依次读取所述数据部分存储的对象内容。
通过统一接口读取数据,根据容器名和对象名,查找到对象,再根据存储的数据块编号排序读取。
进一步的,还包括S00权限管理方法,包括步骤:
S010设置所述容器的读写权限;
S020当执行所述数据存储方法或所述数据读取方法时,判断用户是否具备对待存储或读取的容器的读写权限;
S030根据所述权限执行或驳回所述用户的请求。
设置权限,保护用户数据的隐私性及数据的安全性。
进一步的,所述对象的名称是根据指用户指定的名称或系统生成的所述对象的名称,所述对象的名称在所在的容器中唯一存在;
所述容器的名称是根据用户指定的名称或系统生成的所述容器的名称,所述容器的名称在所在的存储系统中唯一存在;
所述数据的描述信息包括:对象的名称、创建时间、大小、文件类型、及所述对象的数据部分对应的数据块编号。
容器名和对象名的唯一性,相当于一个数据的身份标识,用户可通过这个身份标识,方便快捷的查找到对应的数据。另外,由于存储数据繁多,而对象的元数据部分,就相当于目录大纲,在该大纲中查找,能迅速查找到对应的数据块存储的数据内容。
进一步的,所述统一接口为rest接口。Rest接口是一种基于HTTP协议的软件架构接口,其全称是Representational State Transfer,即表象状态转移接口。基于rest接口的设计,具有高度的可扩展性,且支持多种程序语言的客户端。
本发明还提供了一种数据存储系统,包括接口模块、与所述接口模块相连的服务管理模块、及与所述服务管理装置相连的存储模块,所述服务管理模块包括解析单元、及与所述解析单元分别相连的序列化单元、查找单元、创建单元,所述创建单元还与所述查找单元相连;所述存储模块中含有容器,用于存储对象,其中:
所述数据存储系统将数据存入包括:
通过所述接口模块获取所述数据的存储指令后,所述服务管理模块的解析单元解析所述存储指令,获取所述存储指令中的容器名称及对象的名称;
所述序列化单元将所述数据进行序列化操作,变换成可存储的状态;
所述查找单元根据所述解析单元解析获取的所述容器的名称,在所述存储模块的中查找所述容器是否已存在;
当所述查找单元查找到所述容器时,所述查找单元进一步在所述容器中查找是否存在所述解析单元解析所述存储指令获取的对象;当所述查找单元在所述容器中查找不到所述解析单元解析所述存储指令获取的对象时,所述创建单元根据所述解析单元解析获取的对象的名称,在所述容器中建立一个对象,所述对象包括元数据部分和数据部分;
当所述查找单元查找不到所述容器时,所述创建单元根据所述解析单元解析所述存储指令获取的容器的名称,在所述存储模块中建立一个新容器;所述创建单元根据所述解析单元解析所述存储指令中获取的对象的名称,在所述新容器中建立一个对象,所述对象包括元数据部分和数据部分;
所述存储模块将所述数据的描述信息存储在所述对象的元数据中;将所述数据内容以数据块的形式存储在所述对象的数据部分;
所述存储模块存储成功后,返回所述数据存储的数据块编号,并存储于相应的对象的元数据部分。
本方案的存储系统,不区分数据文件的类型,通过同一接口统一存储,最大程度简化用户设计数据存储模型和熟悉并学习操作数据库的过程,而且达到使其他不同的语言都可以调用的目的。本方案中的数据存储系统使用同一个接口,即统一的接口来获取管理指令,进行后续的管理。
进一步的,所述存储模块包括判断单元、及与所述判断单元相连的操作单元,其中:
所述存储模块将所述数据的描述信息存储在所述对象的元数据中;将所述数据内容以数据块的形式存储在所述对象的数据部分包括:
所述存储模块的判断单元判断所述数据的大小是否大于预设的数据块大小,若是,则通过所述操作单元将所述数据分割成若干数据块,且所述操作单元依次对所述数据块进行编号,将所述带编号的数据块存储于所述对象的数据部分;将所述数据的描述信息存储于所述对象的元数据部分;否则所述操作单元将所述数据存入一个数据块,将所述数据块编号后存储于对象的数据部分;将所述数据的描述信息存储于对象的元数据部分。
进一步的,所述服务管理模块还包括与所述查找单元相连的删除单元,其中:
所述数据存储系统将数据删除包括:
通过所述接口模块获取所述数据的删除指令后,所述服务管理模块的解析单元解析所述删除指令,获取所述删除指令中的容器的名称及对象的名称;
所述查找单元根据所述解析单元解析所述删除指令获取的所述容器的名称和对象的名称,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
所述查找单元查看所述对象的元数据部分,进而找到对应的数据部分,并获取所述数据部分的数据块编号;
所述删除单元根据所述数据块编号,删除所述对象的数据部分的数据块及所述对象的元数据,保留所述对象删除后的空位。
进一步的,所述存储模块的判断单元判断所述容器中存在的空位是否超过预设的数值,若是,则通过所述操作单元去除所有空位,且所述操作单元将所有剩余的数据部分的数据块重新编号;
所述操作单元同步更改所述容器中所述对象的元数据部分存储的所述对象的编号信息。
进一步的,所述存储系统将数据进行更新包括:
通过所述接口模块获取所述数据的更新指令;所述服务管理模块的解析单元解析所述更新指令,获取所述更新指令中的容器的名称及对象的名称;
所述序列化单元将所述数据进行序列化操作,变换成可存储的状态;
所述查找单元根据所述解析单元解析所述更新指令获取的所述容器的名称和对象的名称,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
所述查找单元查看所述对象的元数据部分,进而找到对应的数据部分,并获取所述数据部分的数据块编号;所述删除单元根据所述数据块编号,删除所述对象的数据部分的数据块及所述对象的元数据,保留所述对象删除后的空位。
所述存储模块的判断单元判断所述数据所需的数据块数量是否比查找到的对象对应的数据块数量多,若是,则所述服务管理模块的创建单元重新建立一个新对象,所述存储模块的操作单元将所述数据存储在所述对象的数据部分,将所述数据的描述信息存储在所述对象的元数据部分,否则,所述存储模块的操作单元将所述数据存储在所述保留的空位上。
进一步的,所述服务管理模块还包括与所述查找单元相连的推送反馈单元,所述推送反馈单元还与所述删除单元、创建单元相连,其中:
当所述查找单元根据所述解析单元解析获取的容器名称和对象名称,在所述存储模块中查找到相应的容器及对象时,所述推送反馈单元推送是否继续存储的确认界面,所述确认界面包含查找到的已存储的所述对象、及待存储的数据的对比信息;
当所述推送反馈单元接收到用户确认继续存储所述数据且保留原对象时,所述创建单元在同一容器中创建新对象;
当所述推送反馈单元接收到用户确认继续存储且删除原对象时,则所述删除单元删除所述查找单元查找到的对象,所述存储模块的判断单元判断所述数据所需的数据块数量是否比所述服务管理模块的查找单元查找到的对象对应的数据块数量多,若是,则所述服务管理模块的创建单元重新建立一个新对象,所述存储模块的操作单元将所述数据存储在所述对象的数据部分,将所述数据的描述信息存储在所述对象的元数据部分,否则,所述存储模块的操作单元将所述数据存储在所述保留的空位上;
当所述推送反馈单元接收到用户确认取消存储所述数据时,结束操作。
当存储的数据在存储系统中已存在相同的名称时,这时,需用户确认后续如何操作,如果是用户已存储过了只是已忘记,则此时则可结束操作,取消存储。如果是有存储过相同名称,比如数据更新,则可根据用户确认信息去覆盖原数据、或者保留原数据重命名存储新数据。
进一步的,还包括与所述查找单元相连的读取单元,其中:
所述数据存储系统读取数据包括:
通过所述接口模块获取所述数据的读取指令,所述服务管理模块的解析单元解析所述读取指令,获取所述读取指令中的容器的名称及对象的名称;
所述查找单元根据所述解析单元解析所述读取指令获得的容器名称及对象的名称,在所述存储模块中查找到相应的容器;并进一步在所述容器中查找到相应的对象;
所述读取单元查看所述对象的元数据部分,获取所述数据部分的数据块编号,进而找到对应的数据部分;
所述读取单元根据所述数据块编号,将所述查询到的对应的数据部分进行排序,依次读取所述数据部分存储的对象内容。
进一步的,还包括权限管理模块,所述权限管理模块分别与所述服务管理模块和存储模块相连;其中:
所述存储系统进行权限管理包括:
所述权限管理模块设置所述容器的读写权限;
当执行所述数据存储方法或所述数据读取方法时,所述权限管理模块判断用户是否具备对待存储或读取的容器的读写权限;
所述权限管理模块根据所述权限执行或驳回所述用户的请求。
设定权限管理,只有有读写权限的用户方可进行相应的读写操作,保护了用户的隐私,也从另一个方面,保护了数据的安全性,避免了其它用户的随意或无意对数据的改动。
进一步的,所述对象的名称是根据指用户指定的名称或系统生成的所述对象的名称,所述对象的名称在所在的容器中唯一存在;
所述容器的名称是根据用户指定的名称或系统生成的所述容器的名称,所述容器的名称在所在的存储系统中唯一存在;
所述数据的描述信息包括:对象的名称、创建时间、大小、文件类型、及所述对象的数据部分对应的数据块编号。
容器名称的唯一性及在同一个容器下的对象的唯一性存在,使得每一个对象都有了标识符,对于后续的查找即为便利。
进一步的,所述接口模块可为rest接口。将不同的数据类型通过统一的接口,提供高度的可扩展性,在无需修改现有系统的情况下,添加对新的数据类型的支持。而且,基于rest接口的设计,支持多种程序语言的客户端。
本发明的有益效果如下:
本发明提供一种基于统一接口的对象存储设计方案,该方法/系统使用面向对象的思想,将不同的数据类型抽象成一个对象,而向用户提供统一接口进行存储、删除、更新、读取等,最大程度简化用户设计数据存储模型和熟悉并学习操作数据库的过程,而且达到使其他不同的语言都可以调用的目的。另外,该系统具有优良的可扩展性,在无需修改现有系统的情况下,添加对新的数据类型的支持,最大程度上满足用户在数据管理方面的需求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为数据管理方法的一个实施例的数据读取方法流程图;
图2为数据管理方法的另一个实施例的数据读取方法流程图;
图3为数据管理方法的另一个实施例的数据删除方法流程图;
图4为数据管理方法的另一个实施例的数据更新方法流程图;
图5为数据管理方法的另一个实施例的数据读取方法流程图;
图6为数据管理方法的另一个实施例的权限管理方法流程图;
图7为数据存储系统实施例框图;
图8为数据存储系统另一实施例的存储对象结构示意图;
图9为数据存储系统的存储形式示意图;
图10为数据存储系统整体架构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明一种数据管理方法的实施例一,如图1所示,包括:
S10数据存入方法;包括步骤:
S110通过统一接口获取所述数据的存储指令,解析所述存储指令,获取所述存储指令中的容器的名称及对象的名称;
S120将所述数据进行序列化操作,变换成可存储的状态;
S130根据所述容器的名称,查找所述容器是否已存在;
S140当所述容器已存在时,根据所述存储指令中的对象的名称,在所述容器中查找是否存在所述存储指令中的对象;
S145当所述容器中不存在所述存储指令中的对象时,根据所述存储指令中的对象的名称,在所述容器中建立一个对象,所述对象包括元数据部分和数据部分,随后进入步骤S160;
S150当所述容器不存在时,根据所述存储指令中的容器的名称,建立一个新容器;
S155根据所述存储指令中的对象的名称,在所述新容器中建立一个对象,所述对象包括元数据部分和数据部分;
S160将所述数据的描述信息存储在所述对象的元数据中;将所述数据内容以数据块的形式存储在所述对象的数据部分;
S170存储成功后,返回所述数据存储的数据块编号,并存储于相应的对象的元数据部分。
本实施例介绍了数据的存入方法,用户存储数据,只需要通过统一的接口来存储,通过这个接口获取到存储指令后,会先对这个存储指令进行解析,获得存储的位置,即指令中想要存储的容器和对象名称;待存储的数据也会先进行一个序列化操作,将该数据转换成可存储的状态。在获取到容器名和指令名后,先要在这个存储系统中查询这个容器是否已存在,如果存在的话就进一步查看该容器中是否存在解析出的对象,如果不存在的话,则就需要创建一个对象,将待存储的数据作为一个对象,存储在该容器中,且该对象的名称即为解析出的对象名称。该对象包括两部分,一部分是元数据部分,用来存储数据的描述信息,另一部分是数据部分,用来存储自身数据,即数据内容。数据部分存储的数据内容,是以数据块的形式存储的,且每一个数据块均有相应的编号,存储完成后,会将数据块的编号返回,存储在相应的元数据部分。数据编号的返回和存储,可以只返回该对象的数据部分存储的首个数据块的编号、或者末尾数据块的编号、或者首尾数据块编号、或者该对象所有的数据块编号。每一个对象的数据块是连续的,且该对象的元数据部分也存储了数据的描述信息,包括数据大小、创建时间等等,因此,即使只返回存储了该对象的首个数据块编号或者末尾数据块编号,也可以根据该对象的数据大小,推算出该对象所包含的所有数据块及其编号。
如果在数据存储系统中查找不到存储指令中解析出来的容器名称,那么也就是说该存储系统中暂时不存在该容器,那么我们就需要新创建一个容器,用来存储待存储的数据对象。该容器的命名即根据解析出来的存储指令中的容器名称,创建好容器后再在该容器中新增对象,待存储的数据作为一个对象存储在该容器中。
一个数据存储系统,可以有多个容器,容器中也可以存储多个对象。本实施例在数据存储过程中,不区分数据的类型,使用面向对象的思想,将不同的数据类型抽象成一个对象,而向用户提供统一接口进行存储,最大程度简化用户设计数据存储模型和熟悉并学习操作数据库的过程,而且达到使其他不同的语言都可以调用的目的。
本发明的一种数据管理方法另一实施例,如图2所示,包括步骤:
S10数据存入方法;包括步骤:
S110通过统一接口获取所述数据的存储指令,解析所述存储指令,获取所述存储指令中的容器的名称及对象的名称;
S120将所述数据进行序列化操作,变换成可存储的状态;
S130根据所述容器的名称,查找所述容器是否已存在;
S140当所述容器已存在时,根据所述存储指令中的对象的名称,在所述容器中查找是否存在所述存储指令中的对象;
S145当所述容器中不存在所述存储指令中的对象时,根据所述存储指令中的对象的名称,在所述容器中建立一个对象,所述对象包括元数据部分和数据部分,随后进入步骤S160;
S150当所述容器不存在时,根据所述存储指令中的容器的名称,建立一个新容器;
S155根据所述存储指令中的对象的名称,在所述新容器中建立一个对象,所述对象包括元数据部分和数据部分;
S161判断所述数据的大小是否大于预设的数据块大小,若是,则进入步骤S162;否则进入步骤S163;
S162将所述数据分割成若干数据块,并依次对所述数据块进行编号,将所述带编号的数据块存储于所述对象的数据部分;将所述数据的描述信息存储于所述对象的元数据部分;
S163将所述数据存入一个数据块,所述数据块编号后存储于对象的数据部分;将所述数据的描述信息存储于对象的元数据部分。
S170存储成功后,返回所述数据存储的数据块编号,并存储于相应的对象的元数据部分。
本实施例在上述实施例的基础上,细叙了对象的数据部分存储过程。如果一个文件大小比预设的数据块要大,那么就需要把这个文件分割成多个数据块存储,在这个容器中,每个数据块系统都会分配编号,存储成功后,编号会返回到相应的对象的元数据部分存储。
本发明的一种数据管理方法另一实施例,在实施例1的基础上,还增加了数据删除方法,如图3所示,S20数据删除方法,包括步骤:
S210通过统一接口获取所述数据的删除指令,解析所述删除指令,获取所述删除指令中的容器的名称及对象的名称;
S220根据所述删除指令,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
S230查看所述对象的元数据部分,进而找到对应的数据部分,并获取所述数据部分的数据块编号;
S240根据所述数据块编号,删除所述对象的数据部分的数据块及所述对象的元数据,保留所述对象删除后的空位。
当获取到删除指令后,同样的,解析该删除指令,获取指令中需要删除的数据所处的位置,即需要删除的数据是哪个容器中的哪个存储对象。解析完后即开始查找,先根据容器名称找到那个容器,然后再这个容器中查找到目标对象。在查找对象时,由于数据的描述信息存储在对象的元数据部分,所以,先在元数据部分查找查找到合适的记录,获取到目标对象对象的数据部分的数据块编号,然后执行删除指令,将目标对象的元数据部分及对应的数据块均删除掉,删除后,为了不影响其它对象,保留这个对象的元数据和数据块占用的空位。本实施例,同样的,通过统一的接口来管理数据,执行删除操作。
较佳的,所述S20还包括步骤:
S250判断所述容器中存在的空位是否超过预设的数值,若是,则去除所有空位,并将所有剩余的数据部分的数据块重新编号;
S260同步更改所述容器中所述对象的元数据部分存储的所述对象的编号信息。
如果容器中删除的对象较多时,那么空位也会越来越多,因此,当空位的数量达到了预设的值的时候,会采取统一调整的方法,将所有的空位挤掉,数据块的编号也会发生调整,数据块重新编号后,当然该对应的元数据部分也需要更改数据块的编号。当然,较好的,这里的空位指数据块的空位。
本发明方法的另一实施例,在上述实施例的基础上,增加了数据更新方法,如图4所示,S30数据更新方法,包括步骤:
S310通过统一接口获取所述数据的更新指令;解析所述更新指令,获取所述更新指令中的容器的名称及对象的名称;
S320将所述数据进行序列化操作,变换成可存储的状态;
S330根据所述更新指令,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
S340执行步骤S230、S240,判断所述数据所需的数据块数量是否比查找到的对象对应的数据块数量多,若是,则进入步骤S350,否则,进入步骤S360;
S350重新建立一个新对象,将所述数据存储在所述对象的数据部分,将所述数据的描述信息存储在所述对象的元数据部分;
S360将所述数据存储在所述保留的空位上。
本实施例中的数据更新,相当于把原数据删除,新数据存储的一个过程,因此在通过统一接口获取到更新指令后,同样先解析指令获取需要更新的对象名,及该对象所处在哪个容器。然后根据解析出的容器名查找到相应的容器,再在该容器中查找到相应的需要更新的对象。删除该对象的元数据部分和数据部分,该对象删除后,保留删除后的空位,主要指该对象的数据部分的数据块内存储数据内容删除后,保留空的数据块。然后看新数据的大小,需要存几个数据块,如果需要的数据块数量小于或等于已删除对象的数据块数量,那么就可以将这个新数据存储在已删除对象的空位上,如果需要的数据块数量比原来的已删除对象要多的话,那么就在该容器重新创建一个对象,用来存储新数据。
同样的,在本发明方法删除数据的实施例的基础上,还包括步骤:
S142当所述容器中存在所述存储指令中的对象时,推送是否继续存储的确认界面,所述确认界面包含查找到的已存储的所述对象、及待存储的数据的对比信息;
S143当用户确认继续存储所述数据且保留原对象时,在同一容器中创建新对象;
S144当用户确认继续存储且删除原对象时,进入步骤S340;
S145当用户确认取消存储所述数据时,结束操作。
实施例一种讲到根据解析出的存储指令查找容器和对象,当我们未查找到指令中的容器或对象时,后面进行的则是一个数据的存储过程,而如果我们找到了指令中的容器和对象,那么则有可能是需要数据更新,或者只是一个误操作等,这时候,则需要给用户对比信息,由用户来选择后续如何做,再根据用户的选择执行相应的操作。步骤S143中,创建了新对象,新对象的名称可以是系统根据原对象的名称来生成,比如在原对象名称上增加序号或版本号,或者在原对象名称上增加副本X等;当然也可以由用户再另行命名。
本发明方法的另一个实施例,在上述任一实施例的基础上,增加数据的读取方法,如图5所示,包括:
S40数据读取方法,包括步骤:
S410通过统一接口获取所述数据的读取指令,解析所述读取指令,获取所述读取指令中的容器的名称及对象的名称;
S420根据所述读取指令,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
S430查看所述对象的元数据部分,获取所述数据部分的数据块编号,进而找到对应的数据部分;
S440根据所述数据块编号,将所述查询到的对应的数据部分进行排序,依次读取所述数据部分存储的对象内容。
本实施例通过统一接口获取读取指令后,解析该指令,获取需要读取的对象名称,及该对象所处的容器名称。然后在存储系统中查询到该容器,进而在容器中查询到对象。我们在对象的元数据部分查找到该对象对应的数据部分的数据块编号,然后找到相应的数据块,将数据块按编号次序读取数据块上存储的内容。当然如果查询条件没有给出对象的名称,而给出了对象的数据部分的数据块的编号,也同样可以查找到该对象,读取该对象的内容。
本发明方法的另一个实施例,在上述任一实施例的基础上,增加了权限管理方法,如图6所示,S00权限管理方法,包括步骤:
S010设置所述容器的读写权限;
S020当执行所述数据存储方法或所述数据读取方法时,判断用户是否具备对待存储或读取的容器的读写权限;
S030根据所述权限执行或驳回所述用户的请求。
设置了容器的读写权限,那么在数据的存储或读取之前,会先判断下该用户是否具备读写的权限。具体的,执行读取操作前,先判断该用户对该容器是否有读取的权限,如果有的话则继续执行后面操作,否则驳回用户的读取请求。执行写操作前,先判断该用户是否对该容器有写的权限,如果有的话则执行后续的存储操作,没有的话则驳回用户的存储请求。
同样的,也可以设置容器的读写属性;对象的读写权限和读写属性等。
通过权限管理,一方面可以保护用户的隐私,另一方面,可以增加数据的安全性能,避免数据被其他人随意或无意改动。
上述所有实施例中,所述对象的名称是根据指用户指定的名称或系统生成的所述对象的名称,所述对象的名称在所在的容器中唯一存在;
所述容器的名称是根据用户指定的名称或系统生成的所述容器的名称,所述容器的名称在所在的存储系统中唯一存在;
所述数据的描述信息包括:对象的名称、创建时间、大小、文件类型、及所述对象的数据部分对应的数据块编号。
上述所有实施例中,所述统一接口可以是rest接口。Rest接口是一种基于HTTP协议的软件架构接口,其全称是Representational State Transfer,即表象状态转移接口。在具体实施时,例如,通过HTTP协议利用所述REST接口获取对存储对象的读取指令,如果把存储系统的服务器中存储的所有的数据都看作是资源(Resource),那么呈现在用户面前(即客户端)的就是资源的表象(Representation),每一个资源都有自己唯一的标注,即统一资源标识符(URL,Uniform Resource Identifier),相当于以HTML的形式通过http协议获取(容器名)容器里面的(对象名称)对象;表象状态转移所述的状态(State),指的是客户端的状态,而不是服务器端的状态,在Rest中,服务器端应该是无状态的。表象状态(Representational State)即:每一个资源(Resource)在客户端的表象(Representation)就是客户端的一个状态(State)。表象状态转移所述的转移(Transfer),指的是当用户通过不同的URL访问不同的资源时,客户端的表象(Representation)也会随着变化,也就意味着客户端的状态转移
(Transfer)了。本发明的接口在软件的架构下实现对象的存储系统,添加新功能或者新接口会变得非常容易,只需要将新接口的代码逻辑添加到制定的接口函数中,并不需要修改原有的代码逻辑即可,也不需要对硬件设备作出任何改动,具有很好的灵活性和低成本可扩展性。
基于同样的思想,本发明还提供了一种数据存储系统,该系统可采用上述数据管理方法,如图7所示,本发明数据存储系统的实施例一包括接口模块10、与所述接口模块10相连的服务管理模块20、及与所述服务管理装置相连的存储模块30,所述服务管理模块20包括解析单元21、及与所述解析单元21分别相连的序列化单元22、查找单元23、创建单元24,所述创建单元24还与所述查找单元23相连;所述存储模块30中含有容器,用于存储对象,其中:
所述数据存储系统将数据存入包括:
通过所述接口模块10获取所述数据的存储指令后,所述服务管理模块20的解析单元21解析所述存储指令,获取所述存储指令中的容器名称及对象的名称;
所述序列化单元22将所述数据进行序列化操作,变换成可存储的状态;
所述查找单元23根据所述解析单元21解析获取的所述容器的名称,在所述存储模块30的中查找所述容器是否已存在;
当所述查找单元23查找到所述容器时,所述查找单元23进一步在所述容器中查找是否存在所述解析单元21解析所述存储指令获取的对象;当所述查找单元23在所述容器中查找不到所述解析单元21解析所述存储指令获取的对象时,所述创建单元24根据所述解析单元21解析获取的对象的名称,在所述容器中建立一个对象,所述对象包括元数据部分和数据部分;
当所述查找单元23查找不到所述容器时,所述创建单元24根据所述解析单元21解析所述存储指令获取的容器的名称,在所述存储模块30中建立一个新容器;所述创建单元24根据所述解析单元21解析所述存储指令中获取的对象的名称,在所述新容器中建立一个对象,所述对象包括元数据部分和数据部分;
所述存储模块30将所述数据的描述信息存储在所述对象的元数据中;将所述数据内容以数据块的形式存储在所述对象的数据部分;
所述存储模块30存储成功后,返回所述数据存储的数据块编号,并存储于相应的对象的元数据部分。
较佳的,所述存储模块30包括判断单元31、及与所述判断单元31相连的操作单元32,其中:
所述存储模块30将所述数据的描述信息存储在所述对象的元数据中;将所述数据内容以数据块的形式存储在所述对象的数据部分包括:
所述存储模块30的判断单元31判断所述数据的大小是否大于预设的数据块大小,若是,则通过所述操作单元32将所述数据分割成若干数据块,并依次对所述数据块进行编号,将所述带编号的数据块存储于所述对象的数据部分;将所述数据的描述信息存储于所述对象的元数据部分;否则所述操作单元32将所述数据存入一个数据块,将所述数据块编号后存储于对象的数据部分;将所述数据的描述信息存储于对象的元数据部分。
该数据存储系统在数据的存储过程中,不区分数据的类型,不管是图片、视频、音频还是文档,通过统一的入口进行存储及处理。该系统使用面向对象的思想,将不同的数据类型抽象成一个对象,而向用户提供统一接口进行存储,最大程度简化用户设计数据存储模型和熟悉并学习操作数据库的过程,而且达到使其他不同的语言都可以调用的目的。此外,将不同的数据类型通过统一的接口,提供高度的可扩展性,在无需修改现有系统的情况下,添加对新的数据类型的支持,最大程度上满足用户在数据存储方面的需求。
本发明数据存储系统的另一实施例,在上述实施例的基础上,所述服务管理模块20还包括与所述查找单元23相连的删除单元25,其中:
所述数据存储系统将数据删除包括:
通过所述接口模块10获取所述数据的删除指令后,所述服务管理模块20的解析单元21解析所述删除指令,获取所述删除指令中的容器的名称及对象的名称;
所述查找单元23根据所述解析单元21解析所述删除指令获取的所述容器的名称和对象的名称,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
所述查找单元23查看所述对象的元数据部分,进而找到对应的数据部分,并获取所述数据部分的数据块编号;
所述删除单元25根据所述数据块编号,删除所述对象的数据部分的数据块及所述对象的元数据,保留所述对象删除后的空位。
较佳的,所述存储模块30的判断单元31判断所述容器中存在的空位是否超过预设的数值,若是,则通过所述操作单元32去除所有空位,并将所有剩余的数据部分的数据块重新编号;
所述操作单元32同步更改所述容器中所述对象的元数据部分存储的所述对象的编号信息。
同样的,本发明数据存储系统的另一实施例,在上述实施例基础上,所述存储系统将数据进行更新包括:
通过所述接口模块10获取所述数据的更新指令;所述服务管理模块20的解析单元21解析所述更新指令,获取所述更新指令中的容器的名称及对象的名称;
所述序列化单元22将所述数据进行序列化操作,变换成可存储的状态;
所述查找单元23根据所述解析单元21解析所述更新指令获取的所述容器的名称和对象的名称,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
所述查找单元23查看所述对象的元数据部分,进而找到对应的数据部分,并获取所述数据部分的数据块编号;所述删除单元25根据所述数据块编号,删除所述对象的数据部分的数据块及所述对象的元数据,保留所述对象删除后的空位。
所述存储模块30的判断单元31判断所述数据所需的数据块数量是否比查找到的对象对应的数据块数量多,若是,则所述服务管理模块20的创建单元24重新建立一个新对象,所述存储模块30的操作单元32将所述数据存储在所述对象的数据部分,将所述数据的描述信息存储在所述对象的元数据部分,否则,所述存储模块30的操作单元32将所述数据存储在所述保留的空位上。
本发明数据存储系统的另一实施例,在上述实施例基础上,所述服务管理模块20还包括与所述查找单元23相连的推送反馈单元27,所述推送反馈单元27还与所述删除单元25、创建单元24相连,其中:
当所述查找单元23根据所述解析单元21解析获取的容器名称和对象名称,在所述存储模块30中查找到相应的容器及对象时,所述推送反馈单元27推送是否继续存储的确认界面,所述确认界面包含查找到的已存储的所述对象、及待存储的数据的对比信息;
当所述推送反馈单元27接收到用户确认继续存储所述数据且保留原对象时,所述创建单元24在同一容器中创建新对象;
当所述推送反馈单元27接收到用户确认继续存储且删除原对象时,则所述删除单元25删除所述查找单元23查找到的对象,所述存储模块30的判断单元31判断所述数据所需的数据块数量是否比所述服务管理模块20的查找单元23查找到的对象对应的数据块数量多,若是,则所述服务管理模块20的创建单元24重新建立一个新对象,所述存储模块30的操作单元32将所述数据存储在所述对象的数据部分,将所述数据的描述信息存储在所述对象的元数据部分,否则,所述存储模块30的操作单元32将所述数据存储在所述保留的空位上;
当所述推送反馈单元27接收到用户确认取消存储所述数据时,结束操作。
本发明数据存储系统的另一实施例,在上述任一实施例的基础上,还包括与所述查找单元23相连的读取单元26,其中:
所述数据存储系统读取数据包括:
通过所述接口模块10获取所述数据的读取指令,所述服务管理模块20的解析单元21解析所述读取指令,获取所述读取指令中的容器的名称及对象的名称;
所述查找单元23根据所述解析单元21解析所述读取指令获得的容器名称及对象的名称,在所述存储模块30中查找到相应的容器;并进一步在所述容器中查找到相应的对象;
所述读取单元26查看所述对象的元数据部分,获取所述数据部分的数据块编号,进而找到对应的数据部分;
所述读取单元26根据所述数据块编号,将所述查询到的对应的数据部分进行排序,依次读取所述数据部分存储的对象内容。
本发明存储系统的另一个实施例,在上述任一实施例的基础上,还包括权限管理模块40,所述权限管理模块40分别与所述服务管理模块20和存储模块30相连;其中:
所述存储系统进行权限管理包括:
所述权限管理模块40设置所述容器的读写权限;
当执行所述数据存储方法或所述数据读取方法时,所述权限管理模块40判断用户是否具备对待存储或读取的容器的读写权限;
所述权限管理模块40根据所述权限执行或驳回所述用户的请求。
设置权限管理,包含用户的隐私和数据的安全性。
较佳的,上述任一实施例中,所述对象的名称是根据指用户指定的名称或系统生成的所述对象的名称,所述对象的名称在所在的容器中唯一存在;
所述容器的名称是根据用户指定的名称或系统生成的所述容器的名称,所述容器的名称在所在的存储系统中唯一存在;
所述数据的描述信息包括:对象的名称、创建时间、大小、文件类型、及所述对象的数据部分对应的数据块编号。
较佳的,本发明数据存储系统中所述接口模块为rest接口。
通过基于对象的存储系统的设计,将不同的数据类型通过统一的接口,并且提供高度的可扩展性,在无需修改现有系统的情况下,添加对新的数据类型的支持。而且,基于rest接口的设计,支持多种程序语言的客户端。
本发明最后一个实施例,本发明的存储系统,采用本发明的数据管理方法。具体的,参照图8,示出了数据库中存储对象的结构;相应的,图9是存储形式示意图,图10是系统整体架构图。该存储系统基于Collection(即容器),将每一个存储的文件数据当做是一个Object(即对象),每个Object由metadata(即元数据部分)和data(数据部分)组成。被存储的Object放入相应的Collection。
用户首先创建一个Collection,该CollectionName(容器名称)全局唯一,用户可以向这个Collection中POST Object,该系统中存储的Object是被序列化的,所以不区分文件的类型。存入Collection的每一个Object都有一个唯一的标识key(相当于对象名称)。这个key可以由用户设定,也可以系统生成,用户可以根据Object的key(id)获取、更新或者删除这个Object。
具体的,详细内容如下:
1)Collection:
用户创建的Collection的CollectionName必须是全局唯一的,该名字可以由用户提供,也可以由系统提供。
Object:
在一个Collection可以存放多个Object,在系统中存储的Object是被序列化的,系统并不能区分Object的类型,它可能是一个文本文件或者一个视频文件。MeataData里面存储的是Object创建时间、大小、文件类型等。系统中Object的Identifier由key来标识。
Key在Object被创建的时候由用户给定,若用户未指定由系统分配,要保证key在Collection内部是唯一的,不同的Collection可以由相同的key,如:有一个Collection的标识为fx,存储了一个Object的key为soho/user/email.txt(注:key可以是string类型或其他类型),那么用户就可以通过下面的地址来访问Object:http://host:port/fx/soho/user/email.txt.
此系统使用nosql数据库,该数据库使用ob.metadatas和ob.blocks进行文件存储。其中,ob.metadatas记录Object的信息Object metadata,ob.blocks记录Object的内容data。文件存入到数据库的过程中,如果文件大于blocksize,则把文件分割成多个block,再把这些block保存到ob.blocks中,最后再把文件信息存入到ob.metadatas中。
在读取文件的时候,先据查询的条件,在ob.metadatas中找到一个合适的记录,得到“id”(相当于数据块的编码)的值,再据这个值到ob.blocks中查找所有“metadata_id”为“id”的block,并按“n”排序,最后依次读取block中“data”对象的内容,还原成原来的文件。
该系统按照restful标准,支持的方法有POST,PUT,GET,DELETE,HEAD。例如:而对于用户来说,当调用rest接口POST一个Object文件时,用户可以指定该Object的name,而这个name必须是唯一的,这个name可以按照”a/b/test.txt”的形式进行命名,当存储成功,将返回object的id。用户可以根据之前命名的这个Object的name,也可以根据系统返回的id,Get到这个Object。
本实施例通过基于对象的存储系统的设计,将不同的数据类型通过统一的接口,并且提供高度的可扩展性,在无需修改现有系统的情况下,添加对新的数据类型的支持。而且,基于rest接口的设计,支持多种程序语言的客户端。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (16)

1.一种数据管理方法,其特征在于,包括:
S10数据存入方法;包括步骤:
S110通过统一接口获取所述数据的存储指令,解析所述存储指令,获取所述存储指令中的容器的名称及对象的名称;
S120将所述数据进行序列化操作,变换成可存储的状态;
S130根据所述容器的名称,查找所述容器是否已存在;
S140当所述容器已存在时,根据所述存储指令中的对象的名称,在所述容器中查找是否存在所述存储指令中的对象;
S145当所述容器中不存在所述存储指令中的对象时,根据所述存储指令中的对象的名称,在所述容器中建立一个对象,所述对象包括元数据部分和数据部分,随后进入步骤S160;
S150当所述容器不存在时,根据所述存储指令中的容器的名称,建立一个新容器;
S155根据所述存储指令中的对象的名称,在所述新容器中建立一个对象,所述对象包括元数据部分和数据部分;
S160将所述数据的描述信息存储在所述对象的元数据中;将所述数据内容以数据块的形式存储在所述对象的数据部分;
S170存储成功后,返回所述数据存储的数据块编号,并存储于相应的对象的元数据部分;
S20数据删除方法,包括步骤:
S210通过统一接口获取所述数据的删除指令,解析所述删除指令,获取所述删除指令中的容器的名称及对象的名称;
S220根据所述删除指令,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
S230查看所述对象的元数据部分,进而找到对应的数据部分,并获取所述数据部分的数据块编号;
S240根据所述数据块编号,删除所述对象的数据部分的数据块及所述对象的元数据,保留所述对象删除后的空位;
S30数据更新方法,包括步骤:
S310通过统一接口获取所述数据的更新指令;解析所述更新指令,获取所述更新指令中的容器的名称及对象的名称;
S320将所述数据进行序列化操作,变换成可存储的状态;
S330根据所述更新指令,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
S340执行步骤S230、S240,判断所述数据所需的数据块数量是否比查找到的对象对应的数据块数量多,若是,则进入步骤S350,否则,进入步骤S360;
S350重新建立一个新对象,将所述数据存储在所述对象的数据部分,将所述数据的描述信息存储在所述对象的元数据部分;
S360将所述数据存储在所述保留的空位上;
S40数据读取方法,包括步骤:
S410通过统一接口获取所述数据的读取指令,解析所述读取指令,获取所述读取指令中的容器的名称及对象的名称;
S420根据所述读取指令,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
S430查看所述对象的元数据部分,获取所述数据部分的数据块编号,进而找到对应的数据部分;S440根据所述数据块编号,将所述查询到的对应的数据部分进行排序,依次读取所述数据部分存储的对象内容。
2.根据权利要求1所述的一种数据管理方法,其特征在于,所述步骤S160包括步骤:S161判断所述数据的大小是否大于预设的数据块大小,若是,则进入步骤S162;否则进入步骤S163;S162将所述数据分割成若干数据块,并依次对所述数据块进行编号,将所述带编号的数据块存储于所述对象的数据部分;将所述数据的描述信息存储于所述对象的元数据部分;S163将所述数据存入一个数据块,所述数据块编号后存储于对象的数据部分;将所述数据的描述信息存储于对象的元数据部分。
3.根据权利要求1所述的一种数据管理方法,其特征在于,所述S20还包括步骤:S250判断所述容器中存在的空位是否超过预设的数值,若是,则去除所有空位,并将所有剩余的数据部分的数据块重新编号;S260同步更改所述容器中所述对象的元数据部分存储的所述对象的编号信息。
4.根据权利要求1所述的一种数据管理方法,其特征在于,包括步骤:S142当所述容器中存在所述存储指令中的对象时,推送是否继续存储的确认界面,所述确认界面包含查找到的已存储的所述对象、及待存储的数据的对比信息;S143当用户确认继续存储所述数据且保留原对象时,在同一容器中创建新对象;S144当用户确认继续存储且删除原对象时,进入步骤S340;S145当用户确认取消存储所述数据时,结束操作。
5.根据权利要求1所述的一种数据管理方法,其特征在于,还包括S00权限管理方法,包括步骤:S010设置所述容器的读写权限;S020当执行所述数据存储方法或所述数据读取方法时,判断用户是否具备对待存储或读取的容器的读写权限;S030根据所述权限执行或驳回所述用户的请求。
6.根据权利要求1所述的一种数据管理方法,其特征在于,所述对象的名称是根据指用户指定的名称或系统生成的所述对象的名称,所述对象的名称在所在的容器中唯一存在;所述容器的名称是根据用户指定的名称或系统生成的所述容器的名称,所述容器的名称在所在的存储系统中唯一存在;所述数据的描述信息包括:对象的名称、创建时间、大小、文件类型、及所述对象的数据部分对应的数据块编号。
7.根据权利要求1所述的一种数据管理方法,其特征在于,所述统一接口为rest接口。
8.一种数据存储系统,其特征在于,包括接口模块、与所述接口模块相连的服务管理模块、及与所述服务管理装置相连的存储模块,所述服务管理模块包括解析单元、及与所述解析单元分别相连的序列化单元、查找单元、创建单元,所述创建单元还与所述查找单元相连;所述存储模块中含有容器,用于存储对象,其中:
所述数据存储系统将数据存入包括:
通过所述接口模块获取所述数据的存储指令后,所述服务管理模块的解析单元解析所述存储指令,获取所述存储指令中的容器名称及对象的名称;
所述序列化单元将所述数据进行序列化操作,变换成可存储的状态;
所述查找单元根据所述解析单元解析获取的所述容器的名称,在所述存储模块的中查找所述容器是否已存在;
当所述查找单元查找到所述容器时,所述查找单元进一步在所述容器中查找是否存在所述解析单元解析所述存储指令获取的对象;当所述查找单元在所述容器中查找不到所述解析单元解析所述存储指令获取的对象时,所述创建单元根据所述解析单元解析获取的对象的名称,在所述容器中建立一个对象,所述对象包括元数据部分和数据部分;
当所述查找单元查找不到所述容器时,所述创建单元根据所述解析单元解析所述存储指令获取的容器的名称,在所述存储模块中建立一个新容器;所述创建单元根据所述解析单元解析所述存储指令中获取的对象的名称,在所述新容器中建立一个对象,所述对象包括元数据部分和数据部分;
所述存储模块将所述数据的描述信息存储在所述对象的元数据中;将所述数据内容以数据块的形式存储在所述对象的数据部分;
所述存储模块存储成功后,返回所述数据存储的数据块编号,并存储于相应的对象的元数据部分;
所述存储模块包括判断单元、及与所述判断单元相连的操作单元,其中:
所述存储模块将所述数据的描述信息存储在所述对象的元数据中;将所述数据内容以数据块的形式存储在所述对象的数据部分包括:
所述存储模块的判断单元判断所述数据的大小是否大于预设的数据块大小,若是,则通过所述操作单元将所述数据分割成若干数据块,并依次对所述数据块进行编号,将所述带编号的数据块存储于所述对象的数据部分;将所述数据的描述信息存储于所述对象的元数据部分;否则所述操作单元将所述数据存入一个数据块,将所述数据块编号后存储于对象的数据部分;将所述数据的描述信息存储于对象的元数据部分。
9.根据权利要求8所述的一种数据存储系统,其特征在于,所述服务管理模块还包括与所述查找单元相连的删除单元,其中:所述数据存储系统将数据删除包括:通过所述接口模块获取所述数据的删除指令后,所述服务管理模块的解析单元解析所述删除指令,获取所述删除指令中的容器的名称及对象的名称;所述查找单元根据所述解析单元解析所述删除指令获取的所述容器的名称和对象的名称,查找到相应的容器;并进一步在所述容器中查找到相应的对象;所述查找单元查看所述对象的元数据部分,进而找到对应的数据部分,并获取所述数据部分的数据块编号;所述删除单元根据所述数据块编号,删除所述对象的数据部分的数据块及所述对象的元数据,保留所述对象删除后的空位。
10.根据权利要求8所述的一种数据存储系统,其特征在于,所述存储模块的判断单元判断所述容器中存在的空位是否超过预设的数值,若是,则通过所述操作单元去除所有空位,并将所有剩余的数据部分的数据块重新编号;
所述操作单元同步更改所述容器中所述对象的元数据部分存储的所述对象的编号信息。
11.根据权利要求9所述的一种数据存储系统,其特征在于,所述存储系统将数据进行更新包括:
通过所述接口模块获取所述数据的更新指令;所述服务管理模块的解析单元解析所述更新指令,获取所述更新指令中的容器的名称及对象的名称;
所述序列化单元将所述数据进行序列化操作,变换成可存储的状态;
所述查找单元根据所述解析单元解析所述更新指令获取的所述容器的名称和对象的名称,查找到相应的容器;并进一步在所述容器中查找到相应的对象;
所述查找单元查看所述对象的元数据部分,进而找到对应的数据部分,并获取所述数据部分的数据块编号;所述删除单元根据所述数据块编号,删除所述对象的数据部分的数据块及所述对象的元数据,保留所述对象删除后的空位;
所述存储模块的判断单元判断所述数据所需的数据块数量是否比查找到的对象对应的数据块数量多,若是,则所述服务管理模块的创建单元重新建立一个新对象,所述存储模块的操作单元将所述数据存储在所述对象的数据部分,将所述数据的描述信息存储在所述对象的元数据部分,否则,所述存储模块的操作单元将所述数据存储在所述保留的空位上。
12.根据权利要求11所述的一种数据存储系统,其特征在于,所述服务管理模块还包括与所述查找单元相连的推送反馈单元,所述推送反馈单元还与所述删除单元、创建单元相连,其中:
当所述查找单元根据所述解析单元解析获取的容器名称和对象名称,在所述存储模块中查找到相应的容器及对象时,所述推送反馈单元推送是否继续存储的确认界面,所述确认界面包含查找到的已存储的所述对象、及待存储的数据的对比信息;
当所述推送反馈单元接收到用户确认继续存储所述数据且保留原对象时,所述创建单元在同一容器中创建新对象;
当所述推送反馈单元接收到用户确认继续存储且删除原对象时,则所述删除单元删除所述查找单元查找到的对象,所述存储模块的判断单元判断所述数据所需的数据块数量是否比所述服务管理模块的查找单元查找到的对象对应的数据块数量多,若是,则所述服务管理模块的创建单元重新建立一个新对象,所述存储模块的操作单元将所述数据存储在所述对象的数据部分,将所述数据的描述信息存储在所述对象的元数据部分,否则,所述存储模块的操作单元将所述数据存储在所述保留的空位上;
当所述推送反馈单元接收到用户确认取消存储所述数据时,结束操作。
13.根据权利要求8-12任一项所述的一种数据存储系统,其特征在于,还包括与所述查找单元相连的读取单元,其中:
所述数据存储系统读取数据包括:通过所述接口模块获取所述数据的读取指令,所述服务管理模块的解析单元解析所述读取指令,获取所述读取指令中的容器的名称及对象的名称;
所述查找单元根据所述解析单元解析所述读取指令获得的容器名称及对象的名称,在所述存储模块中查找到相应的容器;并进一步在所述容器中查找到相应的对象;
所述读取单元查看所述对象的元数据部分,获取所述数据部分的数据块编号,进而找到对应的数据部分;
所述读取单元根据所述数据块编号,将所述查询到的对应的数据部分进行排序,依次读取所述数据部分存储的对象内容。
14.根据权利要求13所述的一种数据存储系统,其特征在于,还包括权限管理模块,所述权限管理模块分别与所述服务管理模块和存储模块相连;其中:
所述存储系统进行权限管理包括:
所述权限管理模块设置所述容器的读写权限;
当执行所述数据存储方法或所述数据读取方法时,所述权限管理模块判断用户是否具备对待存储或读取的容器的读写权限;
所述权限管理模块根据所述权限执行或驳回所述用户的请求。
15.根据权利要求8所述的一种数据存储系统,其特征在于,
所述对象的名称是根据指用户指定的名称或系统生成的所述对象的名称,所述对象的名称在所在的容器中唯一存在;
所述容器的名称是根据用户指定的名称或系统生成的所述容器的名称,所述容器的名称在所在的存储系统中唯一存在;
所述数据的描述信息包括:对象的名称、创建时间、大小、文件类型、及所述对象的数据部分对应的数据块编号。
16.根据权利要求8所述的一种数据存储系统,其特征在于,所述接口模块为rest接口。
CN201611080056.8A 2016-11-30 2016-11-30 一种数据管理方法及存储系统 Active CN106599111B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611080056.8A CN106599111B (zh) 2016-11-30 2016-11-30 一种数据管理方法及存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611080056.8A CN106599111B (zh) 2016-11-30 2016-11-30 一种数据管理方法及存储系统

Publications (2)

Publication Number Publication Date
CN106599111A CN106599111A (zh) 2017-04-26
CN106599111B true CN106599111B (zh) 2021-07-02

Family

ID=58594424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611080056.8A Active CN106599111B (zh) 2016-11-30 2016-11-30 一种数据管理方法及存储系统

Country Status (1)

Country Link
CN (1) CN106599111B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107948309A (zh) * 2017-12-15 2018-04-20 神思电子技术股份有限公司 一种基于Restful API的服务器资源的集成管理方法和系统
CN108829817A (zh) * 2018-06-12 2018-11-16 海南省火蓝数据有限公司 一种用于大数据融媒体的内容管理系统
CN109164974B (zh) * 2018-06-27 2021-07-09 创新先进技术有限公司 一种数据存储方法及装置、一种计算设备及存储介质
CN109271353B (zh) * 2018-09-06 2020-11-24 华中科技大学 一种在数据去重过程中选择性重写自引用块方法及系统
CN110704192A (zh) * 2019-09-30 2020-01-17 的卢技术有限公司 一种多元化数据云存储方法及系统
CN111241351A (zh) * 2020-01-08 2020-06-05 第四范式(北京)技术有限公司 数据处理方法、装置及系统
CN112115125B (zh) * 2020-09-27 2024-04-26 北京人大金仓信息技术股份有限公司 数据库访问对象名称解析方法、装置及电子设备
CN113590259A (zh) * 2021-06-18 2021-11-02 济南浪潮数据技术有限公司 一种多容器多元数据操作方法、系统、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354726A (zh) * 2008-09-17 2009-01-28 中国科学院计算技术研究所 一种机群文件系统的内存元数据管理方法
CN105930534A (zh) * 2016-06-20 2016-09-07 重庆大学 一种基于云存储服务价格的数据碎片减少方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073742B (zh) * 2011-01-31 2012-11-14 清华大学 一种海量对象的存储系统及其运行方法
US10025873B2 (en) * 2014-04-18 2018-07-17 Walmart Apollo, Llc System and method for storing and processing database requests
CN105100149A (zh) * 2014-05-13 2015-11-25 中国电信股份有限公司 用于管理文件的方法和系统
CN105049504B (zh) * 2015-07-09 2019-03-05 国云科技股份有限公司 一种大数据中转传输同步及存储方法
CN105867948A (zh) * 2016-04-26 2016-08-17 江苏物联网研究发展中心 基于AJAX和SpringMVC的WEB开发方法
CN106156289A (zh) * 2016-06-28 2016-11-23 北京百迈客云科技有限公司 一种读写对象存储系统中的数据的方法以及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354726A (zh) * 2008-09-17 2009-01-28 中国科学院计算技术研究所 一种机群文件系统的内存元数据管理方法
CN105930534A (zh) * 2016-06-20 2016-09-07 重庆大学 一种基于云存储服务价格的数据碎片减少方法

Also Published As

Publication number Publication date
CN106599111A (zh) 2017-04-26

Similar Documents

Publication Publication Date Title
CN106599111B (zh) 一种数据管理方法及存储系统
CN109254733B (zh) 用于存储数据的方法、装置和系统
US10904316B2 (en) Data processing method and apparatus in service-oriented architecture system, and the service-oriented architecture system
CN109766318B (zh) 文件读取方法及装置
CN110222238B (zh) 字符串与识别符双向映射的查询方法和系统
CN108614837B (zh) 文件存储和检索的方法及装置
CN110888837B (zh) 对象存储小文件归并方法及装置
CN108228799B (zh) 对象索引信息的存储方法及装置
CN107515879B (zh) 用于文档检索的方法和电子设备
CN111597148B (zh) 用于分布式文件系统的分布式元数据管理方法
CN111858760B (zh) 一种异构数据库的数据处理方法及装置
RU2348062C2 (ru) Способ и устройство для динамического связывания/динамического разрешения путевых имен
CN110807028B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN112416880A (zh) 一种基于实时归并的海量小文件存储性能优化方法及装置
CN113342908B (zh) 一种面向对象的内核层数据库的构建方法
CN109460406B (zh) 一种数据处理方法及装置
CN112912870A (zh) 租户标识符的转换
CN113377876A (zh) 基于Domino平台的数据分库处理方法、装置及平台
CN111897828A (zh) 数据批处理实现方法、装置、设备及存储介质
CN110597827A (zh) 一种接口控制文件数据的存储方法及系统
CN115495462A (zh) 批量数据更新方法、装置、电子设备和可读存储介质
CN113434506B (zh) 数据管理及检索方法、装置、计算机设备及可读存储介质
CN111563064B (zh) 一种文件操作的方法、系统、设备及可读存储介质
US10114864B1 (en) List element query support and processing
CN113377724A (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: 20201029

Address after: 318015 no.2-3167, zone a, Nonggang City, no.2388, Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province

Applicant after: Taizhou Jiji Intellectual Property Operation Co.,Ltd.

Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666

Applicant before: Phicomm (Shanghai) Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210604

Address after: 10 / F, 12 Sanjiang East Road, Quzhou City, Zhejiang Province 324000

Applicant after: Zhejiang Xin'an Digital Technology Co.,Ltd.

Address before: 318015 no.2-3167, area a, nonggangcheng, 2388 Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province

Applicant before: Taizhou Jiji Intellectual Property Operation Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant