一种基于元数据图的元数据组织管理方法和系统与流程

文档序号:12034764阅读:186来源:国知局
一种基于元数据图的元数据组织管理方法和系统与流程

本发明属于计算机数据存储领域,更具体地,涉及一种基于元数据图的元数据组织管理方法和系统。



背景技术:

数据规模的不断增长给传统存储系统带来巨大的挑战,目前存储系统大多采取控制流与数据流分开的方式,并使用独立元数据服务器或集群提供元数据服务。尽管元数据只占整个数据空间0.1%~1%,但文件系统中50%~80%的访问是针对元数据,由此可以看出元数据的管理十分重要。

目前元数据服务器大多采用树形结构的命名空间来组织管理文件元数据,这种方式根据文件、目录之间的层级关系要求用户在精确路径下组织它们的文件。还有一些则使用关系型数据库来存储管理元数据,并通过索引提高元数据访问效率。但这些方法都忽略了文件数据之间潜在的联系,导致了元数据服务功能过于单一、扩展性低并且缺乏丰富有效的元数据查询方法。例如树形结构的命名空间中,我们必须使用精确的路径来定位文件,如果忘记具体路径必须依赖关键字做全局遍历才有可能找到我们想要的文件,但这种方法的开销太大而且准确率低。

同时随着大数据时代的快速发展,文件数据的规模不断扩大,海量数据之间表现出更为丰富和多样的关联关系,分析数据以及数据之间的关系也变得更为重要,人们迫切的希望存储系统也能够进行一些简单的数据挖掘与辅助分析并以此提供一些智能化的服务,但是传统存储系统中的元数据组织管理方式对数据的挖掘与分析也几乎没起到任何作用。

由此可见,现有技术存在元数据组织管理方法效率低、功能过于单一、扩展性低、智能化程度低、无法进行数据的挖掘与分析、无法实现智能化服务的技术问题。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于元数据图的元数据组织管理方法和系统,由此解决现有技术存在元数据组织管理方法效率低、功能过于单一、扩展性低、智能化程度低、无法进行数据的挖掘与分析、无法实现智能化服务的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种基于元数据图的元数据组织管理方法,包括:

(1)存储文件得到文件元数据,提取文件的语义信息,利用语义信息构建语义元数据;

(2)利用文件元数据和语义元数据在语义上的联系,构建元数据图;

(3)利用元数据图,进行元数据组织管理,提供智能化服务。

进一步的,步骤(1)包括:

(1-1)构建基于图模型的分布式文件系统,包括客户端和元数据服务器层,元数据服务器层包括namenode和graphnode;

(1-2)通过客户端存储文件得到文件元数据,将文件元数据存储在元数据服务器层,利用graphnode提取文件的语义信息。

进一步的,步骤(2)还包括利用文件元数据和语义元数据在语义上的联系,在graphnode构建元数据图。

进一步的,步骤(3)还包括graphnode利用元数据图,进行元数据组织管理,提供智能化服务。

进一步的,智能化服务包括:影响力分析、文件推荐和聚类分析。

进一步的,影响力分析利用元数据图,从元数据图中文件元数据的节点度与节点介数两个方面分析影响力,若文件元数据的节点度或节点介数越大,则说明文件元数据在元数据图中影响力大,文件元数据代表的文件资源是热点文件的可能性大。

优选的,本发明利用元数据图进行影响力分析,可用于发现热点文件资源,对热点资源如果能做预取处理,这将让存储系统具有更好的用户体验。

进一步的,文件推荐利用元数据图,利用相似文件的文件元数据在元数据图中的关系,快速定位到相似文件进行推荐。

优选的,本发明利用元数据图进行文件推荐,用于系统中文件的自动推荐,不过目前传统存储系统还并不支持文件的自动推荐,文件推荐过程中最为关键的步骤就是计算文件语义内容之间的相似度,可是在计算相似度时,这些相似度较低的文件却占用了大量的计算资源,本发明利用相似文件的文件元数据在元数据图中的关系,快速定位到相似文件进行推荐,避免这些文件相似度的计算,提升文件推荐的效率。

进一步的,聚类分析使用gn算法与k-means算法,其中gn算法利用元数据图的图结构直接进行聚类划分,通过将元数据图中的文件元数据分配到不同的社群中,完成对文件的聚类;k-means算法利用元数据图中的语义信息建立文件的空间向量模型进行聚类分析。

优选的,传统存储系统在管理文件数据时没有利用语义信息,因此实现聚类分析在文件数据预处理需要重新获取文件数据中的内容,并提取其中的关键语义信息,然后才能建立空间向量模型。本发明利用元数据图中已经含有丰富的语义信息,因此在文件预处理时,可以直接使用元数据图中的语义信息,这将减少文件预处理的时间,提升聚类分析的效率。

