海量数据范例6篇

前言:中文期刊网精心挑选了海量数据范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

海量数据

海量数据范文1

当前,空间信息技术发展迅猛,以空间数据为主的空间信息挖掘和应用成为现代人类生产生活的一个重要特征。特别是遥感影像数据,由于其具有获取方便、周期短、信息量大等特点而成为空间数据的重要组成部分。然而,由于遥感数据的数据量十分庞大,特别是对于具有不同来源、不同分辨率与不同时相的数据,其存储与管理均十分困难,且由于其本身具有的稀缺性与机密性,在一定程度上限制了遥感影像数据的充分利用,因此,迫切需要对其进行有效的组织、存储、管理和共享的研究。

研究表明,为实现影像数据的网络服务,可以利用遥感影像元数据,采用流行的数据库技术对遥感影像数据进行组织与管理,并完成基于XML的影像元数据的,实现用户通过网络对遥感影像数据的查询、检索与访问,为影像数据的共享奠定了基础,同时利用本体技术的优势,建立起遥感影像信息本体。

影像数据的存储管理

1.元数据的存储管理

元数据为空间数据的存储管理与共享提供了有效的手段,通过元数据信息,用户可以在没有真实数据的情况下,获取有关数据的信息,从而为数据的共享与利用提供了可能。目前关于矢量空间数据的元数据标准已经制定,并形成了我国的地理信息国家标准,而关于遥感影像方面的元数据标准,尚处在研究之中,未形成一个普遍接受的标准。为此,国家遥感工程中心在ISO 19115.3 遥感影像元数据标准以及我国即将推出的地理信息元数据标准的基础上,结合项目的实际情况,制订了遥感影像元数据草案。该草案包括7个元数据集、6个公共数据类型和15个代码表,从标识信息、数据质量信息、参照系信息、内容信息、覆盖范围、分发信息和遥感信息等方面对遥感影像数据进行了详细的表述。

2.影像数据的存储管理

由于遥感影像的数据量十分庞大,难以直接进行存储,不利于后续的处理、提取、浏览与检索,因此需要对其进行预处理,主要包括降采样、影像压缩与影像分割等内容。

影像分割是将遥感影像按照行列值分割为相同大小的数据块(tile),并以tile作为影像存储的基本单元。每个tile均以一条记录的方式进行存储,不同记录通过编号进行排列。对于不能够平分的,出现多余的行或列时,应将其单独存放。当用户对影像进行调用时,通过映射关系,只调用与用户有关的tile集合即可,从而优化了数据的存储、传输、浏览模式。

为减小影像的传输数据量和优化显示性能,需建立影像金字塔(图1),通过影像降采样方法,建立一系列不同分辨率的影像图层,每个图层分割存储,并建立相应的空间索引机制。常用的影像重采样方法有双线性差值、立方卷积等。

由于影像的数据量比较庞大,为减小影像的存储空间,还需要对影像进行压缩处理后存储。当用户调用数据时,首先对数据进行解压缩处理,然后再返回给用户。常用的图像压缩方法有JPEG、LZ77等。

3.影像数据库结构设计

遥感影像数据库主要可以分为影像元数据库和影像数据库两部分(图2)。影像元数据库用于对遥感影像元数据标准中的数据集进行存储与管理,影像数据库用于对影像数据进行存储和管理。元数据同影像数据通过ID字段进行一对一的关联,保证了元数据与影像数据的一一对应,从而实现通过元数据可以惟一地查找相应的影像数据,而通过影像数据,又可以惟一地查看该影像数据的相关信息,实现了遥感元数据与影像数据的一体化管理。

影像数据网络共享与服务

1.基于元数据的影像数据网络共享

构建遥感影像元数据的主要目的是为了能够实现影像数据的网络与共享。因此元数据的网络是影像数据的前提与基础。

目前元数据的网络大多采用XML技术。XML是一种元语言,是可以用于描述其他语言的语言。用户可以根据需要,利用XML Schema(或者DTD)自行定义标记和属性,从而可以在XML文件中描述并封装数据。XML是数据驱动的,这使得数据内容与显示相分离。XML可以在类似于Netscape Navigator或Microsoft Internet Explorer的浏览器中显示,并通过因特网在应用之间或业务之间交换,存储到数据库中或从数据库中取出。因此,XML是元数据最好的描述方式,能很好地满足元数据在网上传输、交换的需要。

用户通过网络的元数据信息,可以初步了解遥感影像数据的相关信息,然后通过元数据的导航,实现对影像数据的查询、浏览与检索(图3)。

2.基于本体技术的影像数据网络服务

本体(ontology)是从哲学的一个分支――形而上学中的本体论(Ontology)发展来的一个名词。本体论研究客观事物存在的本质,与认识论(Epistemology)相对。即本体论研究客观存在,认识论研究主观认知。而本体的含义是形成现象的根本实体,因而,本体是概念化的明确说明。最早把本体引入计算机领域的是人工智能领域。

地理信息本体与地理信息分类编码、地理信息标准术语表之间有着相似之处,本体论与分类学、术语学也存在一定的交叉。

然而,地理信息本体并不是地理信息标准术语表。地理信息本体提供了一组具有良好结构性的词汇,而且出现在本体中的词汇经过了严格选取,确保所选的词汇是本领域中最基本概念的抽象与界定。概念与概念之间的关系采用相应技术(如谓词、逻辑等)进行了完整的反映,而正是这些关系的反映使得基于本体的系统实现后能够完成语义层面的一些功能。地理信息标准术语表仅仅是地理信息领域中各种词汇的集合,相对本体而言还比较松散。

本体也不单纯是一个词汇的分类体系,即不是地理信息中的分类和编码表。本体和地理信息的分类非常相似,尤其是把本体的理论应用于地理信息分类编码时,这种相似性更为明显。总的说来,地理信息本体比分类编码表中所反映的词与词之间的关系要丰富。

海量数据范文2

围绕数据分析工作,市面上出现了众多相关技术,帮助企业管理和分析多种多样的庞大数据集。在这个高级分析技术的领域,由于IT服务产品的价格持续下降,用户可以用更少的IT预算来获取完善的服务、进行更多的信息分析,解决更复杂的问题。

随着分析技术的飞速发展和商业智能手段的日益高明,CIO现在完全可以做到大规模、低成本地分析业务数据。这也意味着,企业可以充分利用一切可利用的机会,获取更高的商业价值。

勇于接受海量数据

大数据是指庞大的数据集,尤其是那些未经组织、管理以适合传统数据仓库的数据集。虽然不是每一家公司都需要掌握处理庞大非结构化数据集的手段,但Verisk Analytics公司的CIO Perry Rotella认为,所有CIO都应该关注大数据分析工具。Verisk公司帮助金融公司评估风险,也帮助保险公司从理赔数据中识破欺诈,它在2010年的营收超过了10亿美元。Verisk公司的业务是“从你事先未知的数据中找到一定的模式和关联。”Rotella表示,企业的IT负责人应持数据越多越好的态度,并勇于接受海量数据。

HMS公司专门帮助客户实施医疗保险和医疗补助计划,同时也为企业控制医疗保健成本,其业务覆盖美国40多个州的卫生和福利计划以及130多个医疗补助管理型医疗保健计划。在2010年,通过避免错误支付,HMS帮助客户追回了18亿美元的成本,省下了数十亿美元的开销。该公司的CIO Cynthia Nustad认为,大数据呈“爆炸式发展”的趋势,“我们在努力获取、跟踪、分析大量资料,包括结构化数据和非结构化数据,尽管有时你可能都不知道自己在数据中到底要寻找什么。”

