CN104063487B - 基于关系型数据库及k‑d树索引的文件数据管理方法 - Google Patents

基于关系型数据库及k‑d树索引的文件数据管理方法 Download PDF

Info

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
Application number
CN201410316850.2A
Other languages
English (en)
Other versions
CN104063487A (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 University ZJU
Original Assignee
Zhejiang University ZJU
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 University ZJU filed Critical Zhejiang University ZJU
Priority to CN201410316850.2A priority Critical patent/CN104063487B/zh
Publication of CN104063487A publication Critical patent/CN104063487A/zh
Application granted granted Critical
Publication of CN104063487B publication Critical patent/CN104063487B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational 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树索引的文件数据管理方法
技术领域
本发明涉及海量文件数据的管理方法,尤其涉及一种基于关系型数据库及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)同样的处理,直到所有元数据信息按照维度全部载入到多维检索树中,最终得到平衡态的多维检索树。
CN201410316850.2A 2014-07-03 2014-07-03 基于关系型数据库及k‑d树索引的文件数据管理方法 Active CN104063487B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254166A1 (en) * 2011-03-30 2012-10-04 Google Inc. Signature Detection in E-Mails

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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&#39;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