按照本发明的另一方面,提供了一种基于元数据图的元数据组织管理系统,包括:

获取数据模块,用于存储文件得到文件元数据,提取文件的语义信息,利用语义信息构建语义元数据;

构建元数据图模块,用于利用文件元数据和语义元数据在语义上的联系,构建元数据图;

元数据组织管理模块,用于利用元数据图,进行元数据组织管理,提供智能化服务。

进一步的,获取数据模块包括:

第一子模块,用于构建基于图模型的分布式文件系统,包括客户端和元数据服务器层,元数据服务器层包括namenode和graphnode;

第二子模块,用于通过客户端存储文件得到文件元数据,将文件元数据存储在元数据服务器层,利用graphnode提取文件的语义信息。

进一步的,构建元数据图模块还包括利用文件元数据和语义元数据在语义上的联系,在graphnode构建元数据图。

进一步的,元数据组织管理模块还包括graphnode利用元数据图,进行元数据组织管理,提供智能化服务。

进一步的,智能化服务包括:影响力分析、文件推荐和聚类分析。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明构建元数据图,利用元数据图丰富的文件元数据和语义信息进行元数据组织管理,提供智能化服务。本发明利用元数据图进行元数据组织管理效率高、功能丰富、扩展性强、智能化程度高、可以进行数据的挖掘与分析、实现智能化服务。

(2)优选的,本发明构建基于图模型的分布式文件系统,包括用于客户端和元数据服务器层,元数据服务器层包括名字节点和图节点(graphnode),graphnode是新增的元数据服务器,用于提取文件的语义信息,进而根据文件数据之间在语义上的联系组织成元数据图,提供更为丰富的智能化服务。

(3)优选的,本发明利用元数据图进行影响力分析,可用于发现热点文件资源,这将让存储系统具有更好的用户体验。本发明利用元数据图进行文件推荐,提升文件推荐的效率。本发明利用元数据图中已经含有丰富的语义信息,因此在文件预处理时,可以直接使用元数据图中的语义信息,这将减少文件预处理的时间,提升聚类分析的效率。

附图说明

图1是本发明实施例提供的一种基于元数据图的元数据组织管理方法的流程图;

图2是本发明实施例提供的g-hdfs系统结构图;

图3是本发明实施例提供的元数据服务器graphnode组成示意图;

图4是本发明实施例提供的g-hdfs系统中节点之间通信协议示意图;

图5是本发明实施例提供的元数据同步流程图;

图6是本发明实施例提供的元数据图构建流程图;

图7是本发明实施例提供的元数据图结构示意图;

图8是本发明实施例提供的聚类分析流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,一种基于元数据图的元数据组织管理方法,包括:

(1)存储文件得到文件元数据,提取文件的语义信息,利用语义信息构建语义元数据;

(2)利用文件元数据和语义元数据在语义上的联系,构建元数据图;

(3)利用元数据图,进行元数据组织管理,提供智能化服务。

如图2所示,g-hdfs(graphnode-hadoopdistributefilesystem,基于图模型的分布式文件系统)是在hdfs(hadoopdistributefilesystem,分布式文件系统)的基础上改造设计的,g-hdfs中增加一个用于提供智能化服务的元数据服务器graphnode。

其中client(客户端)为系统入口,用户根据客户端实现文件元数据以及数据的查询更新。在元数据服务层,名字节点(namenode)与图节点(graphnode)为对等的两个元数据服务器,它们同时对外提供服务,并且实现了元数据的同步。在数据存储层,datanode用来存储文件数据,datanode之间相互连接实现数据的迁移与复制。数据存储层和元数据服务层之间通过存储设备发送心跳报告自身状态;客户端和元数据服务层之间连接实现了元数据查询更新,客户端和数据存储层之间连接实现了数据查询更新。

其中元数据服务器graphnode的组成结构如图3所示,其中语义提取器用于文件数据中语义信息的提取,g-hdfs系统可以根据业务需求的不同制定不同的语义提取规则。本发明主要用于海量文本文件的存储,本发明的语义提取器对于文本文件提取文件中的关键词作为语义信息。图数据库采用的是neo4j,并采用neo4j高可用架构。

由于g-hdfs系统中增加了一个全新的元数据服务器graphnode,因此需要对传统hdfs系统中的通信协议进行改造,改造后的通信协议如图4所示。

其中gnprotocl与newclientprotocol协议是新增的通信协议。gnprotocol协议用于元数据服务器namenode与graphnode之间的通信,主要用于元数据服务器状态的通知以及元数据的同步;newclientprotocol协议用于客户端与元数据服务器graphnode之间的通信,主要用于用户调用graphnode提供的智能化服务。

clientdatanode协议实现了客户端与datanode之间的通信,clientprotocol协议实现了客户端通namenode之间的通信,datanodeprotocol实现了元数据服务器通datanode之间的通信,interdatanodeprotocol实现了datanode之间的通信,datanode1、datanode2、datanode3表示多个存储设备。