Hadoop是被谈论最多的大数据技术之一,作为一个开源的分布式数据处理平台,Hadoop最初被用来处理海量网页搜索之类的任务。最近它与另外几种所谓的“NoSQL”技术(包括CouchDB和mONGOdb)大行其道,正以新颖的方式管理大数据。

Hadoop能够处理PB级数据,具体步骤是把海量数据的子集分配给上千台服务器,然后由主调度器核对和整理每一台服务器返回的处理结果。Hadoop既可以用来准备好数据以便分析,本身也可以作为一款分析工具来使用。如果企业没有成千上万台备用服务器,可以向亚马逊等云服务提供商购买服务,根据具体需要访问Hadoop。

Nustad认为Hadoop有助于企业通过分析数据来识破欺诈和浪费现象,或许还可以用于分析多种格式的病人门诊记录。她表示,HMS确实在探究NoSQL技术的用途,但并非用于其庞大的医疗保险和医疗补助理赔数据库,因为这些数据库含有结构化数据,可以用传统的数据仓库技术来处理,而且为了大数据而弃用传统的关系数据库管理方法也不明智。

作为一家比较购物网站,Shopzilla每天积累的数据多达数TB。其CIO Mulkey说:“我们用Hadoop来处理过去用数据仓库来处理的任务,更重要的是,它能让我们做一些以前无法实现的、真正能满足需求的分析工作。”以前,Shopzilla要为数据取样和分类――处理这么多数据,工作量非常大。现在借助Hadoop,Shopzilla就能分析原始数据,跳过中间步骤。

像Rotella和Mulkey这种有Hadoop实践经验的CIO,他们所在的公司甚至会将数据分析服务当做一项业务来出售。

提速

从IT架构改革开始

“分析速度提升将是一个更大的趋势,而大数据技术只是这个趋势当中的一部分。”肯塔基大学的CIO Vince Kellen认为,“我们需要用更高级的技术来分析海量数据,因为我们希望迅速地获得分析结果。所以数据多少不重要,重要的是分析数据的效率。”

虽然几十年来,数据库一直通过缓存那些频繁访问的数据来提高性能,由于从磁盘获取数据在一定程度上是个机械过程,所以速度要比在内存中处理慢很多。现在看来,把庞杂数据全部装入到一台服务器或者多台服务器的内存中要更切实可行,磁盘只用来作备份。

Rotella表示:“现在我可在几秒钟内执行分析任务,而五年前我们需要花整整一个晚上。”他们对庞大数据集进行预测性分析,通常需要经历启动查询、寻找模式、进行调整等环节,然后再启动下一个查询,查询的执行时间对于分析速度影响很大。“原来,我们运行模型比建立模型费时间,而现在建立模型比运行模型更费时间。”

列式数据库服务器把数据库传统的组织方式颠倒过来。查询只访问相关的列,因而为评估几个关键列的应用程序提升了性能。为了提高分析性能,硬件同样很重要。保险和金融服务巨头John Hancock的CIO Allan Hackney已经开始尝试GPU加速的系统。他说:“可视化方面的运算与统计分析方面的运算非常相似,而GPU执行的运算速度比传统的PC和服务器处理器快几百倍。”

开源技术压低成本

从某种程度上说,计算能力的增加得益于内存和存储设备价格的不断下跌,此外有了付费产品之外的选择以及开源软件也迫使厂商降低价格。

Ternent在加入Island One之前是Pentaho开源商业智能公司的技术副总裁,他积极倡导开源技术,“在我看来,开源为公平竞争创造了条件。”

Ternent表示,开源工具一度只适用于基本的报告,而现在,它们提供了最先进的预测分析功能。“现在几乎所有领域都有开源厂商,这意味着谁有胆量用,谁就可以随意使用开源工具。”

HMS的Nustad发现,不断变化的经济因素也在改变着IT架构方面的一些基本选择。比如说,构建数据仓库的一个传统原因是在拥有计算功能的服务器上把数据整合起来。以前计算功能比较稀缺时,CIO会把分析任务从操作系统卸载下来,以免拖累日常任务的性能,现在就没必要这么做了。由于省略了移动数据、格式化以及把数据装入数据仓库的步骤,CIO直接在操作应用上进行分析能更快地获得结果。

不过Hackney表示,虽然现在的趋势正朝着有利于降低管理成本的方向发展,但节省的成本经常被增加的存储容量需求抵消。“这就像在原地跑步。虽然2011年John Hancock的存储成本下降了2%到3%,但存储使用量却增长了20%。”

为员工设计终端界面

对Nustad而言,移动商务是必须的。因为即使出门在外也要查看各种报告,了解公司是否履行了服务级别协议。她还希望让公司的客户可以通过移动设备访问自己数据,帮助他们监控和管理医疗保健开支。“这是一项客户非常喜欢的功能。五年前,客户不会要求提供这项功能,但现在他们对此非常关注。”

对于CIO来说,应对这个趋势的关键不是提供复杂的分析功能,而在于为智能手机、平板电脑和触摸屏设计用户界面。Kellen觉得这问题很容易解决。

但Rotella并不这么认为。“移动计算影响着每个人。使用iPad和其他移动设备办公的人越来越多,这个趋势会让员工使用企业计算资源的方式加速改变。”Rotella说,例如,Verisk开发了一种产品,可以让理赔员在现场访问分析结果,如此一来他们就能估算重置成本。这种方式可以充分利用分析结果,满足那些有需要的人。

技术在迅速变化,这是让CIO最感头疼的事情。Rotella认为,“两年前,我们没有iPad;现在,大家出去都带着iPad。由于移动设备操作系统有很多种,我们要努力了解如何才能最有效地利用自己的开发资源,避免进行重复的开发工作。”

Island One的Ternent表示,由于手机和平板电脑中浏览器的功能越来越强大,为每个移动平台开发原生应用程序的呼声也随之减弱,“如果我只需针对移动设备为基于Web的应用程序更换皮肤,就不一定非要开发定制的应用程序了”。

分析混合型的

社交媒体

随着Facebook、推特等社交媒体遍地开花,越来越多的公司想要分析这些网站的数据。现在,市场上已经出现了新的分析应用软件,包含语言处理、情感分析和网络分析等统计方法,它们已不再属于典型的智能商务“工具包”。

许多社交媒体的分析工具很新颖,常以服务的形式出售。一个突出例子是Radian6,该软件最近被收入囊中。Radian6提供了一个仪表板,根据推特消息、Facebook公共帖子以及博客和讨论板会话上的帖子和留言,可以列出了提到品牌的各种评价。营销部门和客户服务部门买来这类工具后,基本上不需要麻烦IT部门。

不过,肯塔基州大学的Kellen表示,对于这类工具,他还在观望。他说:“我的任务是,确定这些技术中哪一种适合自己,然后再对相应的人员进行培训。”

