CN103795811B - 一种基于元数据保存存储信息及统计管理数据的方法 - Google Patents
一种基于元数据保存存储信息及统计管理数据的方法 Download PDFInfo
- Publication number
- CN103795811B CN103795811B CN201410078821.7A CN201410078821A CN103795811B CN 103795811 B CN103795811 B CN 103795811B CN 201410078821 A CN201410078821 A CN 201410078821A CN 103795811 B CN103795811 B CN 103795811B
- Authority
- CN
- China
- Prior art keywords
- data
- metadata
- meta
- information
- server
- 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.)
- Expired - Fee Related
Links
- 238000007726 management method Methods 0.000 title abstract description 11
- 238000013500 data storage Methods 0.000 title abstract description 8
- 239000000284 extract Substances 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 24
- 238000004321 preservation Methods 0.000 claims description 18
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 239000000203 mixture Substances 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000008859 change Effects 0.000 claims description 2
- 239000002699 waste material Substances 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 8
- 230000005012 migration Effects 0.000 description 6
- 238000013508 migration Methods 0.000 description 6
- 230000008520 organization Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000002679 ablation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于元数据保存存储信息及统计管理数据的方法,其特征在于,具体包括步骤如下:步骤一、客户端向存储服务器发送保存数据请求;步骤二、用户保存数据的请求到达服务器后,服务器将数据保存在数据仓储中,客户端根据待发送数据量大小将数据拆分为多个数据块,逐个发送到存储服务器;步骤三、服务器从数据中抽取出需要的统计信息与其基本信息组成元数据,并把元数据保存在元数据仓储中;步骤四、服务器返回保存数据成功信息到客户端。本专利通过对元数据中基本信息的处理,实现对存储数据的统计管理,并达到简化操作减少资源浪费的目标。
Description
技术领域
本发明属于存储技术领域,具体涉及一种基于元数据保存存储信息及统计管理数据的方法。
背景技术
随着现代IT***的发展及公司业务的扩展,数据的规模越来越庞大,并且增速也越来越快,因此传统的数据库***遇到了前所未有的挑战,并在以后有可能成为***发展及业务扩展的瓶颈。目前,为了应对海量数据的存储和管理及控制、减少存储成本,已经有很多公司和组织开始使用数据存储。因此,数据存储在业界得到了越来越广泛的使用。
在使用数据存储的时候,如果只提供单纯的数据存储和读取功能,那么对于所存储数据的统计和查询功能(各种类型数据所占空间容量、各种类型数据增加趋势等功能需求),就需要依次取出所有数据,进行分类计算,然后进行数据统计。这样每次都要把所有数据取出并进行计算,如果有2个TB的数据,那么每次计算都要遍历这2个TB的数据,并对这些数据进行计算,将会导致算法复杂度的提升及***资源浪费。
于是人们提出了元数据(描述数据及其环境的数据)的概念,在保存数据的同时统计好该数据的相关信息,并放入元数据中,当需要统计信息时,只需要取出这些元数据进行计算而不是整个数据进行计算,这样就简化了算法并节约成本。这时候元数据应该放在那里?如何放?就成了需要解决的问题。
在数据存储领域,专利“一种适用于云存储***的元数据分布式存储方法”(申请号:201210236195.0)提出的方法主要为:将数据和元数据组成混合数据块保存在数据存储上,使得元数据及数据块混合存储,并具备与数据块有相同的冗余度。
该方法存在如下问题:1、当需要对元数据进行扩展时,由于元数据借用了数据块的地址,附加在数据块后面,需要修改数据和元数据的混合数据块,如果修改错误,则会造成整条数据不可用;2、不支持大数据(数据量很大,需要拆分为多个数据块),即一条记录多个数据块的情况。
发明内容
为了解决存储领域中对于元数据的存储所带来的以上两个问题,本专利提供了一种基于元数据保存存储信息及统计管理数据的方法,通过对元数据中基本信息的处理,实现对存储数据的统计管理,并达到简化操作减少资源浪费的目标。
本专利提供的具体技术方案如下:一种基于元数据保存存储信息及统计管理数据的方法,包括具体步骤如下:
步骤1:客户端向存储服务器发送保存数据请求;
步骤2:用户保存数据的请求到达服务器后,服务器将数据保存在数据仓储中。
如果待发送数据量很大,客户端会将大数据拆分为多个数据块,逐个发送到存储服务器,其中,此处设置了4种数据块大小的标准:1M、2M、3M、5M,根据传递数据的不同,选择相应的数据块大小的标准。
步骤3:服务器从数据中抽取出需要的统计信息(如:数据大小)与其基本信息(如:用户输入的key、上传图片的应用的database、图片所在的表标识等)组成元数据,并把元数据保存在元数据仓储中。元数据组成部分包括:partiton、database、table、key、blockIndex、lastblockflag、dataSize。步骤2与步骤3属于一个原子操作;
其中,在本处理过程中包含2部分数据操作:
1) 为每个数据块创建一个块元数据(block meta)信息,保存在元数据仓储中。
2) 为每条数据记录创建一个记录元数据(record meta),当上传新的该数据的数据块时,更新record meta信息中保存的相关信息。
保存时,以元数据字符串保存为B树结构。在查找时,以前面的数据基本信息作为查找索引,可以方便快捷的找出需要的数据。其中,B树结构是一种适用于外查找的树,它是一种平衡的多叉树,称为B树(或B-树、B_树)。
步骤4:服务器返回保存数据成功信息到客户端。
当用户需要进行数据统计时,不再需要遍历保存在服务器的数据块而是遍历元数据仓储就可以解决问题;具体过程如下:
步骤1:遍历元数据存储的B树结构,取出元数据对应的数据统计信息,进行统计计算,并返回计算的统计结果
步骤2:整个集群所有服务器的统计结果返回后,统一计算,进行分类统计,得到最终结果。
当需要扩展数据块相关的基本信息或统计信息时,可以不用修改数据块而是修改对应的元数据,这样就减小了修改错误对于原数据的影响。具体过程如下:
步骤1:当需要修改数据块相关的基本信息,比如添加一个保存时间,以方便以后按时间统计数据,并且可以得到某一类数据的增长趋势等需求时,修改每个数据对应的元数据即可。修改元数据的组成,在原来组成的基础上,即元数据包含信息:partiton、database、table、key、blockIndex、lastblockflag、dataSize中,添加一个保存时间time,如修改元数据为partiton、database、table、key、time、blockIndex、lastblockflag 、dataSize。
步骤2:当需要查看添加时间时,只需要查找该元数据即可。由于修改不涉及到数据块的更改,所以不会影响该数据的正确性和有效性。
删除操作在一个原子操作下删除数据的同时删除其元数据。具体过程如下:
步骤1:当用户发起删除数据操作时,请求到达服务器。
步骤2:服务器在一个事务中同时做删除数据和其元数据操作。如果操作都成功则数据及元数据一起删除,如果其中一个操作失败,则事务回滚,删除操作撤销。
通过对元数据的统计,可以得知数据切分为多个数据块以及数据是否完备。
本发明与现有技术相比,其显著优点:
1) 通过遍历某个数据服务器的元数据database,可以很方便的取得该服务器的存储统计信息,减少了***复杂度及资源浪费;
2) 当需要对数据块的基本信息修改时,只需要修改对应的元数据就可以达到目标,减少了可能出错的概率;
3) 使用B树形结构,在数据迁移时,如果需要把某个分片迁移到集群中另一个存储上时,可以直接将该分片的子树整个迁移过去,达到方便数据迁移的目的;
4) 不需要专门的元数据服务器,因此运行可靠并且降低了服务器成本;
5) 元数据保存在数据集群中,方便以后的扩展。
附图说明
图1 为本发明数据块和块元数据(block meta)在同一数据服务器上的存储策略。
图2 为本发明数据和记录元数据(record meta)在同一数据服务器上的存储策略。
图3 为本发明元数据写入过程流程图。
图4 为本发明元数据统计读取过程图。
图5 为本发明数据块存储结构图。
图6 为本发明元数据存储结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
术语解释
数据仓储:依照某种数据模型,组织并存放数据的集合。
元数据仓储:依照某种数据模型,组织并存放元数据的集合。
原子操作:指的是这个操作所处层的更高层不能发现其内部实现与结构。其不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。
如图1所示,为本发明的数据块存储策略。数据块及其元数据存储在一个数据服务器的不同仓储上,使得元数据与数据块有着相同的冗余度与扩展性。
如图2所示,为本发明的数据存储策略。为每条用户上传的完整数据记录单独创建保存一个元数据(record meta),用于记录该数据记录的统计信息。一个完整的数据记录保存在一个存储服务器上,当数据量很大时,可以认为存储集群数据是均匀分布的。
如图1与2所示,一个数据记录对应一个数据记录元数据(record meta),一个数据记录可能会拆分为多个数据块,每个数据块对应一个块元数据(block meta);数据保存在数据仓储中,元数据(包括记录元数据和块元数据)保存在元数据仓储中。
图3示出了本发明实例提供的数据存储方法实现流程,具体如下:
步骤1:假设客户端上传项目project1所属表table1的数据,key为key1。客户端向存储服务器发送保存数据请求。
如果数据较大,则拆分为多个数据块,逐个发送;其中,此处设置了4种数据块大小的标准:1M、2M、3M、5M,根据传递数据的不同,选择相应的数据块大小的标准,例如发送图标数据时,因为图标数据普遍较小,就选择1M的数据块的标准;如果发送flash格式的文件时,因为这类文件一般来说比较大,那么可以适当选择3M的数据块标准;如果发送视频文件时,而视频文件的大小比flash文件一般更大,就适当选择5M的数据块标准。
步骤2:用户保存数据的请求到达服务器后,服务器将数据以B树的存储结构保存在数据仓储中,方便以后的数据查找;
步骤3:服务器从数据块中抽取出需要的统计信息与其基本信息组成元数据为partiton、database、table、key、time、blockIndex、lastblockflag、dataSize,并把元数据也以B树的存储结构保存在元数据仓储中,步骤2与步骤3属于一个原子操作。
其中,在本处理过程中包含两部分数据操作:
1) 为每个数据块创建一个块元数据(block meta)信息(具体包含:1、元数据的基本信息;2、数据dataSize),保存在元数据仓储中,具体参见图1。
2) 为每条数据创建一个记录元数据(record meta)(具体包含:1、元数据基本信息;2元数据对应数据的统计信息),当上传新的该数据的数据块时,更新record meta信息中保存的相关信息,具体参见图2。
步骤4:服务器返回保存的结果到客户端。
图4示出了本发明统计一个数据服务器的存储信息流程图。其流程包括以下步骤:
步骤1:假设用户需要统计每个项目的存储数据量,向存储服务器发送统计请求。
步骤2:服务器接受到请求后,如果元数据不在内存,则将元数据放入内存,对内存中的元数据遍历其B树结构。
步骤3:按项目进行分类,从而方便对每个项目的中包含的元数据进行统计处理,把元数据中保存的存储量数据进行归类计算。
步骤4:计算完统计信息后,返回结果给客户端。
如图5所示,为本发明的数据块存储结构。数据块按照B树存储结构保存在数据仓储中,在数据查找时,可以根据保存数据的信息按顺序对B树进行遍历,比如通过key计算出数据属于哪个分片,找到对应分片的partiton节点,然后继续通过数据属于哪个project、table、key找到对应叶子节点的数据Block,从而很容易的到需要的数据。
按图5所示的树形结构,在数据迁移时,如果需要把某个分片迁移到集群中另一个存储上时,可以直接将该partition子树整个迁移过去,达到方便数据迁移的目的。
如图6所示,为本发明的元数据存储结构。元数据按照B树存储结构保存在元数据仓储中。在数据查找时,可以通过 B树很容易的找到需要的元数据。查找同图5所述,当找到对应的元数据信息后,可以通过计算所找到的元数据相关信息,例如统计数据量大小、存储时间等,得到需要的统计信息,比如计算key1数据的总数据量,可以将key1下所有叶子节点的元数据中的数据量信息进行累加,从而得到该key1总数据量。
如果不使用元数据,那么每次都需要取出该数据的所有的数据进行计算,这样将浪费大量的***资源。
以上所述仅为本发明专利的一种实施例而已,并不用以限制本发明专利,凡在本发明专利的精神和原则之内所作的任何修改、等同替换和改进等,均以包含在本发明专利的保护范围之内。
Claims (7)
1.一种基于元数据保存存储信息及统计管理数据的方法,其特征在于,具体包括步骤如下:
步骤一、客户端向存储服务器发送保存数据请求;
步骤二、用户保存数据的请求到达服务器后,服务器将数据保存在数据仓储中,客户端根据待发送数据量大小将数据拆分为多个数据块,逐个发送到存储服务器;
步骤三、服务器从数据中抽取出需要的统计信息与其基本信息组成元数据,并把元数据保存在元数据仓储中;
步骤三中,元数据组成部分包括:数据切片单元(partiton)、库空间(database)、库表(table)、主键(key)、数据块序号(blockIndex)、最后数据块标识(lastblockflag)、数据尺寸(dataSize);
步骤三的处理过程中包含两部分数据操作:
1) 为每个数据块创建一个块元数据(block meta)信息,保存在元数据仓储中;
2) 为每条数据记录创建一个记录元数据(record meta),当上传新的该数据的数据块时,更新记录元数据(record meta)信息中保存的相关信息;
保存时,以元数据字符串保存为B树结构;查找时,以前面的数据基本信息作为查找索引,能够方便快捷的找出需要的数据;
步骤四、服务器返回保存数据成功信息到客户端。
2.根据权利要求1所述的基于元数据保存存储信息及统计管理数据的方法,其特征在于:步骤二与步骤三属于一个原子操作。
3.根据权利要求1或2所述的基于元数据保存存储信息及统计管理数据的方法,其特征在于,当用户需要进行数据统计时,不需要遍历保存在服务器的数据块而是仅需遍历元数据仓储即可,具体步骤为:
步骤1:遍历元数据存储的B树结构,取出元数据对应的数据统计信息,进行统计计算,并返回计算的统计结果;
步骤2:整个集群所有服务器的统计结果返回后,统一计算,进行分类统计,得到最终结果。
4.根据权利要求1或2所述的基于元数据保存存储信息及统计管理数据的方法,其特征在于,当需要扩展数据块相关的基本信息或统计信息时,不用修改数据块而是仅修改对应的元数据,具体步骤为:
步骤1:当需要修改数据块相关的基本信息,添加一个保存时间以方便以后按时间统计数据,并且能够得到某一类数据的增长趋势需求时,修改每个数据对应的元数据即可;修改元数据的组成,在原来组成的基础上,即元数据包含信息:数据切片单元(partiton)、库空间(database)、库表(table)、主键(key)、数据块序号(blockIndex)、最后数据块标识(lastblockflag)、数据尺寸(dataSize)中,添加一个保存时间(time),修改元数据为数据切片单元(partiton)、库空间(database)、库表(table)、主键(key)、时间(time)、数据块序号(blockIndex)、最后数据块标识(lastblockflag)、数据尺寸(dataSize);
步骤2:当需要查看添加时间时,只需要查找该元数据即可;由于修改不涉及到数据块的更改,所以不会影响该数据的正确性和有效性。
5.根据权利要求1或2所述的基于元数据保存存储信息及统计管理数据的方法,其特征在于,删除操作在一个原子操作下删除数据的同时删除其元数据,具体步骤为:
步骤1:当用户发起删除数据操作时,请求到达服务器;
步骤2:服务器在一个事务中同时做删除数据和其元数据操作;如果操作都成功则数据及元数据一起删除,如果其中一个操作失败,则事务回滚,删除操作撤销。
6.根据权利要求3所述的基于元数据保存存储信息及统计管理数据的方法,其特征在于:通过对元数据的统计,能够得知数据切分为多个数据块以及数据是否完备。
7.根据权利要求1所述的基于元数据保存存储信息及统计管理数据的方法,其特征在于:
步骤五、用户需要统计每个项目的存储数据量,向存储服务器发送统计请求;
步骤六、服务器接受到请求后,如果元数据不在内存,则将元数据放入内存,对内存中的元数据遍历其B树结构;
步骤七、按项目进行分类,从而方便对每个项目的中包含的元数据进行统计处理,把元数据中保存的存储量数据进行归类计算;
步骤八、计算完统计信息后,返回结果给客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410078821.7A CN103795811B (zh) | 2014-03-06 | 2014-03-06 | 一种基于元数据保存存储信息及统计管理数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410078821.7A CN103795811B (zh) | 2014-03-06 | 2014-03-06 | 一种基于元数据保存存储信息及统计管理数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103795811A CN103795811A (zh) | 2014-05-14 |
CN103795811B true CN103795811B (zh) | 2015-05-06 |
Family
ID=50671078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410078821.7A Expired - Fee Related CN103795811B (zh) | 2014-03-06 | 2014-03-06 | 一种基于元数据保存存储信息及统计管理数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103795811B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657459B (zh) * | 2015-02-09 | 2018-02-16 | 中国科学院信息工程研究所 | 一种基于文件粒度的海量数据存储方法 |
CN104765774B (zh) * | 2015-03-16 | 2018-07-31 | 新浪网技术(中国)有限公司 | 一种资源占用的统计方法及装置 |
CN107301183B (zh) * | 2016-04-14 | 2020-02-18 | 杭州海康威视数字技术股份有限公司 | 一种文件存储方法及装置 |
CN106201826B (zh) * | 2016-07-13 | 2018-11-20 | 焦点科技股份有限公司 | 一种诊断Oracle数据库大事务和热点事务的方法 |
CN106227769B (zh) * | 2016-07-15 | 2019-11-26 | 北京奇虎科技有限公司 | 数据存储方法及装置 |
CN106202492B (zh) * | 2016-07-19 | 2020-05-29 | 浪潮(北京)电子信息产业有限公司 | 一种网络文件***的元数据服务优化方法及*** |
CN107480010A (zh) * | 2017-08-21 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种恢复元数据的方法及装置 |
CN107992286A (zh) * | 2017-12-06 | 2018-05-04 | 广州华旻信息科技有限公司 | 智能编码方法、装置、终端设备及存储介质 |
US11295031B2 (en) | 2019-10-08 | 2022-04-05 | International Business Machines Corporation | Event log tamper resistance |
CN110704453B (zh) * | 2019-10-15 | 2022-05-06 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种数据查询方法、装置、存储介质及电子设备 |
US11392348B2 (en) | 2020-02-13 | 2022-07-19 | International Business Machines Corporation | Ordering records for timed meta-data generation in a blocked record environment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821138A (zh) * | 2012-07-09 | 2012-12-12 | 广州鼎鼎信息科技有限公司 | 一种适用于云存储***的元数据分布式存储方法 |
CN103207866A (zh) * | 2012-01-16 | 2013-07-17 | 中国科学院声学研究所 | 一种基于分块策略的文件存储方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011023134A1 (en) * | 2009-08-28 | 2011-03-03 | Beijing Innovation Works Technology Company Limited | Method and system for managing distributed storage system through virtual file system |
-
2014
- 2014-03-06 CN CN201410078821.7A patent/CN103795811B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207866A (zh) * | 2012-01-16 | 2013-07-17 | 中国科学院声学研究所 | 一种基于分块策略的文件存储方法及*** |
CN102821138A (zh) * | 2012-07-09 | 2012-12-12 | 广州鼎鼎信息科技有限公司 | 一种适用于云存储***的元数据分布式存储方法 |
Non-Patent Citations (1)
Title |
---|
海量存储***中的元数据分级索引算法;牛德姣等;《计算机应用研究》;20120228;第29卷(第2期);第510-513页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103795811A (zh) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103795811B (zh) | 一种基于元数据保存存储信息及统计管理数据的方法 | |
US11468027B2 (en) | Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor | |
CN103150394B (zh) | 面向高性能计算的分布式文件***元数据管理方法 | |
US9805053B1 (en) | Pluggable storage system for parallel query engines | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和*** | |
CN101103355B (zh) | 管理数据删除的方法和装置 | |
CN103617199B (zh) | 一种操作数据的方法和*** | |
CN113986873B (zh) | 一种海量物联网数据模型化的处理、存储与共享方法 | |
CN102169507A (zh) | 一种分布式实时搜索引擎 | |
CN104408111A (zh) | 一种删除重复数据的方法及装置 | |
CN102779185A (zh) | 一种高可用分布式全文索引方法 | |
CN106202492B (zh) | 一种网络文件***的元数据服务优化方法及*** | |
CN111198856B (zh) | 文件管理方法、装置、计算机设备和存储介质 | |
US11151081B1 (en) | Data tiering service with cold tier indexing | |
US20200097558A1 (en) | System and method for bulk removal of records in a database | |
CN105338113A (zh) | 一种针对城市数据资源共享的多平台数据互联*** | |
US11681691B2 (en) | Presenting updated data using persisting views | |
CN106161193B (zh) | 一种邮件处理方法、装置和*** | |
CN104598517A (zh) | 基于普通数据库的树型结构表的存储与查询技术 | |
GB2520361A (en) | Method and system for a safe archiving of data | |
US11777983B2 (en) | Systems and methods for rapidly generating security ratings | |
CN112148680B (zh) | 一种基于分布式图数据库的文件***元数据管理方法 | |
US20190278757A1 (en) | Distributed Database Management System with Dynamically Split B-Tree Indexes | |
WO2020215580A1 (zh) | 一种分布式全局数据去重方法和装置 | |
US10489356B1 (en) | Truncate and append database operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150506 |
|
CF01 | Termination of patent right due to non-payment of annual fee |