虽然graphnode和namenode在元数据命名空间组织方式上都不同,但本质上它们都是用来存储和检索元数据的,客户端通过元数据信息才能最终定位数据,这其中最重要的就是文件元数据inodefile。所以对于文件元数据graphnode和namenode之间必须保持同步。

由于graphnode与namenode在元数据命名空间结构以及元数据类型上的不同,所以在进行元数据同步之前需要判断当前操作是否对graphnode与namenode有效。例如graphnode在元数据图中对图中节点间的关系进行的相关操作,这类操作对namenode是无意义,同时元数据图中没有目录这一概念,所以namenode中有关目录元数据inodedirectory的操作对于graphnode也是无效的,下表1中给出了具体细节。

表1graphnode与namenode中元数据操作对比

为保证系统中graphnode与namenode之间文件元数据的一致性,任意元数据服务节点在接收到客户端发送过来的操作请求之后都会通过graphnode与namenode之间的通信接口gnprotocl通知另外一个元数据服务节点,接收到通知的元数据服务节点则会判断当前操作是否有效,如果有效则执行相关操作,元数据同步的具体流程如图5所示。

元数据图的构建流程如图6所示,下面对元数据图中关系的构建采用三元表达式(实体1,实体2,语义)或者二元表达式(实体,语义)来简单说明,其中表达式中的“语义”在元数据图中代表语义节点,“实体”代表元数据节点。

首先数据的导入是系统通过namenode与datanode接收文件数据,接收完成之后,namenode将文件元数据inodefile同步给graphnode,graphnode通过文件元数据信息读取文件数据提取其中的语义信息,语义信息提取完成,graphnode会将文件元数据inodefile与语义元数据semantic发送给图数据库构建元数据图。

根据提取出的语义信息,当两个文件file1与file2都是有关同一个语义,其中file1的文件元数据存储在元数据节点inodefile1中,file2的文件元数据存储在元数据节点inodefile2中,而语义元数据存储在语义节点tag1中,则在元数据图中就存在两个二元关系(inodefile1,tag1)、(inodefile2,tag1)和一个三元关系(inodefile1,inodefile2,tag1),二元关系能体现出文件数据所具备的语义内容,三元关系则反应了文件数据之间在语义上的联系。最后存储在图数据库neo4j中的结构就如图7的file1、file2、tag1所示。

其中file1,file2...filen代表文件元数据,tag1,tag2...tagn代表语义元数据,建立一个语义信息和一个文件元数据之间的二元关系,建立一个语义信息和两个文件元数据之间的三元关系,利用二元关系和三元关系构建元数据图。

为了让g-hdfs系统能够提供更为丰富的智能化服务,元数据服务器graphnode中提供了影响力分析、文件推荐以及聚类分析这三种智能化服务。

其中影响力分析可用于发现热点文件资源,对热点资源如果能做预取处理,这将让存储系统具有更好的用户体验。

本系统中利用graphnode中的元数据图从元数据图中的节点度与节点介数两个方面来计算分析文件元数据节点的重要性,若文件元数据节点的度或介数值越大,则说明该元数据节点在元数据图中越重要,它所代表的文件资源是热点文件的可能性也更大。

计算文件元数据节点的度与介数的过程,具体如下:

(1)计算文件元数据节点的度或介数;

(2)获取所有与目标文件元数据节点直连的语义元数据节点;

(3)计算所有直接语义元数据节点的度或介数;

(4)统计目标文件元数据节点以及直连语义元数据节点的度或介数的总和,然后计算平均值;

(5)根据平均值取topn作为热点文件资源。

文件推荐用于系统中文件的自动推荐。推荐是数据挖掘中一个非常热门的领域,其目的是通过信息的过滤给用户推荐可能感兴趣的文件数据,可以极大提升文件数据的利用价值。不过目前传统存储系统还并不支持文件的自动推荐。

文件推荐过程中最为关键的步骤就是计算文件语义内容之间的相似度,传统存储系统在组织管理文件时忽略了文件数据之间在语义内容上的联系,所以在做文件推荐时需要计算其它所有文件与目标文件的相似度。

但实际情况却是文件推荐时只会选择和目标文件相似度较高的文件进行推荐,大量相似度较低的文件是没有推荐价值的。可是在计算相似度时,这些相似度较低的文件却占用了大量的计算资源,如果能避免这些文件相似度的计算,将提升文件推荐的效率。

元数据服务器graphnode中元数据根据文件数据之间在语义内容上的联系构建成元数据图,所以相似文件的元数据节点在元数据图中一定是有通路的。利用相似文件在元数据图中的这一特性,在推荐过程中计算文件相似度时,就能通过元数据节点之间的关系快速定位到潜在可能相似的文件,相当于根据语义内容之间的相关性提前做了一遍文件过滤,这样就减少了文件相似度的计算量,避免了大量的无效计算,提升了推荐的效率。具体推荐流程如下:

(1)目标文件元数据节点为起点,采用深度遍历或者广度遍历的方式在元数据图中获取与目标文件元数据节点有通路的元数据节点;

(2)获取到所有与目标文件的元数据节点有联系的元数据节点之后,生成这些元数据节点所代表文件的空间向量;

(3)使用空间向量计算文件相似度,取topn为推荐结果。

聚类分析模块会对系统所存储文件进行聚类分析。该模块分别使用gn算法与k-means算法。其中gn算法利用元数据图的图结构直接进行聚类划分,通过将元数据图中的元数据节点分配到不同的社群中,以此来完成对文件的聚类;k-means算法利用元数据图中语义节点中保存的语义信息建立文件的空间向量模型进行聚类分析。

元数据服务器graphnode中分别使用k-means算法以及gn算法实现了文本文件的聚类分析,并且根据元数据图中丰富的语义信息以及节点之间的关系,对所采取的算法进行了相关的优化。聚类分析具体流程如图8所示。

使用k-means算法实现本文聚类,其过程主要可以分为文件数据预处理和k-means算法迭代计算这两个步骤。其中文件数据预处理过程是根据文件数据中的信息,经过分词以及关键特征选取等处理之后,建立文件的空间向量。这一步完成之后才能用时k-means算法进行迭代计算。

传统存储系统在管理文件数据时没有利用语义信息,因此实现k-means聚类分析在文件数据预处理需要重新获取文件数据中的内容,并提取其中的关键语义信息,然后才能建立空间向量模型。graphnode由于元数据图中已经含有丰富的语义信息,因此在文件预处理时,可以直接使用元数据图中的语义信息,这将减少文件预处理的时间,提升k-means聚类分析的效率。

gn聚类算法是一种分裂聚类算法,其原理是通过不断去除图中介数最大的边将图进行划分,以此达到对图中节点的聚类效果。对于如何评定聚类结果的好坏,这里需要引入模块度的概念,定义如下所示:

在图g=(v,e)中,假定经过聚类划分之后图g被划分成n个子图,其中eij表示子图i与子图j之间的边与图中所有边的比例,ai表示与子图i中的节点相连的边与图中所有边的比例,现实中q值一般在0.3到0.7的范围区间,q值越接近1说明对图聚类的效果越好。

使用gn算法聚类过程首先将元数据图看成一张完整的图,计算图中所有边的介数,并删除介数最大的边,如果删除这条边之后,有新的子图被划分出来,就需要使用模块度计算公式来计算此时的模块度q,同时记录这次聚类划分之后图的结构,如果没有新的子图被划分出来,就无需计算模块度q。然后重新计算图中剩余所有边的介数,并继续删除介数最大的边,直到图中所有的边都被删除。最后选择模块度q最大时的图结构作为最终聚类结果。

传统gn算法执行完毕时会删除图中所有的边,并且记录每一次分裂后的模块度q与图结构,最终选择模块度q值最大时的图结构作为输出结果。但实际情况是,gn算法执行过程中,模块度q的变化趋势是先上升后下降。

gn算法在执行过程中,模块度q值将先增大,到达峰值之后再减小。但是模块度q下降过程中子图划分的结果对最终的聚类结果是无意义的,如果能在模块度q到达最大值时终止gn算法,就可以避免聚类过程中的无效划分。因此本文对gn算法进行优化,使用模块度q的增量δq作为算法终止标志,当δq小于0时停止划分,这样就能减少划分的次数,提升算法的效率。

具体聚类流程如下:

(1)聚类类型选择,其中可以选择常见的k-means聚类算法,也可以选择更适合元数据图图结构的gn聚类算法;

(2)聚类迭代计算;

(3)迭代计算终止,聚类完成。

步骤(1)中若是选择常见的k-means算法,则步骤(2)中包含子步骤:

(2.1)从元数据图中获取所有语义节点的语义信息;

(2.2)根据元数据图中节点间的关系以及语义信息,生成对应文件的空间向量模型;

(2.3)随机生成k个中心点,并根据空间向量模型之间的相似度判断当前文件属于那个中心点;

(2.4)更新中心点,如果迭代终止或者中心点不在变化,则进去步骤(3),否则进入步骤(2.3)。

步骤(1)中选择gn算法,则步骤(2)中包含以下步骤:

(2.1)初始化模块度增量δq=0;

(2.2)计算元数据图中所有边的介数值,并删除介数值最大的边;

(2.3)计算此时图的模块度q,并计算模块度增量δq,若δq小于0则进入步骤(3),否则进入步骤(2.2)。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1