与企业一样,肯塔基州大学也对监控其品牌评价很有兴趣。Kellen表示,他也有兴趣开发特定的应用程序,解决学校关注的具体问题,如学生流失等。例如,监控学生在社交媒体上的帖子可以帮助教职员工及早了解学生是否在学习上遇到了麻烦。戴尔公司的支持部门也会经常关注推特,以便及早发现是否有消费者发消息称自己的戴尔笔记本电脑坏掉的情况。Kellen表示,IT开发人员应想方设法,把社交媒体分析工具生成的报警机制融入到企业系统中,以便迅速应对那些事件。

海量数据范文3

关键词:网格;LHC;数据网格;海量数据

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)35-2108-02

Mass Data Processing Applications of Grid Technology

WEN Quan-sheng, LUO Tai-peng

(Grid Research Center,Polytechnic University School of the People's Liberation Army Corps of Engineers,Nanjing 210007,China)

Abstract: Data Grid is the third revolution of the information technology after Internet and Web,and based on current data management technologies,Data Grid aims to integrate all kinds of resources in the network,such as storage resources,data resources,computing resources,etc.,and establish a unified architecture for data access,store,transfer and management,which offers a new way for mass data management.

Key word: grid;LHC;data grid;mass data

1 引言

目前,在越来越多的领域,例如高能物理、医学、生物学、天文学等等,数据量正在呈现爆炸性增长。一般认为,当数据量超过普通桌面硬盘的存储容量时,即可称之为海量数据。因此这些领域的数据都可以称作为海量数据。目前,许多领域所产生的数据总和已经达到 TB(terabyte)级,而 PB(petabyte)级的已经出现;不难想象,未来还有可能继续增加。海量数据具有分布性、异构性等许多新的特征,对存储资源、计算资源、网络资源等都提出了极高的性能需求,为传统的数据管理技术带来了巨大的挑战。自20世纪50年代开始,传统的数据存储管理方式经历了人工管理、文件管理、数据库管理几个阶段,数据存储从简单的磁带、纸带、卡片发展到现今的大容量服务器,数据管理从无专门的管理软件发展至数据库管理系统,数据的共享性不断增强。但是面对信息爆炸时代的海量数据,现行的数据存储管理方式仍然体现出了它的不足之处[1]:

1) 海量数据大多分布在不同的地理位置、不同的存储设备以及不同的数据管理平台,数据来自多个数据源,形式丰富多样。而目前尚未有一种数据管理系统可以很好地同时处理数据的分布性和异构性。

2) 计算资源、存储资源之间存在着相互交流与协作,如何将这些资源有效地整合在一起进行分配和调度,充分利用资源,真正达到共享目的,还存在很大的问题。

3) 如何能提供给用户一个高效、快速而又方便地数据共享应用平台也是一个亟待解决的问题。

2 海量数据的产生及特点

2.1 海量数据的产生

1) 生物和医学:就我国而言 ,生命科学界对网格技术产生了强烈需求:首先是必须开发和应用全新的生物信息处理方法;另外,必须建立高效的超大规模数据信息处理系统[2]。

2) 天文学:虚拟天文台是新世纪天文学研究的一个重要发展方向。它利用最先进的信息技术和网络技术将各种天文研究资源以统一的服务模式透明的汇集在统一的系统中。因此,导致世界范围内天文观测的数据量以指数级别迅速增长。

3) 高能物理学: 北京谱仪BESIII (Beijing Electron Spectrometer III)是北京正负电子对撞机BEPC (Beijing Electron-Positron Collider)上的大型粒子物理实验。它每年将产生640TB的数据。除了要求有高性能的海量数据存储系统外,分析处理BESIII数据需要两千个CPU[3]。

4) 在其他领域:例如信息检索、计算几何、全球气候建模、大脑研究等等,所产生和需要分析处理的数据量也正在迅速膨胀。

2.2 海量数据的特点

通过对各个领域海量数据的生产、处理、加工、检索等过程的综合分析,我们发现海量数据有以下几个共同的特点:

1) 资源的分布性:主要表现在数据资源的分布性和用户的分布性。

2) 资源的异构性:主要是数据资源、存储设备、管理系统、访问协议的异构性。

3) 数据密集型应用不断增多:例如前面提到的高能物理方面的研究,另外还包括气候模拟研究(climatesimulation),生物信息学方面的研究(bioinformatics)等等。

从以上看出,诸多因素共同导致了海量数据对存储能力、计算能力、处理能力的许多新的高性能的需求。

3 网格技术及应用

3.1 数据网格(Data Grid)

网格就是一个集成的计算与资源环境,或者说是一个计算资源池。数据网格(Data Grid)是网格技术在数据管理方面的延伸,侧重于数据的存储、管理。它可以管理不同地域,不同来源,不同类型的存储及数据资源,隐藏存储介质、数据存储方式、存储位置等具体的物理细节,提供给网格用户一个物理上分散、逻辑上集中的应用技术,使他们可以方便、快速、高效地访问数据[4]。

它可以简单地描述为:用户向数据网格提交数据请求,网格接收请求后,查找符合要求的数据,并将找到的结果返回给用户。整个过程由网格自动完成,对用户完全透明,他不必关心数据的物理存储位置,数据的存储管理方式,因此简化和方便和了用户的使用。

3.2 欧洲数据网格(EuroDataGrid)

全球最大的粒子对撞机――欧洲大型强子对撞机(LHC),其加速器将产生的数据将是空前的:每秒产生100MB原始数据,每年将产生需记录的事件约为1亿个,每年产生的数据量就为15PB 。存储这15PB数据量每年需要使用两千万张CD,分析则需要使用100万台当今最快的计算机处理器。

科学家们确信解决问题的唯一思想是将存储和网络资源全球分布,进行协作式处理和分析。在这个背景下,欧洲数据网格(EuroDataGrid)应运而生了,它成为实现这个“大科学”目标的基础平台。EuroDataGrid 要解决以下几个方面的问题[5]:

1) EuroDataGrid 需要管理成千上万的处理器和磁盘、千万亿字节(PB)的数据以及每秒万亿比特的网络带宽,保证系统的高可扩展性、低成本和易管理性;

2) 保证数据在不同的研究机构、不同的管理者以及不同的管理政策之间安全地分发、复制、缓存,并保持同步性和完整性;

3) 协调不同国籍、不同研究机构的科学工作者的工作,使他们能够及时分析数据并汇总结果。

为了满足以上的需求,EuroDataGrid 系统包含了以下几个主要功能:负载调度和管理海量数据管理、网格监控、网格构造层的资源管理以及海量存贮管理等。

3.3 大型强子对撞机计算网格(LHC Computing Grid)

LCG(LHC Computing Grid)的目的是将若干参与该计划的研究机构的计算资源整合为一个世界范围的计算网格。现在已发展为LCG-2。它主要是建立在EDG的基础上,也就是在EDG的基础上再封装了一层,从而使得用户的网格部署更加方便。LCG-2的基本构成部件有用户界面、资源(RB)、伯克利数据库信息索引(BDII)、计算资源(CE)、存储资源(SE)等等[6]。

其主要功能体现在:

1) 海量数据管理:LCG-2的设计是基于欧洲数据网格(EDG),因此,它更加擅长于对海量数据进行管理。LCG-2的数据管理服务由EDG中的副本管理者(RM)和副本管理系统(RMS)提供。RM给用户提供一个访问RMS的单一接口。RMS提供的服务包括副本位置服务(RLS)和元数据目录副本(RMC)。RLS:维护复制文件地位置信息,它由多个本地副本目录(LRC)组成。RMC:存储GUID和LFN直接的映射关系,维护其它的元数据信息。

2) 作业管理:LCG-2的作业管理是由负载管理系统(WMS)集中完成的。WMS负责接受提交的作业,并根据作业的要求和可用的资源将作业分配给合适的计算资源。因此,WMS必须先从BDII和RLS中查询信息。其所提供的所有服务运行在资源(RB)机器上。

3) 信息服务:LCG-2中的信息服务基于OpenLDAP,采用Globus中的MDS来实现,提供了资源信息和资源状态信息,信息按照层次结构进行。对于信息的描述,LCG-2采用了GLUE框架。

4) 层次信息服务平台:LCG-2采用层次式信息服务的平台。这种平台避免了P2P方式的频繁信息更新的缺陷,也避免了分布式管理流程过于冗长的特点,使得LCG-2的信息服务更加快捷。

LCG-2中使用了虚拟组织的概念,力图以一种灵活、安全的方式实现共享资源。数据管理层次清晰,安全机制中对证书的处理尤为出色。它的不足之处在于安装非常繁琐,步骤复杂,缺乏详细的帮助文档[3.7]。

4 小结

随着许多科学领域中数据量的急剧增加,海量数据集已经成为一种重要的数据资源。由于现存的数据管理方式已经不能满足这种新的需求,在这种情况下,便产生了数据网格技术。它将为现今的海量数据管理带来新的解决思路与方法。

作为是近年来国际上新兴的一种重要信息技术,数据网格被称为21 世纪的IT技术基础设施,最终将改变人们对分布式资源的使用方式。相信随着网格研究的发展,在网格应用需求的推动下,网格技术越来越成熟,功能也会越来越强大。

参考文献:

[1] 瓮正科,王新英.Oracle 8.x for Windows NT 实用教程[M].清华大学出版社,2000.

[2] 黄元南.生物网格的应用探索[J].中山大学信息科学与技术学院软件世界,2005(4).

[3] 孙功星,陈刚.海量数据处理系统的设计和实现[J].高性能计算发展与应用,2008.

[4] 桂小林,网格技术导论[M].北京:邮电大学出版社,2005.

[5] 赵念强,鞠时光.网格计算及网格体系结构研究综述[J].计算机工程与设计,2006(7).

海量数据范文4

关键词:数据挖掘;PSO算法;关联规则

中图分类号:TP301.6 文献标识码:A

An availability measure of data mining on mass data

Chen Jian-guo

(College of Computer Science South-central University for Nationalities Wuhan 430074,China)

【Abstract】Through researching the measure of data mining on mass data in large database, this paper proposed an availability measure of data mining on mass data,this measure have achieved how to adopt the particle swarm optimization algorithm to partition the mass data optimization,and adopt an improved Apriori algorithm which resolve the shortcomings of Apriori algorithm, including generating a large number of candidate itemsets and scanning the database many times,so the new algorithm improves the speed and efficiency of data mining on mass data.

【Key words】data mining; Particle Swarm Optimization algorithm; association rule;

当今世界数据信息急剧膨胀,大型数据库和对大型数据库中海量数据进行挖掘越来越成为数据库领域研究人员面对的更现实的问题。基于海量的数据挖掘正在兴起,现在面对海量的数据,一般的挖掘软件或者算法往往采用数据抽样的方式进行处理,这样误差不会很高,可以大大提高数据挖掘的处理的效率和处理的成功率,但在采样时要注意数据的完整性和防止过大的偏差[1]。这种方法对数据采样要求比较高,而且可能出现在采样率不很高的情况下丢失一些很重要的潜在信息。这样就产生了一种对海量数据进行全盘分析的方法。将海量数据进行划分,划分为多个小的子数据库,对每个子数据库进行数据挖掘,再合并各子数据库的挖掘信息[2]。如何对海量数据进行划分,且要使这些数据得到最优划分,即每个数据划分到其最理想的子数据库里面,这样就联系到了另一个重要的研究领域――多目标优化,在多目标优化领域中粒子群优化算法Particle Swarm Optimization(PSO)是其中一个解决多目标问题的非常优秀的算法[3]。

关联规则是数据挖掘的重要研究方向之一,目前基于关联规则的数据挖掘算法在处理小型数据库时还可以表现较好的性能,然而在处理海量数据时随着数据量的增加效率直线下降。Apriori算法是利用关联规则进行数据挖掘中的一个最经典的算法,对Apriori算法进行研究分析,发现该算法具有产生大量候选项集和多次扫描数据库的缺点,且该算法在对海量数据进行挖掘具有非常低的效率,甚至不切实际,但对其进行改进后在对小数据库进行数据挖掘时可以表现很好的性能。本文拟采用粒子群优化算法对大型数据库进行优化划分,形成多个子数据库,再在子数据库基础上采用改进后的Apriori算法进行局部挖掘,最后合并各个局部频繁项集并生成关联规则。

1. 算法介绍

1.1. 粒子群优化算法

粒子群优化算法是一种基于群智能的演化计算技术,该算法于1995年由Eberhart博士和kennedy博士提出[4][5],是当前比较流行的仿生类算法。

PSO算法的基本思想:初始化一群随机解作为随机粒子,然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个“极值”来更新自己,第一个是粒子本身所找到的最优解,称为个体极值pBest,另一个极值是整个种群目前找到的最优解,称为全局极值gBest。在已知pBest和gBest的情况下,粒子根据以下公式来更新自己的速度和位置。

v[i]是粒子i的速度,w是惯性权重,present[i]是当前粒子i的位置,rand()是介于(0,1)之间的随机数,c1,c2是学习因子。

粒子群优化算法的优势在于概念简单,收敛速度较快,所需调整的参数较少。它可直接采用实数编码,算法结构简单,容易实现同时又有深刻的智能背景,既适合科学研究,又特别适合工程应用。因此,粒子群优化算法一经提出便立刻引起了信息和进化计算科学等领域学者们的广泛关注和重视,并在短短的几年时间里出现大量的研究成果,形成了一个新的理论研究热点,已被用于多种工程领域。该算法在函数寻优、聚类、人侵检测和人工智能等领域具有很好的应用前景.

1.2. 改进型的Apriori算法

关联规则挖掘是发现大型事务或关系数据集中项之间的关联或相关。关联规则挖掘由于它应用的领域广泛从而得到了数据库从业人员和研究人员的特别关注。最重要的关联规则挖掘算法――Apriori算法由R . Agrawal和R . Srikant于1994年提出[6],它是一个基于频繁项集挖掘的经典算法。Apriori算法的核心方法是基于频繁项集理论的逐层搜索的迭代方法,但其具有产生大量候选项集和扫描数据库的次数太多的缺点。本文采用基于矩阵按位存储的Apriori算法[7],该算法只扫描一次数据库,且操作的效率非常高。

设I={I1,I2,…,In}是1项的集合,任务相关的数据D是数据库事务的集合,其中每个事务T是项的集合,使得T⊆I。每个事务有一个标识符,称作TID。

定义1:每个项Ij的向量定义为:

1. 频繁项集的生成

具体步骤如下:

(1) 根据定义1扫描数据库生成矩阵D。

(2) 根据矩阵D生成1项候选集矩阵,扫描矩阵对所有1项候选集计数,生成频繁1项集并用矩阵存储,保存频繁1项集的计数。

