CN104063487B - 基于关系型数据库及k‑d树索引的文件数据管理方法 - Google Patents
基于关系型数据库及k‑d树索引的文件数据管理方法 Download PDFInfo
- Publication number
- CN104063487B CN104063487B CN201410316850.2A CN201410316850A CN104063487B CN 104063487 B CN104063487 B CN 104063487B CN 201410316850 A CN201410316850 A CN 201410316850A CN 104063487 B CN104063487 B CN 104063487B
- Authority
- CN
- China
- Prior art keywords
- file
- data management
- tree
- management method
- node
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000013523 data management Methods 0.000 title claims abstract description 16
- 238000013507 mapping Methods 0.000 claims abstract description 6
- 238000007726 management method Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于关系型数据库及K‑D树索引的文件数据管理方法,包括如下步骤:采用一致性哈希算法对文件进行分布存储,将文件的MD5值作为该文件的哈希值,将哈希值与集群中的服务器建立映射关系,从而将不同哈希值的文件分布到不同的服务器上;在元数据管理服务器端构建关系型数据库,对文件元数据库表结构进行设计;根据文件元数据库表字段数量构建多维检索树;根据服务器端接收的查询请求类型,进行相应查询,返回查询结果。本发明利用关系型数据库和内存中的文件索引,既保证了模糊检索的可用性,也保证了范围检索的高效性,在海量文件资料管理领域具有重要的实际应用价值。
Description
技术领域
本发明涉及海量文件数据的管理方法,尤其涉及一种基于关系型数据库及K-D树索引的文件数据管理方法。
背景技术
大型企业级应用中存在海量的业务数据需要进行管理。在这些文件数据中文件资料数据(包括扫描件,政策法规资料等)占了绝大多数,如何针对业务特征设计合理、高效的文件存储与管理机制是个非常有意义的问题。
每个需要集成的业务系统都留下了海量的文件资料,其管理会遇到如下几个问题:(1)文件数据量较大,仅以一个区级单位为例,所有所涉及到的文件资料总大小已经超过5T,并且以每年2T 的数据量增加。(2)文件没有备份机制,任意一次安全事故将导致文件资料的丢失。(3)文件资料以“文件名+文件路径”的方式存储,缺乏有效的查询机制,使得查阅比较困难。(4)文件资料存储效率低,有的业务系统将图片文件直接存放在数据库中,文件的读写都要经过 SQL 引擎,存储效率较低。常见的分布式文件系统如 GFS,HDFS和TFS对于简单的文件存储应用而言都过于复杂,最好的方式是结合实际情况设计简单的文件存储系统来满足业务需求。文件元数据管理是文件管理的核心,常见的文件元数据通常采用<key,value>的形式存储,其中 key 为主键,value表示文件存储路径与文件名的组合。文件的业务属性则托管给上层应用数据库管理,造成了文件系统与应用系统强耦合。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于关系型数据库及K-D 树索引的文件数据管理方法。
本发明的目的是通过一下技术方案来实现的:一种基于关系型数据库及K-D 树索引的文件数据管理方法,包括以下步骤:
(1)采用一致性哈希算法(DHT)对文件进行分布存储,将文件的MD5值作为该文件的哈希值,将哈希值与集群中的服务器建立映射关系,从而将不同哈希值的文件分布到不同的服务器上;
(2)在元数据管理服务器端构建关系型数据库,对文件元数据库表结构进行设计,文件元数据库表字段包括:文件存储路径、是否删除、上传时间;
(3)根据文件元数据库表字段数量,构建多维检索树(K-D树);
(4)判断元数据管理服务器端接收的客户端发送的检索请求,如检索请求类型为模糊查找,将该请求自动转发到步骤2构建的关系型数据库中进行模糊检索;如检索请求类型为属性范围查找,则调用步骤3构建的多维检索树,返回查询结果;
(5)在元数据管理服务器空闲时,重新建立平衡的多维检索树。
进一步地,所述步骤(1)中将哈希值与集群中的服务器建立映射关系具体为:给集群中的每个服务器分配随机标签,这些随机标签构成一个哈希环,存储文件时,计算文件主键哈希值,然后存放到哈希环顺时针方向中第一个大于或等于该哈希值所在的服务器节点。
进一步地,所述的步骤(3)具体为:k表示文件元数据库表字段个数,n表示多维检索树的层数,第 n 层中的每个节点,其左子树中每个节点的第n%k维属性小于或者等于该节点的n%k维属性,右子树中的每个节点的第n%k维属性大于或等于该节点的n%k维属性;在平衡状态下,多维检索树的检索性能O(logN), 并且支持O(N^(k-t/k))的范围查询效率,其中N表示文件数量,t为查询时指定的维度。
进一步地,所述的步骤(5)具体为:
(5.1)检索步骤2构建的关系型数据库的每个属性,将文件的第一维属性均摊分成两个部分,将中间节点插入到多维检索树;
(5.2)对文件的第二维属性进行与步骤5.1同样的处理,直到所有元数据信息按照维度全部载入到多维检索树中,最终得到平衡态的多维检索树。
本发明与现有技术相比具有的有益效果:
(1)支持模糊检索以及范围检索两种检索类型,支持两种文件检索引擎自由切换,具有了很高的检索效率。
(2)能够利用关系型数据库的优点,支持 SQL语句查询,不仅支持对文件资料的精确检索,也支持对某个属性的模糊检索,灵活度大大提升。
(3)大幅度降低了文件索引在内存中所占用的空间,支持对文件的多个维度进行检索,提升了检索效率。
附图说明
图1是文件检索请求分布示意图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
如图1所示,本发明一种基于关系型数据库及K-D 树索引的文件数据管理方法,包括如下步骤:
(1)采用一致性哈希算法对文件进行分布存储,将文件的MD5值作为该文件的哈希值,将哈希值与集群中的服务器建立映射关系,给集群中的每个服务器分配随机标签,这些随机标签构成一个哈希环,存储文件时,计算文件主键哈希值,然后存放到哈希环顺时针方向中第一个大于或等于该哈希值所在的服务器节点;从而将不同哈希值的文件分布到不同的服务器上。
(2)在元数据管理服务器端构建关系型数据库,对文件元数据库表结构进行设计,文件元数据库表字段包括:文件存储路径、是否删除、上传时间;
(3)根据文件元数据库表字段数量,构建多维检索树:k表示文件元数据库表字段个数,n表示多维检索树的层数,第 n 层中的每个节点,其左子树中每个节点的第n%k维属性小于或者等于该节点的n%k维属性,右子树中的每个节点的第n%k维属性大于或等于该节点的n%k维属性;在平衡状态下,多维检索树的检索性能O(logN), 并且支持O(N^(k-t/k))的范围查询效率,其中N表示文件数量,t为查询时指定的维度。
(4)判断元数据管理服务器端接收的客户端发送的检索请求,如检索请求类型为模糊查找,将该请求自动转发到步骤2构建的关系型数据库中进行模糊检索;如检索请求类型为属性范围查找,则调用步骤3构建的多维检索树,返回查询结果;
(5)在元数据管理服务器空闲时,重新建立平衡的多维检索树,提高检索效率,具体为:
(5.1)检索步骤2构建的关系型数据库的每个属性,将文件的第一维属性均摊分成两个部分,将中间节点插入到多维检索树;
(5.2)对文件的第二维属性进行与步骤5.1同样的处理,直到所有元数据信息按照维度全部载入到多维检索树中,最终得到平衡态的多维检索树。
实施例:
(1)搭建分布式存储环境。实验环境为2T 硬盘单个文件元数据管理服务器以及4个文件服务器组成的文件集群,操作系统为ubantu13.10,网络传输速率为10m/s. 准备文件材料集,将20k大小的扫描件,通过随机生成不重复文件名以及随机选择其行政区划属性,同时进行文件上传1000次。
(2)以业务背景为例,调研文件资料所需要进行检索的字段文档,在元数据管理服务器端构建关系型数据库,对文件元数据库表结构进行设计,设计字段原则是每一个字段均与业务需求相关,其中文件存储路径,是否删除,上传时间是必须字段。
主键ID | 所属业务operationID | 上传时间uploadDate | 业务完成时间completeDate | 行政区划代locateCode | 文件存储路径filepath | 是否删除isDelete |
(3)根据文件元数据库表字段数量(5个),构建多维检索树(K-D树),创建方法为:k表示文件元数据库表字段个数(5个),n表示检索树的层数,第 n 层中的每个节点,其左子树中每个节点的第n%k维属性小于或者等于该节点的n%k维属性,右子树中的每个节点的第n%k维属性大于或等于该节点的n%k维属性。
(4)根据客户端的查询请求,判断元数据管理服务器端接收的查询请求类型,如果检索类型为模糊查找,例如“select filename from tablename where filename like ‘%idcard%’”,将该请求自动转发到关系型数据库中模糊检索。如果检索类型为属性范围查找,例如对2013年的上传的文件情况进行查询,或者对“农村个人建房登记”这个业务内的所有文件进行检索,则调用已构建的多维检索树,返回查询结果。
(5)元数据管理服务器端构建方法rebulidKDTree,每天凌晨2点定时启动,重构多维检索树以确保平衡性。该算法思想是(1)检索关系型数据库中的每个需要建立索引的属性,将文件第一维属性均摊分成两个部分,将中间节点插入到 K-D 树。(2)对第二维属性进行同样的处理,如此反复进行,以此获得平衡态的 K-D 树,直到所有元数据信息按照维度信息全部载入到K-D树中。
对已经上传的结果进行模糊检索和范围检索,并且记录检索单位文档所需的平均时间,实验结果如下:
存储类型 | 总存储量 | 总测试存储量 | 存储时间(秒) | 模糊检索一个文件时间(秒) | 范围检索文件时间(秒) |
单机文件存储 | 2T(不可扩容) | 20k*1000个 | 11 | 不可模糊检索 | 14.3 |
使用数据库存储文件 | 约小于2T | 20k*1000个 | 37 | 1.16 | 17.9 |
分布式文件存储 | 8T(可扩容) | 20k*1000个 | 14 | 1.55 | 1.2 |
本实施例利用关系型数据库结合多维检索树的文件管理方式,管理业务办理中的海量的文件资料。通过对范围查询和模糊查询的区分大大提高了文件检索的可适用范围以及检索速度,有一定的应用价值。
Claims (4)
1.一种基于关系型数据库及K‐D树索引的文件数据管理方法,其特征在于,包括如下步骤:
(1)采用一致性哈希算法对文件进行分布存储,将文件的MD5值作为该文件的哈希值,将哈希值与集群中的服务器建立映射关系,从而将不同哈希值的文件分布到不同的服务器上;
(2)在元数据管理服务器端构建关系型数据库,对文件元数据库表结构进行设计,文件元数据库表字段包括:文件存储路径、是否删除、上传时间;
(3)根据文件元数据库表字段数量,构建多维检索树;
(4)判断元数据管理服务器端接收的客户端发送的检索请求,如检索请求类型为模糊查找,将该请求自动转发到步骤(2)构建的关系型数据库中进行模糊检索;如检索请求类型为属性范围查找,则调用步骤(3)构建的多维检索树,返回查询结果;
(5)在元数据管理服务器空闲时,重新建立平衡的多维检索树。
2.根据权利要求1所述的一种基于关系型数据库及K‐D树索引的文件数据管理方法,其特征在于,所述步骤(1)中将哈希值与集群中的服务器建立映射关系具体为:给集群中的每个服务器分配随机标签,这些随机标签构成一个哈希环,存储文件时,计算文件主键哈希值,然后存放到哈希环顺时针方向中第一个大于或等于该哈希值所在的服务器节点。
3.根据权利要求1所述的一种基于关系型数据库及K‐D树索引的文件数据管理方法,其特征在于,所述的步骤(3)具体为:k表示文件元数据库表字段个数,n表示多维检索树的层数,第n层中的每个节点,其左子树中每个节点的第n%k维属性小于或者等于该节点的n%k维属性,右子树中的每个节点的第n%k维属性大于或等于该节点的n%k维属性;在平衡状态下,多维检索树的检索性能O(logN),并且支持O(N^(k‐t/k))的范围查询效率,其中N表示文件数量,t为查询时指定的维度。
4.根据权利要求1所述的一种基于关系型数据库及K‐D树索引的文件数据管理方法,其特征在于,所述的步骤(5)具体为:
(5.1)检索步骤(2)构建的关系型数据库的每个属性,将文件的第一维属性均摊分成两个部分,将中间节点插入到多维检索树;
(5.2)对文件的第二维属性进行与步骤(5.1)同样的处理,直到所有元数据信息按照维度全部载入到多维检索树中,最终得到平衡态的多维检索树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410316850.2A CN104063487B (zh) | 2014-07-03 | 2014-07-03 | 基于关系型数据库及k‑d树索引的文件数据管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410316850.2A CN104063487B (zh) | 2014-07-03 | 2014-07-03 | 基于关系型数据库及k‑d树索引的文件数据管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104063487A CN104063487A (zh) | 2014-09-24 |
CN104063487B true CN104063487B (zh) | 2017-02-15 |
Family
ID=51551201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410316850.2A Active CN104063487B (zh) | 2014-07-03 | 2014-07-03 | 基于关系型数据库及k‑d树索引的文件数据管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104063487B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462430B (zh) * | 2014-12-12 | 2017-12-22 | 北京国双科技有限公司 | 关系型数据库的数据处理方法及装置 |
US10380115B2 (en) * | 2015-01-06 | 2019-08-13 | International Business Machines Corporation | Cross column searching a relational database table |
CN106547755A (zh) * | 2015-09-17 | 2017-03-29 | 北京国双科技有限公司 | 一种基于片键的数据处理方法及装置 |
CN107315745B (zh) * | 2016-04-26 | 2020-05-01 | 北京京东尚科信息技术有限公司 | 一种私信存储方法及系统 |
WO2018032519A1 (zh) * | 2016-08-19 | 2018-02-22 | 华为技术有限公司 | 一种资源分配方法、装置及numa系统 |
CN107818117B (zh) * | 2016-09-14 | 2022-02-15 | 阿里巴巴集团控股有限公司 | 一种数据表的建立方法、在线查询方法及相关装置 |
CN107169055B (zh) * | 2017-04-27 | 2019-10-18 | 北京众享比特科技有限公司 | 一种数据库表的操作方法和操作系统 |
CN107273443B (zh) * | 2017-05-26 | 2020-09-29 | 电子科技大学 | 一种基于大数据模型元数据的混合索引方法 |
CN107545027A (zh) * | 2017-07-10 | 2018-01-05 | 山东大学 | 一种自尊量表数据库及其构建方法、查询方法及系统 |
CN110019447A (zh) * | 2017-09-18 | 2019-07-16 | 镇江雅迅软件有限责任公司 | 一种基于关系型数据库的数据标签管理办法 |
CN107844546A (zh) * | 2017-10-27 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种文件系统元数据管理系统及方法 |
CN107967322B (zh) * | 2017-11-23 | 2021-09-21 | 努比亚技术有限公司 | 文件分类显示方法、移动终端及计算机可读存储介质 |
CN109862069B (zh) * | 2018-12-13 | 2020-06-09 | 百度在线网络技术(北京)有限公司 | 消息处理方法和装置 |
CN110704432A (zh) * | 2019-09-20 | 2020-01-17 | 贝壳技术有限公司 | 数据索引的建立方法和装置、可读存储介质、电子设备 |
CN113590894B (zh) * | 2021-07-12 | 2024-09-20 | 浙江大学 | 一种动态高效的遥感影像元数据入库检索方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866358A (zh) * | 2010-06-12 | 2010-10-20 | 中国科学院计算技术研究所 | 一种多维区间查询方法及系统 |
CN103390015A (zh) * | 2013-01-16 | 2013-11-13 | 华北电力大学 | 基于统一索引的海量数据联合存储方法及检索方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254166A1 (en) * | 2011-03-30 | 2012-10-04 | Google Inc. | Signature Detection in E-Mails |
-
2014
- 2014-07-03 CN CN201410316850.2A patent/CN104063487B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866358A (zh) * | 2010-06-12 | 2010-10-20 | 中国科学院计算技术研究所 | 一种多维区间查询方法及系统 |
CN103390015A (zh) * | 2013-01-16 | 2013-11-13 | 华北电力大学 | 基于统一索引的海量数据联合存储方法及检索方法 |
Non-Patent Citations (1)
Title |
---|
"树形数据在关系型数据库中的设计";王红;《计算机应用》;20000930;第20卷(第9期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104063487A (zh) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104063487B (zh) | 基于关系型数据库及k‑d树索引的文件数据管理方法 | |
US11354314B2 (en) | Method for connecting a relational data store's meta data with hadoop | |
US8880502B2 (en) | Searching a range in a set of values in a network with distributed storage entities | |
US9805079B2 (en) | Executing constant time relational queries against structured and semi-structured data | |
CN103812939B (zh) | 一种大数据存储系统 | |
AU2016204919B2 (en) | Intelligent data delivery and storage based on data characteristics | |
US7228299B1 (en) | System and method for performing file lookups based on tags | |
US20170155707A1 (en) | Multi-level data staging for low latency data access | |
Zhang et al. | An efficient publish/subscribe index for e-commerce databases | |
US8543596B1 (en) | Assigning blocks of a file of a distributed file system to processing units of a parallel database management system | |
US20130191523A1 (en) | Real-time analytics for large data sets | |
EP2843567B1 (en) | Computer-implemented method for improving query execution in relational databases normalized at level 4 and above | |
EP2605158A1 (en) | Mixed join of row and column database tables in native orientation | |
US9600501B1 (en) | Transmitting and receiving data between databases with different database processing capabilities | |
CN102725755B (zh) | 文件访问方法及系统 | |
US20090182767A1 (en) | Storing and retrieving objects on a computer network in a distributed database | |
US20140337287A1 (en) | Virtual repository management | |
CN104536959A (zh) | 一种Hadoop存取海量小文件的优化方法 | |
CN104850572A (zh) | HBase非主键索引构建与查询方法及其系统 | |
US8880463B2 (en) | Standardized framework for reporting archived legacy system data | |
US12050578B2 (en) | Distributed database management system with dynamically split B-Tree indexes | |
Terrovitis et al. | Efficient answering of set containment queries for skewed item distributions | |
CN102890678A (zh) | 一种基于格雷编码的分布式数据布局方法及查询方法 | |
EP3767486B1 (en) | Multi-record index structure for key-value stores | |
CN116541427B (zh) | 数据查询方法、装置、设备及存储介质 |
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 |