法律状态公告日
法律状态信息
法律状态
2017-02-15
授权
授权
2014-10-22
实质审查的生效 IPC(主分类):G06F17/30 申请日:20140703
实质审查的生效
2014-09-24
公开
公开
技术领域
本发明涉及海量文件数据的管理方法,尤其涉及一种基于关系型数据库及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)以业务背景为例,调研文件资料所需要进行检索的字段文档,在元数据管理服务器端构建关系型数据库,对文件元数据库表结构进行设计,设计字段原则是每一个字段均与业务需求相关,其中文件存储路径,是否删除,上传时间是必须字段。
(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树中。
对已经上传的结果进行模糊检索和范围检索,并且记录检索单位文档所需的平均时间,实验结果如下:
本实施例利用关系型数据库结合多维检索树的文件管理方式,管理业务办理中的海量的文件资料。通过对范围查询和模糊查询的区分大大提高了文件检索的可适用范围以及检索速度,有一定的应用价值。
机译: 基于B-树索引向量的Web日志高速搜索方法,用于巨大的Web日志挖掘和Web攻击检测以及基于B树的索引日志
机译: 基于B树索引向量的Web日志高速搜索,大规模Web日志挖掘和Web攻击检测的方法以及基于B树的索引日志处理器
机译: 用于基于前缀树的索引的索引的方法和装置,及其记录介质