(3) 利用频繁1项集矩阵生成候选2项集矩阵,对候选2项集计数,生成的频繁2项集也用矩阵存储,并保存频繁2项集的计数。

(4) 频繁k-1项集生成候选k项集时按照候选K项集生成规则生成,并用矩阵存储候选k项集,按定义3对候选k项集进行计数,判断其是否频繁,生成频繁k项集,用矩阵存储频繁k项集,并保存各频繁k项集的计数。

(5) 如果频繁k项集为空,则算法结束,否则,重复执行步骤4,。

2. 关联规则的生成

对于每个频繁项集L,产生L的所有非空子集,对于L的每个非空子集S,如果S的支持数与L的支持数之比大于最小置信度,则输出规则“S=>L S”。

2. PSO算法实现的数据库划分

基本关联规则挖掘算法虽然都不适合大型数据库中海量数据的挖掘,但是在数据库较小的情况下可以具有很好的效率.因此,本文考虑利用粒子群算法对大型数据库进行划分,再在子数据库的基础上应用改进的Apriori算法进行关联规则挖掘,提高挖掘效率.在利用粒子群算法进行数据库划分的时,本文引人了K―均值聚类的思想.以下是对数据库进行划分的步骤:

对粒子的位置采用一维16位二进制编码,“1”代表了该位记录属性为真,“0”代表了该位记录属性为假.

1)随机初始化K个聚类中心Z0,将事务按最小距离原则分配给k个聚类中心,以Z0作为粒子的初始位置.根据当前位置,利用适用度函数计算公式计算适应值F0(X),设置当前适应值为个体极值Pi,当前位置为个体极值位置Xi,根据当前各个粒子的个体极值Pi和个体极值位置Xi ,找出全局极值Pg和全局极值位置GX,且Pg=min(Pi);

2)按照公式(1)和公式(2),更新粒子的速度和位置,并把粒子的速度限制在Vmax内;

3)计算适应值F,并根据F得到当前各个粒子的个体极值Pi 和个体极值位置Xi。如果当前迭代次数n < 迭代次数nmax ,转步骤2继续执行;

4)找出全局极值Pg和全局极值位置GX.K个全局极值位置即新的K个聚类中心,根据当前全局极值位置GX,将事务按最小距离原则分配给新的k个聚类中心,转到步骤2继续执行;

由于在执行PSO聚类的过程中以每个模式样本到聚类中心的距离之和达到最小为标准,因此,本文选取PSO算法的适应度函数为

其中k为聚类数目,Sj为第j个模式分类,Zj为第j个聚类中心,1

3. 基于PSO算法的关联规则挖掘

该算法首先利用PSO算法将原始大数据库进行聚类划分为多个子数据库,再结合改进型Apriori算法对子数据库进行局部频繁项集挖掘,最后合并各个子数据库的挖掘结果.其具体步骤如下:

输入:粒子数N,最大迭代次数nmax,聚类个数k,数据集D,最小支持数supmin ,最小置信度confmin ;

输出:支持数大于supmin,置信度大于confmin的关联规则模式;

1)利用PSO算法将原始数据库D划分为k个子数据库{D1,D2,⋯,Dk};

2)子数据库D采用改进型的Apriori算法进行数据挖掘得到频繁项集;

3)最后合并各个子数据库{D1,D2,⋯,Dk}中频繁项集.如果supD(X)大于支持数阈值supmin,,则为全局频繁项集. 其中: , 为项集X在数据集Di中出现的频数。

4. 结论

本文提出的基于PSO算法的关联规则挖掘方法不但继承了改进的Apriori算法“高效性”的优点,同时也一定程度上克服了Apriori算法不适合于对海量数据进行关联规则挖掘的缺点。运用以上方法,既使数据挖掘对海量数据进行整体挖掘成为现实,还能够解决海量数据挖掘时间和空间复杂度过高的难点。

参考文献

[1] 郑吉平,秦小麟. 数据挖掘中采样技术的研究[J].系统工程与电子技术,2005,27(11).

[2] 曹志宇,张忠林. 快速查找初始聚类中心的K―means算法[J].兰州交通大学学报,2009,28(6).

[3] 刘丛林,张忠林,曾庆飞. PSO算法在关联规则挖掘中的应用[J].兰州交通大学学报,2010,29(3).

[4] Kennedy J,Eberhart R.Particle swarm optimization[C]//Proceeding IEEE International of first Conference on Neural Networks.NJ:IEEE Press,1995:167―171.

[5] Kennedy R J,Eberhart R A new optimizer using particle swarm theory[C] //Proceeding of the 6th International of fi-rst Symposium on Micro Machine and Human science. NJ: IEEE Press,1995:39-43.

海量数据范文5

关键词:键值;云计算;集群

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)07-1491-03

在当今这个信息爆炸的时代,互联网上的数据访问量正以几何级数的速度增长,提高对海量数据的访问和处理的需求变得日益迫切。“云计算”技术的出现使得快捷高效完成TB乃至PB级的数据挖掘成为可能。Google公司以Map/Reduce为基础,结合GFS、Bigtable已经成为全球互联网搜索引擎的翘楚,而Google取得成功的关键恰恰是因为其是最早也是最成功的“云计算”理念的实践者,但Google公司出于技术保护并没有开放其云计算模型的实现细节。

Hadoop作为Apache组织中一个专注于DFS和Map/Reduce的开源项目,完成了对Google的MapReduce编程模型、GFS分布式文件系统等云计算模型核心技术的开源实现,使得全球数以万计的开发者和众多实力雄厚的软件厂商开启了基于Hadoop研发“云计算”模型和应用的技术浪潮。

1 Hadoop整合Cassandra的必要性

1.1 Hadoop的特性

Hadoop是Apache开源组织的一个能够对行量数据进行分布式处理的软件框架,源于Lucene和Nutch两个开源项目,其核心技术是Map/Reduce和HDFS,分别是对Google的MapReduce和GFS的开源实现。基于Hadoop可以轻松的编写可处理海量数据的分布式并行程序,并将其运行于由成百上千个节点组成的大规模计算机集群上。

Hadoop的主要特性包括:

1)Hadoop的Map/Reduce能够运行在由数量庞大的商用服务器组成的大型集群上,可对TB级数据以可靠容错的方式进行复杂分析运算和并行处理。

2)Hadoop的分布式文件系统HDFS是一个具有高度容错性能的系统,它不但具有良好的错误检测功能还可以快速自动的进行数据恢复。HDFS被设计可以存取TB级的数据,适合部署在由大量廉价计算机所组成的大规模集群上。

Hadoop的主要缺点是其虽然拥有自己的分布式文件系统HDFS,但HDFS的实时读写性能较差,在并发性和可扩展性方面也较为欠缺,这就使得长于运算能力的Hadoop迫切的需要找到一个能够很好的支持并发处理并且拥有良好的实时存取能力和可扩展性的数据存储系统。

1.2 Cassandra的特性

Cassandra最初是由Facebook开发的一套开源的分布式键值数据库系统,它同时具备了Google BigTable的数据模型和Amazon Dynamo的完全分布式架构,具有良好的可扩展性,目前被很多大型的Web2.0网站所使用,是一种流行的分布式结构化数据存储方案。

Cassandra的主要特性包括:

(1)数据具备最终一致性,集群整体的可用性高。

(2)分层数据压缩,能够有效地减少数据体积,同时也能减少磁盘I/O。

(3)高可用、可扩展,无中心节点设计使得单点故障不影响集群服务,集群性能可线性扩展。

Cassandra的主要缺点是其虽然支持Map/Reduce计算,但自身并没有包含Map/Reduce功能,因此也就不具备自己对数据进行复杂分析运算的能力,需要借助于其他分布式计算工具才可以。

1.3 Hadoop与Cassandra取长补短

Cassandra是一个功能非常强大的海量数据存储系统,但它的劣势是缺乏对海量数据进行分析的能力,而Hadoop虽然提供了海量存储的能力,但是数据存储的特点是一次写入、多次读取,不支持数据的修改,因此无法实现实时读写。所以,可以将Cassandra存储的能力与Hadoop Map/Reduce计算的能力进行整合。Cassandra提供底层的存储,支持数据的实时读写,Hadoop提供批量计算的能力,将Cassandra中的数据批量加载到mapper和reducer中进行计算,得出最终的结果。

2 Hadoop整合Cassandra实施方案

Hadoop整合Cassandra就是两者互相取长补短的过程,即将Hadoop Map/Reduce的计算能力和Cassandra的存储能力进行结合。具体实施方案可以概括为,先将待处理的海量非结构化数据通过Hadoop Map/Reduce导入到Key-Value数据库Cassandra中,以实现数据的实时存取,解决Hadoop的HDFS存储能力欠缺的问题;然后,当需要对海量非结构化数据进行数据分析时再将Cassandra中存储的数据作为输入通过Hadoop Map/Reduce进行计算得出结果。这样一来既发挥了Hadoop与Cassandra各自的优势,又摒弃了二者的不足,从而相得益彰。

2.1使用Map/Reduce将Hadoop海量数据导入Cassandra中

通过Map/Reduce程序,可以将Hadoop分布式文件系统中的海量文件批量导入Cassandra中以实现实时存取。例如某通信系统需要记录每个客户的通话时长,所以客户的通话时长(以秒为单位)数据实时写入Cassandra系统中,并且数据分析人员可以在任意时刻启动Map/Reduce分析程序,从Cassandra中读取客户的通话时长数据进行统计分析。

通信系统按照客户某天某一小时划分,客户通信记录文件CallRecord.txt文件格式如下:

18023509018 - 800

数据文件CallRecord.txt的每一行中,“”符号前是客户使用的手机号,“”符号后是客户使用该手机号的通话时长。存储呼叫者通话时长的ColumnFamily可以采用Standard类型,Column排序规则为TimeUUIDType,Row的key为呼叫者的手机号码,Column的值为通话时长。

Cassandra默认的ColumnFamily在Cassandra/conf/schema.example.txt文件中定义,也可自定义ColumnFamily即在Cassandra/conf目录下新建schema.txt,内容如下:

create keyspace MyKeyspace1

with replication_factor = 1 …

2.1.1 编写Map/Reduce程序

根据需求,在map过程中需要拆分CallRecord.txt文件中的数据,提取出呼叫者的手机号码和对应通话时长。在map完成之后,关闭Thrift客户端,释放占用的资源。以下是MapReduce程序CallRecord.java的代码组成:

1)编写mapper函数

在mapper中,需要先初始化Thrift客户端,设置使用的Keyspace,以将数据写入Cassandra服务器中,实现逻辑如下:

tr.open();

cassandraClient.setKeyspace(“MyKeyspace1”);

初始化Thrift客户端后,在mapper函数中拆分输入数据,找出呼叫者手机号码和对应通话时长,构建需要插入Cassandra的Column,实现逻辑如下:

cassandraClient.insert(

ByteBuffer.wrap(mobileNum.getBytes(“utf-8”)),cp,c,ConsistencyLevel.ONE);

在mapper函数执行完毕后,还需要将Thrift客户端关闭,释放占用资源。

super.close();

本程序只需编写mapper函数即可,所以在Map/ Reduce程序的运行设置中将Reduce的个数设置为0,这样就不会执行Reduce流程了。

conf.setNumReduceTasks(0);

2.1.2 打包运行Map/Reduce程序

将CallRecord程序代码打成JAR包,名为CallRecord.jar,入口类为CallRecord,然后就可以对以上这个Map/Reduce程序进行测试了。

2.2 将Cassandra中的数据作为Map/Reduce输入

当需要对海量非结构化数据进行数据分析计算时,可以使用Map/Reduce程序将Cassandra中存储的某个Keyspace下的Column中的所有数据作为Map/Reduce的数据输入Hadoop,然后由Hadoop得出运算结果。以下是MapReduce程序CallCount.java的代码组成:

2.2.1 编写Map/Reduce程序

1)编写mapper函数

mapper函数中输入的数据为Row的Key,以及该Key对应的所有Column。在通话时长的统计中,只需要关注每一个Column的Value即可。

2.2.2打包运行Map/Reduce程序

将CallRecord程序代码打成JAR包,名为CallCount.jar,入口类为CallCount,然后就可以对以上这个Map/Reduce程序进行测试了

3 整合Hadoop与Cassandra所遇到的主要问题

3.1 数据传输速率降低造成网络阻塞

当数据达到海量级别的时候,应用请求的运算离它操作的数据越近效率就越高。因为这样能降低网络阻塞的影响,提高数据的传输速率和吞吐率。将运算移动到数据附近,比将数据移动到应用所在更好。整合Hadoop与Cassandra虽然解决了数据实时存取与分布式运算分析的问题,但在二者之间的数据相互传输势必会降低整体运行的速率。

3.2 Hadoop与Cassandra版本兼容性问题

Hadoop与Cassandra的整合也会遇到各自不同的版本之间的兼容性问题。例如:Cassandra 0.6.X默认只能与Hadoop0.20.X进行整合,与Hadoop0.19.X整合就要修改Cassandra的源代码支持才可以。

4 结束语

“云计算”时代的到来将势必改变互联网的服务运营模式,甚至是对整个IT领域的发展产生广泛深远的影响。在云计算技术浪潮席卷全球的今天,无论对于微软、谷歌之类的IT巨头还是广大的中小软件企业,这都是一个拓宽自身发展空间的绝佳机会。Hadoop作为当今分布式计算领域最为成功的开源框架,与可靠性和可扩展性俱佳的Cassandra键值数据库相结合,发挥各自在分析计算与海量存取方面的优势,将为在开源领域部署云计算应用开创一种全新的切实有效的技术模式。

参考文献:

[1] 邓倩妮,陈全.云计算及其关键技术[J].高性能计算与发展应用,2009,1(26):2-6.

[2] 苏翔宇. Key-Value数据库及其应用研究[J].电脑知识与技术,2012.

海量数据范文6

关键词: 分布式索引; 局部索引; 全局索引; 海量数据

中图分类号:TP392 文献标志码:A 文章编号:1006-8228(2013)08-01-04

0 引言

信息检索系统(IRS:Information Retrieval System)已成为人们日常生活和学习中经常会使用到的工具(如文献检索、网页检索等)。随着数据规模的增大,信息检索系统开始采用分布式系统架构来解决所面临的大数据问题。由此而引出的索引如何在分布式系统之中组织与分布的问题即是分布式索引架构问题。全局索引架构(Global Index)与局部索引架构(Local Index)是两种最主要的分布式索引架构,几十年以来,大量的研究和实验对它们的优缺点进行了详细分析与比较。

