著录项信息
专利名称 | 海量数据信息索引系统和索引构建方法 |
申请号 | CN201210199729.7 | 申请日期 | 2012-06-14 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2012-11-14 | 公开/公告号 | CN102779160A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 中金数据系统有限公司 | 申请人地址 | 北京市大兴区北京经济技术开发区博兴八路1号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中金数据系统有限公司,烟台中金数据系统有限公司 | 当前权利人 | 中金数据系统有限公司,烟台中金数据系统有限公司 |
发明人 | 安旭;叶嘉明;陈德全 |
代理机构 | 北京三聚阳光知识产权代理有限公司 | 代理人 | 寇海侠 |
摘要
本发明涉及一种海量数据信息索引系统和构建方法,其包括,数据分发服务器机群,包括多台数据分发服务器,用于将需要创建的数据拆分并分发给创建数据索引服务器;创建数据索引服务器机群,包括多台创建数据索引服务器,接收数据分发服务器分发的数据并为数据创建索引;检索服务器机群,包括多台检索服务器,接收创建数据索引服务器创建的索引并对数据索引进行检索;合并检索结果服务器机群,包括多台合并检索结果服务器,接收检索条件,接收并合并检索服务器索出的结果。根据索引过程中需要完成的功能对服务器进行分配,避免抢资源;检索的过程中一旦出错,可根据出错原因快速定位出出错的服务器,便于维修维护,降低维修和使用成本。
海量数据信息索引系统和索引构建方法\n技术领域\n[0001] 本发明涉及一种数据索引系统和构建方法,尤其是一种海量数据信息索引系统和\n索引构建方法。\n背景技术\n[0002] 随着技术的进步和发展,数据量越来越大,尤其是云概念的出现,集中的数据量更\n加庞大。为了在浩如烟海的数据中快速找到需要的特定数据,索引有着重要的意义。\n[0003] 中国专利文献CN101576915B公开了一种分布式B+树索引系统及构建方法,具体,\n包括主服务器、事务服务器机群和索引服务机群和版本控制服务器;事务服务器机群包括\n多个事务服务器,索引服务器机群包括多个索引服务器;主服务器负责管理META数据,并\n对索引服务器机群进行负载平衡调度;事务服务器机群负责对分布式文件系统索引数据访\n问的事务控制;索引服务器机群负责管理和读写分布式文件系统的索引数据,有效地实现\n了并发环境下索引数据的事务功能。\n[0004] 上述专利文献中公开的索引技术只是将索引建立到一个或者多个索引库服务器\n中,建立索引和检索索引都在一个或者多个索引服务器中执行。建立索引任务和检索索引\n任务在一台或者多台的索引库中发生,可能会导致抢资源的问题,从而导致索引服务器资\n源不足,影响检索或者建立索引的效率。而且,检索的过程一旦出现问题,也无法判断实在\n检索的具体哪个环节出了问题,修复难度大。\n发明内容\n[0005] 为此,本发明所要解决的是索引功能在一个或者多个索引服务器中执行 带来的\n检索服务器资源不足和修复难度大的技术问题,提供一种海量数据信息索引系统和索引构\n建方法。\n[0006] 为解决上述技术问题,本发明采用的技术方案如下:\n[0007] 一种海量数据信息索引系统,包括:\n[0008] 数据分发服务器机群,包括多台数据分发服务器,用于将需要创建的数据拆分并\n分发;\n[0009] 创建数据索引服务器机群,包括多台创建数据索引服务器,各所述创建数据索引\n服务器分别接收所述数据分发服务器分发的数据并为所述数据创建索引;\n[0010] 检索服务器机群,包括多台检索服务器,接收所述创建数据索引服务器创建的所\n述索引并根据检索条件对数据索引进行检索;\n[0011] 合并检索结果服务器机群,包括多台合并检索结果服务器,接收检索条件,接收并\n合并所述检索服务器检出的结果。\n[0012] 每个所述检索服务器均包括一个备份区,用于备份该检索服务器检索出的数据。\n[0013] 还包括备份数据服务器机群,包括多台备份数据服务器,接收并备份所述数据分\n发服务器、所述创建数据索引服务器、所述检索服务器和所述合并检索结果服务器上的数\n据。\n[0014] 所述创建数据索引服务器创建的索引类型为倒排索引。\n[0015] 所述数据分发服务器存储有一个实现数据分发功能的分发文件,所述分发文件记\n录有所有创建数据索引服务器、检索服务器和合并检索结果服务器的位置和信息。\n[0016] 所述分发文件为XML文件。\n[0017] 同时,提供一种海量数据信息索引的构建方法,包括如下步骤:\n[0018] ①将检索用服务器按照功能划分为数据分发服务器、创建数据索引服务器、用于\n检索服务器和用于合并检索结果服务器,按照检索的功能的计算量 配备完成每一个功能\n的服务器数量;\n[0019] ②将需要建立索引的数据以文件的形式放置在数据分发服务器上;\n[0020] 运行建立索引脚本,按照创建数据索引服务器的数量将文件拆分,并分发到各个\n创建数据索引服务器;\n[0021] ③创建数据索引服务器接收文件,并为该文件建立索引,并和之前建立过的索引\n进行合并,最后将新建的索引传输到检索服务器上;\n[0022] ④检索条件发送到合并检索结果服务器;\n[0023] ⑤检索结果服务器将检索条件发送到所有检索服务器上;\n[0024] ⑥检索服务器接收检索条件并对已建立的索引进行检索,将检索结果返回给合并\n检索结果服务器;\n[0025] ⑦合并检索结果服务器接收到所有检索结果数据后进行数据合并,并将合并后的\n检索结果返回给检索用户。\n[0026] 所述步骤中还包括备份各个步骤中产生的数据的步骤。\n[0027] 所述步骤③中创建的索引为倒排索引。\n[0028] 所述步骤①中通过在数据分发服务器上存储有一个记录数据分发服务器、创建数\n据索引服务器、检索服务器和合并检索结果服务器位置信息的分发文件,实现各服务器功\n能的划分。\n[0029] 分发文件为XML文件,执行过程中,XML文件通过解析,将各个功能的信息通过\nSSH技术分发到XML文件上指定的服务器上。\n[0030] 所述各步骤之间通过http协议实现传输。\n[0031] 本发明的上述技术方案相比现有技术具有以下优点:\n[0032] 本发明的海量数据信息索引系统和方法,根据索引过程中需要完成的功能对服务\n器进行分配,配置不同的服务器用于完成不同检索功能,避免抢资源;同时,使得每台服务\n器的职责更加明确;可根据不同功能的特性对不同的服务器机群进行特定配置,便于提高\n检索效率;检索的过程中一旦出错, 可根据出错原因快速定位出出错的服务器,便于维修\n维护,降低维修和使用成本。\n附图说明\n[0033] 为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合\n附图,对本发明作进一步详细的说明,其中\n[0034] 图1为发明一个实施例的海量数据信息索引系统的结构示意图;\n[0035] 其中,附图标记表示为:1-数据分发服务器,2-创建数据索引服务器,3-检索服务\n器,4-合并检索结果服务器。\n具体实施方式\n[0036] 参见图1所示为本发明一个实施例的海量数据信息索引系统,包括,数据分发服\n务器机群,包括两台数据分发服务器1,用于将需要创建的数据拆分并分发给创建数据索引\n服务器2;\n[0037] 创建数据索引服务器机群,包括四台创建数据索引服务器2,接收所述数据分发服\n务器1分发的数据并为所述数据创建倒排索引;其中,倒排索引源于实际应用中需要根据\n属性的值来查找记录,这种索引表中的每一项都包括一个属性值和具有该属性值的各记录\n地址,由于不是由记录来确定属性值,而是由属性那个值来确定记录的位置,因而为倒排索\n引;\n[0038] 检索服务器机群,包括四台检索服务器3,接收所述创建数据索引服务器2创建的\n所述数据索引并根据检索条件对数据索引进行检索,每台所述检索服务器3均包括一个备\n份区,用于存储该检索服务器3检索出的数据;\n[0039] 合并检索结果服务器机群,包括两台合并检索结果服务器4,接收所述检索服务器\n3索出的结果并对所述结果进行合并。\n[0040] 作为上述实施例的一个变形,该系统还包括备份数据服务器机群,其包括两台备\n份数据服务器,接收所述数据分发服务器1、所述创建数据索引服务器2、所述检索服务器3\n和所述合并检索结果服务器4上的数据并备份,所述检索服务器3不具备备份功能,其他同\n上述实施例;同样能实现本发明 的目的,属于本发明的保护范围。\n[0041] 上述实施例中的XML文件可以为YAML(YAML Ain't Markup Language,意为YAML\n不是一种标记语言)文件或者JSON(英文全称为JavaScriptObject Notation,意为数据交\n换语言)文件。\n[0042] 本发明上述实施例的海量数据信息索引系统,可根据完成不同功能的需要的工作\n量的多少配备相应的服务器数量,保证资源利用最大化,便于提高检索效率;同时,不同功\n能由不同的服务器完成也避免了抢资源现象;检索的过程中一旦出错,可根据出错原因快\n速定位出出错的服务器,便于维修维护,降低维修和使用成本;而且,本发明中上述系统可\n根据检索的工作量动态增加相应功能的服务器,动态扩展性强。\n[0043] 同时本发明提供一种上述实施例的海量数据信息索引的构建方法,其包括如下步\n骤:\n[0044] ①在数据分发服务器1上存储有一个记录数据分发服务器1、创建数据索引服务\n器2、检索服务器3和合并检索结果服务器4位置信息的XML文件,将检索用服务器按照功\n能划分为数据分发服务器1、创建数据索引服务器2、用于检索服务器3和用于合并检索结\n果服务器4,按照检索的功能的计算量配备完成每一个功能的服务器数量;本实施例中,包\n括两台数据分发服务器1、四台创建数据索引服务器2、四台检索服务器3、两台合并检索结\n果服务器4和两台备份数据服务器;执行过程中,XML文件通过解析,将各个功能的信息通\n过SSH技术分发到XML文件上指定的服务器上;其中,XML,英文全称为Extensible Markup \nLanguage,意为可扩展标记语言,SSH,英文全称为Secure Shell意为建立在应用层和传输\n层基础上的安全协议;上述SSH可为现行任何一种传输协议代替,比如http传输协议,选\n用SSH相对简单、安全;\n[0045] ②将需要建立索引的数据以文件的形式放置在数据分发服务器1上;运行建立索\n引脚本,按照创建数据索引服务器2的数量将文件分开,并将每条数据通过“http”请求的\n方式分发到各个创建数据索引服务器2;其中,http, 英文全称为hypertext transport \nprotocol,意为超文本传送协议;其中,需要创建索引的数据进行格式化处理,具体是在数\n据分发服务器1上定义一个数据的构架,定义需要创建索引的数据的列信息(包括名称和\n类型),这其中包括一个ID属性,以区分每一个记录;上述http也可用现有技术中的任何一\n种传输协议代替,比如ftp;其中,ftp,英文全称为File TransferProtocol,意为文件传输\n协议;\n[0046] ③创建数据索引服务器2接收文件,并为该文件建立倒排索引,并和之前建立过\n的索引进行合并,最后将新建的索引通过“http”请求的方式传输到检索服务器3上;\n[0047] ④检索条件发送到合并检索结果服务器4,其中,需要检索的数据必须是格式化数\n据;\n[0048] ⑤合并检索结果服务器4将检索条件通过“http”请求的方式发送到所有检索服\n务器3上;\n[0049] ⑥检索服务器3接收检索条件并对已建立的索引进行检索,将检索结果返回给合\n并检索结果服务器4,同时将检索结果在检索服务器3上备份;\n[0050] ⑦合并检索结果服务器4接收到所有“http”响应的检索结果数据后进行数据合\n并,并将合并后的检索结果返回给检索用户。\n[0051] 作为上述方法的一个变形,任何一个服务器上的数据在发生改变时,均将发生改\n变的索引数据,通过“http”请求的方式传输到备份服务器上,以防止数据丢失。\n[0052] 下面结合一个具体的实施例对本发明的海量数据信息索引系统和构建方法进行\n详细说明:\n[0053] 以一个实际需要处理的文件举例,文件中含有100条数据,现在海量数据信息索\n引系统有五台创建数据索引服务器2,五台检索服务器3,一台数据分发服务器1和一台合\n并检索结果服务器4:\n[0054] 创建索引用户建立索引的具体过程如下:\n[0055] 需要将文件放置在数据分发服务器1上,然后在数据分发服务器1上进入程序放\n置根目录,并执行建立索引命令“shbin/distdaemon.shpost{放置文件位置}”。\n[0056] 数据分发服务器1会通过执行命令参数,找到该文件,并通过“索引拆分”模块,将\n这个文件拆分成为五份,每一份“索引数据块”都会含有20条数据。\n[0057] 当数据分发服务器1通过“索引拆分”模块将文件拆分完成后,会将五份“索引数\n据块”依次分发到五台创建数据索引服务器2上。\n[0058] 以单个创建数据索引服务器2为例(其余创建数据索引服务器2的处理方式一\n致),当其中一个创建数据索引服务器2接收到数据分发服务器1发送给它的“索引数据块”\n(其中含有20条数据)之后,会将该“索引数据块”根据之前定义的“架构”(schema)文件\n定义的列名和类型进行拆分,得到类似一个HASH(意为散列)形式的数组,比如schema文\n件定义第一列是文件名(filename)、第二列是文件大小(filesize),“索引数据快”得到的\n第一列是file01,第二列是1000M,那么经过数据拆分会得到一个数组“{[0]=>{‘filename\n’=>‘file01’,‘filesize’=>‘1000M’,[1]=>{…},…,[20]=>{…}}}”。\n[0059] 之后会将得到的这个hash形式的数组,通过倒排算法生成为“倒排数据索\n引”。如hash的数据格式是{‘001’=>{‘filename’=>‘file01’,‘filesize’=>‘1000\nM’},‘002’=>{‘filename’=>‘file02’‘filesize’, =>‘1000M’},…,’020’=>{‘filename’=>‘file20’‘filesi,ze’=>‘1000M’}},那么通过“倒排”完成后的格式应为{‘filename’=>{‘file01’=>{‘001’},‘fi\nle02’=>{‘002’},‘file20’=>{‘020’}},‘filesize’=>{‘1000M’=>{‘001’,‘002’‘020’, }},…}。\n[0060] 创建数据索引服务器2生成倒排索引后,经过“合并索引”可以将新建立的索引合\n并到已有的索引中。\n[0061] 最后将新建立的索引通过“http”协议的方式同步到检索服务器3中。\n[0062] 检索用户检索索引数据的具体过程如下:\n[0063] 检索用户通过向合并检索结果服务器4发送检索请求,比如检索用户发送检索\n文件大小(filesize)为1000M的所有文件。则用户会发送一个http://{merger-host}/\n{port}/{path}/{fn}?q=filesize%3A1000M的请求。\n[0064] 创建索引服务器接收到用户发送的请求后,将该请求分别发送给五台检索服务器\n3如:\n[0065] http://{slave-host}/{port}/{path}/{fn}?q=filesize%3A1000M。\n[0066] 以单个检索服务器3为例(其余检索服务器3的处理方式一致),接受到创建数据\n索引服务器2发送的请求后,通过解析请求获得filesize等于1000M的检索条件。\n[0067] 通过该条件到已存在的“倒排数据索引”中检索数据。比如会得到{‘001’=>{‘fi\nlename’=>‘file01’‘filesize’, =>‘1000M’},‘002’=>{‘filename’=>‘file02’‘filesize’, =>‘1000M’},’020’=>{‘filename’=>‘file20’,‘filesize’=>‘1000M’}}的结果,并将结果返回给合并检索结果服\n务器4。\n[0068] 合并检索结果服务器4得到五台检索服务器3返回的数据,将他们合并排序等。\n[0069] 合并完成后,将结果返回给客户,检索完成。\n[0070] 经过实际测试:\n[0071] 一台数据分发服务器1和三台创建数据索引服务器2,建5000万条数据索引,每条\n数据大概有20-30个数据特征,花费30分钟可以完成创建索引的工作;\n[0072] 一台合并检索结果服务器4、五台检索服务器3,共有一亿条左右的索引,一百个\n用户并发检索,检索条件包括检索范围,排序等复杂条件,平均响应在三秒以内。\n[0073] 显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对\n于所属领域的普通技术人员来说,在上述说明的基础上还可以做 出其它不同形式的变化\n或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化\n或变动仍处于本发明创造的保护范围之中。
法律信息
- 2019-10-25
专利权的转移
登记生效日: 2019.10.08
专利权人由中金数据系统有限公司变更为中金数据系统有限公司
地址由100176 北京市大兴区北京市北京经济技术开发区博兴八路1号变更为100176 北京市大兴区北京经济技术开发区博兴八路1号
专利权人变更为烟台中金数据系统有限公司
- 2016-02-03
- 2013-01-02
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201210199729.7
申请日: 2012.06.14
- 2012-11-14
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-03-14
|
2010-08-24
| | |
2
| |
2007-10-10
|
2006-04-06
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |