一种基于云平台的元数据索引模型及方法
【专利摘要】本发明公开一种基于云平台的元数据索引模型及方法,模型包括:全量索引模块,主要解决对遗留数据和迁移数据建立全量索引的问题;增量索引模块,主要解决审核通过的元数据以增量的方式加入索引库;索引管理模块,用于对索引的基本管理需求。方法通过构建提供元数据建立索引的一套SaaS服务。租户通过迁移或者注册流程存储元数据到元数据存储中心,对迁移的元数据采用建立全量索引的方式,对通过注册流程存储的元数据,调用建立增量索引接口,以增量的方式向索引库添加数据;建立索引使用分布式检索工具Elasticsearch完成。本发明建立索引速度具有明显提升,能够达到实时搜索,具有良好的可扩展性。
【专利说明】—种基于云平台的元数据索引模型及方法
[0001]
【技术领域】
[0002]本发明涉及一种基于云平台的元数据索引模型及方法,属于信息处理【技术领域】。【背景技术】
[0003]元数据是描述资源信息的结构数据,随着信息化程度的不断提高,行业相关的元数据种类也越来越多,元数据的数据量也越来越庞大,对元数据快速建立索引的需求也越来越迫切。通过建立一套云平台,为租户提供建立索引的SaaS服务,多个客户可以共用同一套系统,节约运行与维护成本,也有利于数据的集中。
[0004]目前常见的搜索方案有:使用搜索引擎API构建站内搜索,阿里开放云搜索,使用开源搜索引擎工具如Lucene、Solr构建索引等。使用搜索引擎提供的API接口,虽然使用方便,但是不够灵活,也不能良好的扩展;阿里开放云搜索,它是针对结构化数据的云端搜索服务,具有易扩展,可定制,实时性等特性,但是不能满足多种类型元数据配置的需求,且上传的元数据,没有经过审核流程,不能保证数据的完整性和正确性;使用Lucene创建索引已经在现有元数据建立索引中广泛采用,但是Lucene搜索工具本身不是建立在分布式之上,不支持多租户机制,建立索引数据隔离机制复杂,建立索引速度相对较慢,对于Solr搜索工具虽然支持分布式,易于扩展,但是同样不支持多租户机制。
【发明内容】
[0005]发明目的:针对现有技术中存在的问题,本发明公开一种基于云平台的元数据索引模型及方法。本发明充分利用云计算中的SaaS思想为多租户提供建立索引的服务、支持针对多种类型元数据的配置、建立索引速度有明显提升、实时性好、易扩展。
[0006]技术方案:一种基于云平台的元数据索引模型,应用了分布式索引工具Elasticsearch的特性,与现有元数据建立索引方案结合,为多个租户提供建立索引服务,租户之间的索引数据保持独立,每个租户拥有不同类型的元数据对应的索引类型,租户划分与权限赋予由用户圈组负责。模型主要涉及三个功能模块:全量索引创建、增量索引创建与索引管理。索引管理模块提供索引管理功能,管理粒度分为三层,分别为用户层、索引层、索引类型层,支持用户、索引、索引类型的查询,支持索引、索引类型的删除,支持索引权限的变更。全量索引模块用于提升建立索引的速度,由于迁移数据与遗留数据的数据量很大,对元数据建立索引的过程中,解析元数据与建立索引步骤比较耗时,针对此种情况需要通过建立合理的批量提交建立索引请求机制,来保证整个流程的效率。模块具体介绍如下:
建立元数据全量索引模块,在租户通过权限验证后,提取租户在元数据存储库中存储的迁移元数据,采用批量方式对元数据建立全量索引。
[0007]建立元数据增量索引模块,在租户通过权限验证后,获得审核通过的元数据ID,当索引文件中不存在该元数据信息时,增量式的把数据存入租户对应的索引文件中。[0008]索引管理模块,用于显示索引库中索引的基本信息,包括:以及租户对应的索引和类型,索引的权限控制,索引的存储管理。
[0009]一种基于云平台对元数据建立索引方法,包括以下步骤:
步骤1,首先需要判断租户的权限,使用用户圈组提供的接口验证租户权限,若通过验证,则表明租户拥有租户空间的使用权限,可以在租户空间中建立索引。其中租户空间为逻辑隔离,租户索引数据被存放在一个索引库中。进入步骤2:
步骤2,依据租户信息提取出租户对应元数据存储中心存储的标识信息;
步骤3,判断租户当前执行的操作是否针对迁移或者遗留的元数据,如果是则转向步骤4,如果为通过元数据审核流程审核通过后的元数据则转向步骤9 ;
步骤4,建立元数据全量索引,主要包括建立索引库,提取索引配置项与建立索引类型Mapping信息,具体步骤如下:
步骤4-1,向Elasticsearch发送建立空索引库指令,在租户空间建立一个空索引库。调用索引管理模块接口添加租户与索引库关联信息,转向步骤4-2;
步骤4-2,租户或者系统管理员可以填写索引配置文件,用以定义索引建立方式和元数据解析,每一种类型的元数据对应一种类型的索引配置文件。从索引配置文件中提取索引配置项,包括分词器配置信息、是否存储、是否分词、索引类型、索引名称等,转向步骤4-3 ;步骤4-3,依据步骤4-2提取出的索引配置项,构建指定索引类型的Mapping, Mapping相当于数据库中表结构,规定了索引的结构,即索引名称字段对应的分词信息、索引分词器、搜索分词器、存储信息、索引类型等。转向步骤5;
步骤5,从索引配置文件中提取出元数据解析路径,即XPATH配置项,转向步骤6 ;
步骤6,依据XPATH从元数据存储中心中解析出对应的数据,转向步骤7 ;
步骤7,将步骤6解析出的数据匹配到对应的Mapping中,形成一条索引数据,转向步骤
8 ;
步骤8,采用分层思想建立批量,第一层以租户为单位,第二层以元数据类型为单位,每次循环提交一次批量,执行成功后转向步骤10 ;
步骤9,建立增量索引,主要包括提取增量ID、判断索引与类型信息,增量添加索引数据,具体步骤如下:
步骤9-1,租户注册的元数据在元数据存储中心中拥有唯一 ID,提取ID ;
步骤9-2,判断租户建立的索引中是否存在与此ID冲突的数据,若存在则转向步骤9-2-1,否则转向步骤9-2-2 ;
步骤9-2-1,依据元数据唯一 ID号,删除索引中对应的数据,删除成功后转向步骤9-2-2 ;
步骤9-2-2,查询到对应的索引类型的Mapping信息,转向步骤5 ;
步骤10,结束。
[0010]有益效果:与现有技术相比,本发明提供的基于云平台的元数据索引模型与方法,利用了分布式搜索引擎工具构建了一个提供建立索引的SaaS服务,通过使用此SaaS服务,企业或部门无需重新开发一套类似系统,节约了开发、运行、维护成本,促进了组织机构的跨地域合作,有利于数据信息实现共享;只需要修改索引配置文件便可以灵活添加新生元数据类型的支持;能够扩展索引服务器集群来支持海量数据的建立索引需求;达到真正的实时检索需求;利用Elasticsearch与元数据的特性,采用以租户、元数据类型为单位划分两层建立批量索引,使建立索引的速度具有明显提高;提供索引管理功能,对索引权限进行控制,并且方便查看与管理索引信息。
【专利附图】
【附图说明】
[0011]图1为本发明的基于云平台对元数据建立索引方法的流程图;
图2为本发明的索引数据隔离机制示意图;
图3为本发明的架构设计示意图。
【具体实施方式】
[0012]下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0013]如图1所示,为本发明实施例的基于云平台对元数据建立索引的方法,例如存在五种类型的元数据,租户A与租户B各需要创建两个索引,其中每个索引包含的类型也不相同,在开始创建索引流程前,需要配置元数据的解析配置文件,在租户创建索引时,系统自动匹配租户对应的元数据类型,并依据涉及的元数据类型创建对应类型的索引,此方法具体包含以下步骤:
步骤1,首先通过用户圈组提供的权限认证机制判断租户的权限,用户圈规定租户空间,并设置一个圈管理员,圈管理员可以控制租户空间使用者数量与用户组权限设定,用户圈包含若干用户组,用户组对应权限,包括:建立索引,管理索引,查看索引等权限。若租户拥有租户空间的创立索引权限,可以在租户空间中建立索引,若租户拥有租户空间的管理权限,则可以对租户空间中的索引文件进行管理,若租户拥有查看索引权限,租户可以查看索引中的记录。其中租户空间为逻辑隔离,租户索引数据被存放在一个索引库中。若租户获得租户空间创建索引权限,进入步骤2:
步骤2,依据租户信息查询出租户对应元数据存储中心存储的标识信息,使用该标识信息可以从元数据存储中心提取出租户对应的元数据;
步骤3,判断租户当前执行的操作是否针对迁移或者遗留的元数据,如果是则转向步骤4,如果为通过元数据审核流程审核通过后的元数据则转向步骤9 ;
步骤4,建立元数据全量索引,主要包括建立索引库,提取索引配置项与建立索引类型Mapping信息等,具体步骤如下:
步骤4-1,向Elasticsearch发送建立空索引库指令,在租户空间建立一个空索引库。调用索引管理模块接口添加租户与索引库关联信息,转向步骤4-2 ;
步骤4-2,租户或者系统管理员填写索引配置文件,每种类型的元数据都需要有一个对应类型的索引配置文件,文件中定义了索引建立方式和元数据解析路径。从索引配置文件中提取Mapping配置项,包括分词器配置信息、是否存储、是否分词、索引类型、索引名称等,转向步骤4-3 ;
步骤4-3,依据步骤4-2提取出的Mapping配置项,构建指定索引类型的Mapping,Mapping相当于数据库中表结构,规定了索引的结构,即索引名称字段对应的分词信息、索引分词器、搜索分词器、存储信息、索引类型等。转向步骤5 ;
步骤5,从索引配置文件中提取出元数据解析路径,即XPATH配置项,转向步骤6 ;
步骤6,若元数据存在Oracle的XMLTYPE项中,则使用extract函数利用XPATH解析出对应的数据,若元数据存储在其他数据库或者文件系统中,则作相应的扩展,转向步骤7 ;步骤7,将步骤6解析出的数据匹配到对应的Mapping中,形成一条索引数据,转向步骤
8 ;
步骤8,全量索引是对元数据存储中心中所有元数据建立索引,元数据存储中心存储着多个租户的多种类型元数据,由于解析元数据比较耗时,所以此处采用分层思想对索引数据建立批量,第一层以租户为单位,第二层以元数据类型为单位,每次循环提交一次批量,在解析元数据时不会影响到索引数据导入到Elasticsearch中,执行成功后转向步骤10 ;步骤9,建立增量索引,主要包括提取增量ID、判断索引与类型信息,增量添加索引数据,具体步骤如下:
步骤9-1,租户注册的元数据在元数据存储中心中拥有唯一 ID,提取ID ;
步骤9-2,判断租户建立的索引中是否存在与此ID冲突的数据,若存在则转向步骤9-2-1,否则转向步骤9-2-2 ;
步骤9-2-1,依据元数据唯一 ID号,删除索引中对应的数据,删除成功后转向步骤9-2-2 ;
步骤9-2-2,查询到对应的索引类型的Mapping信息,转向步骤5 ;
步骤10,结束。
[0014]如图2为本发明实施例的基于云平台对元数据建立索引的索引结构示意图,租户建立的索引在索引库中是独立存放的,依据Elasticsearch检索工具的特性,租户可以建立多个索引,每个索引可以拥有多种索引类型。不同类型的资源对应着不同类型的元数据,每一种类型的元数据对应一种类型的索引类型。
[0015]如图3为本发明实施的架构示意图,租户由用户圈组创建,并赋予权限;租户可以向元数据注册中心注册或者迁移元数据;租户调用建立索引的SaaS服务,需要向用户圈组请求租户验证;索引服务器支撑建立索引与搜索服务,并且是可扩展的;租户空间存放着索引文件,不同租户的索引数据是逻辑隔离的。
【权利要求】
1.一种基于云平台的元数据索引模型,其特征在于:所述模型应用了分布式索引工具Elasticsearch的特性,与元数据建立索引方案结合,为多个租户提供建立索引服务,租户之间的索引数据保持独立,每个租户拥有不同类型的元数据对应的索引类型,租户划分与权限赋予由用户圈组负责;模型主要包括三个功能模块:全量索引创建、增量索引创建与索引管理; 索引管理模块提供索引管理功能,管理粒度分为三层,分别为用户层、索引层、索引类型层,支持用户、索引、索引类型的查询,支持索引、索引类型的删除,支持索引权限的变更;全量索引模块用于提升建立索引的速度,通过建立合理的批量提交建立索引请求机制,来保证整个流程的效率; 建立元数据全量索引模块,在租户通过权限验证后,提取租户在元数据存储库中存储的迁移元数据,采用批量方式对元数据建立全量索引; 建立元数据增量索引模块,在租户通过权限验证后,获得审核通过的元数据ID,当索引文件中不存在该元数据信息时,增量式的把数据存入租户对应的索引文件中; 索引管理模块,用于显示索引库中索引的基本信息,包括:以及租户对应的索引和类型,索引的权限控制,索引的存储管理。
2.一种基于云平台对元数据建立索引的方法,其特征在于,包括以下步骤: 步骤1,首先需要判断租户的权限,使用用户圈组提供的接口验证租户权限,若通过验证,则表明租户拥有租户空间的使用权限,可以在租户空间中建立索引;其中租户空间为逻辑隔离,租户索引数据被存放在一个索引库中;进入步骤2: 步骤2,依据租户信息提取出租户对应元数据存储中心存储的标识信息; 步骤3,判断租户当 前执行的操作是否针对迁移或者遗留的元数据,如果是则转向步骤4,如果为通过元数据审核流程审核通过后的元数据则转向步骤9 ; 步骤4,建立元数据全量索引,主要包括建立索引库,提取索引配置项与建立索引类型Mapping 信息; 步骤5,从索引配置文件中提取出元数据解析路径,即XPATH配置项,转向步骤6 ; 步骤6,依据XPATH从元数据存储中心中解析出对应的数据,转向步骤7 ; 步骤7,将步骤6解析出的数据匹配到对应的Mapping中,形成一条索引数据,转向步骤8 ; 步骤8,采用分层思想建立批量,第一层以租户为单位,第二层以元数据类型为单位,每次循环提交一次批量,执行成功后转向步骤10 ; 步骤9,建立增量索引,主要包括提取增量ID、判断索引与类型信息,增量添加索引数据; 步骤10,结束。
3.如权利要求1所述的基于云平台对元数据建立索引的方法,其特征在于,步骤4中建立元数据全量索引具体步骤如下: 步骤4-1,向Elasticsearch发送建立空索引库指令,在租户空间建立一个空索引库。
4.调用索引管理模块接口添加租户与索引库关联信息,转向步骤4-2; 步骤4-2,租户或者管理员可以填写索引配置文件,用以定义索引建立方式和元数据解析,每一种类型的元数据对应一种类型的索引配置文件;从索引配置文件中提取索引配置项,包括分词器配置信息、是否存储、是否分词、索引类型、索引名称等,转向步骤4-3; 步骤4-3,依据步骤4-2提取出的索引配置项,依据特定的规则,构建立指定索引类型的Mapping, Mapping相当于数据库中表结构,规定了索引的结构,即索引名称字段对应的分词信息、索引分词器、搜索分词器、存储信息、索引类型等;转向步骤5。
5.如权利要求1所述的基于云平台对元数据建立索引的方法,其特征在于,步骤9的具体步骤如下: 步骤9-1,租户注册的元数据在元数据存储中心中拥有唯一 ID,提取ID ; 步骤9-2,判断租户建立的索引中是否存在与此ID冲突的数据,若存在则转向步骤9-2-1,否则转向步骤9-2-2 ; 步骤9-2-1,依据元数据唯一 ID 号,删除索引中对应的数据,删除成功后转向步骤9-2-2 ; 步骤9-2-2,查询到对应的索引类型的Mapping信息,转向步骤5。
【文档编号】G06F17/30GK103744960SQ201410004932
【公开日】2014年4月23日 申请日期:2014年1月6日 优先权日:2014年1月6日
【发明者】冯钧, 姜康, 唐志贤, 万定生, 朱跃龙, 李士进, 朱康康, 冯读庆, 许潇, 刘子源, 陈焕霖 申请人:河海大学