全局索引架构针对整个数据集建立一个统一的索引,然后根据索引关键字的顺序将索引切分成多个索引片段,每个索引片段存放在一个单独的索引节点上。全局索引架构在执行一个检索时所需要访问的索引节点相对较少,但这也导致其每次读取的数据量较大;由于数据的处理需要集中在中间节点上进行,全局索引架构网络传输的数据量更大;所有的数据处理操作集中在中间节点上执行,在面对海量数据时这将成为全局索引架构不能满足用户需求的关键瓶颈;由于是针对整个数据集建立倒排索引,因此在全局索引架构在面对索引的更新与增量时相比局部索引架构难度更大。

分布式局部索引架构即是将大的数据集随机或者按照一定的规则划分成多个小数据集,针对每个小数据集建立单独的索引块,一般一个索引块会存放在一个单独的索引节点上。局部索引架构的每个索引节点独立的完成检索,因此具有较好的容灾容错性能;在索引更新及增量时,由于其每个索引节点相互独立,因此更新与增量的影响范围较小;由于索引节点返回给中间节点的数据都是经过处理的,因此相比全局索引架构而言局部索引架构网络传输的数据量更小。局部索引架构的缺点在于检索的开销较大,其每一个检索条件都会被发送到所有索引节点上去执行。

混合索引架构结合了全局索引架构与局部索引架构的优点,但高度的数据冗余造成了极大的数据膨胀,在大多数的应用当中这一点通常无法被用户接受;同时副本数量过多也导致数据的更新与增量难度更大。由于混合索引架构的明显缺陷,我们在后面的文章中将不再对其进行分析。

1 相关工作

分布式索引架构的研究从上世纪九十年代初开始,但早期有关分布式索引架构[1,2,5,7,9]的研究由于存在数据量较少、硬件环境限制、应用场景不同等问题,导致大家的研究结果有很大的分歧,对于当前海量数据背景下分布式索引架构研究的参考意义不大。Cambazoglu等在2006年通过实验结果[8]说明局部索引架构有较快的响应速度,而全局索引架构的吞吐率较好,这和我们的观点是一致的,但实验的结果是在较少的数据集上取得的(30GB),因此没有说明全局索引架构在响应时间上问题的严重性。

文献[3,4,7]等都是针对全局索引架构进行优化,他们或者考虑如何减少网络传输的数据量[3,6],或者使用新的数据处理方式[4],但都没有从根本上解决全局索引架构的时间延迟问题,而且用于实验的数据量都相对偏小,没有以海量数据为应用背景。

2 理论及分析

在介绍本文方法之前,先说明将用到的数据结构。倒排索引记录是Key-Value结构的,其中Key是检索关键字,Value是由数据项组成的有序集合。数据项的格式为(ID,score),其中ID表示某个检索对象的编号(例如文档编号),该检索对象中含有检索关键字Key,Value中的数据项都是依据ID排序的;score表示检索关键字Key在该检索对象中相关性的大小。实际应用之中检索关键字在一个检索对象中的相关性信息比较复杂,我们在模拟实验中简单的使用一个浮点型的非负数值score表示。

2.1 实现全局索引的关键步骤

在全局索引架构下对用户检索的处理步骤如下。

⑴ 用户提交检索条件,检索条件中含有一个或多个检索关键字Key,中间节点分析检索条件并将各个不同的检索关键字Key发到其相对应的索引节点;

⑵ 收到检索关键字Key的索引节点即在倒排索引中检索对应的倒排记录并将检索结果返回给中间节点,检索结果即是倒排记录中Value;

⑶ 中间节点会收到多个检索结果(Value),这些检索结果都是以ID排序的数据项集合,中间节点以ID对这些数据项集合求交集,交集中数据项的相关性值(score)是原来各个集合中有相同ID的数据项的相关性值(score)之和;

⑷ 检索对象返回给用户时一般需要分页,中间节点依据相关性值(score)的大小对交集中的数据项进行排序,相关性值(score)大的数据项对应的检索对象会先返回给用户,具体返回的检索对象需要依据数据项中的ID查找得到。

磁盘读取、网络传输等不是本文研究的重点。本文主要的关注点在于数据的处理过程,全局索引架构对数据的处理主要是在中间节点上完成的。假设:

A.在一个用户检索里面会有m个检索关键字(k1、k2…km);

B.每个关键字ki所对应的Value是由ni个数据项组成的串,设;

C.最终的交集里面有R个数据项。

根据假设,可知中间节点上求交集过程的计算操作次数约为n。如果对交集依据相关性大小进行全排序的话,其时间复杂度为o(Rlog2R),但是一般情况下R较大,而用户可能只需要查看最相关的几个文档,这样我们既可以将相关性值(score)大的结果找出来并先返回给用户,而不需要对全部的结果集进行排序。具体操作上可以在求交集的过程中将相关性值(score)大于某个阈值的数据项存在一个桶里,求交集完成后只要先将桶里面的数据项依据其相关性值(score)的大小进行排序即可,桶里面的数据项数量是应用通过阈值控制的,一般远小于R。阈值一般由数据的规模和每次返回给用户的检索对象数量决定。

假设:

D.桶里面等待排序的数据项数量为R'。

则可以将全局索引架构中间节点的计算操作次数tgm表示为:tgm=m+n+R'log2R'。

关键字的个数m大多数情况下都是个位数,相比较而言可以忽略不计;在海量数据背景下,n的大小可能是几千万、几亿,而存在桶里等待排序的数据项的个数一般只有几百、几千,因而n要远大于R'log2R',因此也可以简单地认为:tgm≈n。

2.2 实现局部索引的关键步骤

局部索引架构对用户检索的处理过程相比全局索引架构而言,在求交集等关键步骤上实现了并行化,其具体的处理过程如下。

⑴ 用户提交检索条件,中间节点将检索条件发到每一个索引节点上;

⑵ 局部索引架构索引节点所执行的操作与全局索引架构整个系统所执行的操作相同,包括检索条件的分析、检索关键字查询、检索结果求交集、根据相关性值(score)对交集排序等,只不过这些操作都是本地执行,最后索引节点将按相关性值排序后的检索结果返回给中间节点;

⑶ 中间节点接收各个索引节点的检索结果,这些检索结果都是以相关性值大小排序后的数据项集合,中间节点依据相关性值(score)的大小对这些数据项集合进行归并排序,同样,相关性值大的数据项对应的检索对象将优先返回给用户。

除使用2.1小节的假设条件外,这里再补充两个假设:

E.分布式信息检索系统中有N个索引节点;

F.每次返回给用户的结果集中数据项的个数为M。

这里需要说明的一点是,M的值并不是分页后一个页面所展示的检索对象的数量,一般而言M是一个页面所展示检索对象数量的倍数,比如10倍,用于应对用户可能的翻页,而且M小于R'。

局部索引架构索引节点所执行的操作与全局索引架构整个系统所执行的操作相同,参考2.1小节的分析,可以将局部索引架构索引节点的计算操作次数tli表示如下:

该表达式不一定准确,因为不可能每个索引节点在处理检索时的时间复杂度都是一样的,实际上由于局部索引架构中数据的划分是随机的,具有较好的负载均衡,虽然会有偏差,但是可以接受。

与全局索引架构一样,局部索引架构的索引节点也可以设置阈值,从而只需对桶里的R'个数据项进行排序,索引节点在给中间节点返回数据时,不必返回全部R'个数据项,只需返回前M个相关性值(score)较大的数据项即可。中间节点会收到N个数据项集合,每个集合M个元素,同样,中间节点也只需归并求出前M个相关性值(score)较大的数据项即可。

中间节点使用二路归并算法对N个数据项集合进行归并排序,因为多线程并行处理时二路归并是最优的。局部索引架构中间节点的计算操作次数tlm1可以表示如下:

tlm1的计算表达式是在线程并发度足够大的情况下取得的,实际的线程并发度是由中间节点CPU总的核心线程数目决定的,假设:

G.中间节点核心线程数目为L。

中间节点共需要运行N-1个线程,则更为精确计算操作次数tlm2可以表示如下:

在实际计算中,计算处理程序独占整个CPU是最优的情况,这种情况很难达到,所以tlm2的表达式中增加了一个系数eL和一个常数因子bL,并且有eL?1成立。具体eL和bL的值可以通过实验数据计算得到。

由于系统吞吐率、数据到达中间节点有先后等因素,可以考虑在中间节点上不使用多线程并行,而只是简单的串行执行即可,这样得到的中间节点计算操作次数tlm3可以表示如下:

tlm3=M*(N-1)

由于索引节点对检索的处理都是并行的,因此只需考虑单个索引节点即可,结合中间节点上计算操作的执行次数,则局部索引架构下整个计算过程的计算操作次数tltx可表示如下:

tltx=eltxtli+tlmx+bltx(x=1,2,3)

当tli=tlmx时,即中间节点与索引节点的计算操作次数相同时,但是由于二者计算过程的具体实现不同导致实际测得的计算时间是不同的,因此引入上述表达式中的平衡因子elt以及常数blt。平衡因子elt及常数blt可以结合实际的测量数据,利用线性回归模型求出来,在2.3小节有更为详细的分析。

分析比较全局索引架构与局部索引架构的计算操作,可以发现在海量数据背景条件下,局部索引架构明显优于全局索引架构。同时也应该看到,针对同一个检索,局部索引架构使用的索引节点更多,一般情况下局部索引架构相比全局索引架构在处理一个检索时的开销更大。

2.3 分析局部索引的簇的大小

将局部索引架构的计算操作次数tlt看成N的函数,即:

以执行时间复杂度最小值为目标,对于给定的n值(数据规模),可以求出最优的N值(机群规模),该结论对于在具体应用当中确定分布式机群的规模有参考价值。

对于平衡因子eltx(x=1,2,3)需要结合试验数据利用线性回归模型求解,这里先给出具体的回归模型。实验时取tlmx=tli(x=1,2,3),即局部索引架构索引节点与中间节点的计算操作次数相同,分别将二者的实际执行时间记为tlmx(x=1,2,3)和Tli,elmx是Tlmx与tlmx的相关系数(x=1,2,3),eli是Tli与tli的相关系数,bli和blmx(x=1,2,3)都是常数因子,则回归模型可表示如下(x=1,2,3):

根据条件tlmx=tli(x=1,2,3),由上面的数学模型可得:

计算机的实际计算时间和算法时间复杂度的关系是线性的,所以文章中使用的是线性回归模型。

2.4 数据扩展和索引架构的选择

仅就计算的执行时间分析,可以看出在海量数据背景下(即n的值较大时),局部索引架构在计算执行时间上相对于全局索引架构有明显的优势;但当数据量较小时(即n的值较小时),这个优势并不明显;可以预见当n变小到一定程度时,全局索引架构与局部索引架构的执行时间数据就会相同,这时n的值对于根据数据规模的大小决定采用哪一种索引架构具有一定的参考价值;当n的值再变小时,局部索引架构的表现可能会比较差。

以上分析看似合情合理,但从另一个角度来考虑的话,就会发现问题并非如此。我们把局部索引架构索引节点的个数N考虑进来,那么关于执行时间Y的方程就有两个自变量(n与N)。由于局部索引架构索引节点的计算操作与全局索引架构中间节点的计算操作相同,取N为最优值,那么当数据规模变小(n的值变小)到一定的曾度时,N一定会变为1,那么此时因为只有一个索引节点,全局索引架构与局部索引架构就完全的相同了,因此计算的执行时间也必然相同。

通过上面的分析可以发现,在N取最优值的情况下,当全局索引架构与局部索引架构的执行时间相同时,局部索引架构就会退化为全局索引架构。

实际应用之中的情况可能会不同,计算执行时间的最优值并不是用户最为重要的目标,由于全局索引架构相对比较节省资源,所以在满足应用需求的情况下用户可能更愿意使用全局索引架构。

3 结束语

本文以海量数据为背景条件,研究了信息检索系统中分布式索引组织架构问题。通过分析说明了面对海量数据时分布式局部索引架构是信息检索系统的必然选择,分布式全局索引架构由于不可接受的时间延迟问题而被排除。本文对海量数据背景下分布式索引架构问题的研究成果不仅仅适用于一般信息检索系统,对于数据库的多条件联合查询、相似性搜索中的度量空间索引等也有一定的参考意义,虽然应用环境与具体的问题都不相同,但索引的分布式架构组织问题是相同的。未来的工作我们希望可以在完善的实验环境下将分布式索引架构的其他关键因素纳入考虑范围,例如磁盘读取、网络传输等。由于全局索引架构在检索成本上占有优势,我们下一步的工作还包括优化全局索引架构的处理模式,目标是通过优化满足用户的需求。本文所有的讨论与实验都是基于现有的软、硬件环境,相信在未来,随着计算机软、硬件技术的发展,我们解决这些问题将会更加的便利。

参考文献:

[1] RIBEIRO-NETO, B. AND BARBOSA, R. Query performance for tightly coupled distributed digital libraries.In Proceedings of the ACM Digital Libraries, Pittsburgh, PA, I. Witten, R. Akscyn, and F. M. S. III, Eds. 1998. ACM Press,182-190

[2] A. MacFarlane, J. McCann, and S. Robertson. Parallel search using partitioned inverted files. In Proceedings of the 7th International Symposium on String Processing and Information Retrieval, pages 209-220, La Coruna, Spain, September 2000. IEEE Computer Society.

[3] Zhang J, Suel T. Optimized inverted list assignment in distributed search engine architectures[C]. Parallel and Distributed Processing Symposium, 2007. IPDPS 2007. IEEE International. IEEE,2007:1-10

[4] Moffat A, Webber W, Zobel J, et al. A pipelined architecture for distributed text query evaluation[J]. Information Retrieval,2007.10(3):205-231

[5] Badue C, Baeza-Yates R, Ribeiro-Neto B, et al. Distributed query processing using partitioned inverted files[C]. Proc. SPIRE,2001:10-20

[6] Kayaaslan E, Aykanat C. Efficient query processing on term-based-partitioned inverted indexes[R]. Technical Report BU-CE-1102, Bilkent University, Computer Engineering Department, 2011. Also available at: http:// cs. bilkent. edu. tr/tech-reports,2011.

[7] Xi W, Sornil O, Luo M, et al. Hybrid partition inverted files:Experimental validation[M]. Research and Advanced Technology for Digital Libraries. Springer Berlin Heidelberg,2002:422-431