大数据导论:关键技术与行业应用最佳实践(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-31 11:30:49

点击下载

作者:深圳国泰安教育技术股份有限公司大数据事业部群,中科院深圳先进技术研究院——国泰安金融大数据研究中心

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

大数据导论:关键技术与行业应用最佳实践

大数据导论:关键技术与行业应用最佳实践试读:

前言

随着云计算、物联网等技术的不断发展和应用,海量数据在生产经营、商务活动、社交生活等领域不断产生。世界处在信息时代,美国奥巴马政府将大数据提升到国家战略层面,启动了“大数据研究和发展计划”;企业将大数据作为提高自身竞争力的重要手段;最热的IT词汇中“大数据”必有一席之地……数据思维深刻影响着人们的工作和生活,这让人们真切地感受到大数据时代已经到来。

大数据即将带来一场颠覆性的革命,它将推动社会生产取得全面进步,助推政府、金融、医疗、教育、零售、制造业、能源和交通等行业产生根本性的变革。大数据是一个事关国家、社会发展全局的产业,围绕产业链的上下游,大数据将带动智能终端、服务器和信息服务业等产业发展,有效减少社会运行成本,提高社会和经济运行效率。

为了在信息时代立于不败之地,了解大数据相关的知识是必要的。本书全面阐释了大数据的概念、相关技术和应用现状,使读者对大数据的相关技术、应用和产业链有一个比较清晰的认识。本书适合高等院校计算机相关专业的本专科生、研究生、IT行业的从业人员和对大数据感兴趣的人士阅读。本书在内容的选择上进行了深入的研究,使得不论是大数据领域的初学者还是具备一定相关知识的专业人员都能从书中得到一定的收获和启发。

本书共11章,内容涵盖大数据的基本概念、关键技术和行业应用解决方案。对技术感兴趣的读者可以重点阅读第2~7章,这几章全面介绍了数据的存储和分析技术;对大数据应用感兴趣的读者可以优先阅读第8~10章;第11章对那些想了解大数据产业链的读者会很有帮助。

第1章简要介绍大数据的概念、大数据与商业智能的关系和大数据的相关技术及发展趋势;第2章介绍数据组织和存储的关键技术;第3章重点介绍了NoSQL;第4章介绍了Hadoop和MapReduce相关技术;第5章阐明了数据查询和分析技术,对常用的分析工具进行了介绍;第6章对数据挖掘技术的概念、挖掘算法和数据挖掘的发展趋势进行了分析;第7章重点介绍数据分析语言R;第8章论述大数据在预测和决策方面的作用,并阐述了商业和政府决策管理的机遇和挑战;第9章包括大数据与市场营销的联系和大数据时代的营销模式创新等问题;第10章简述了大数据在金融、医疗、互联网和影视等行业的应用案例;第11章主要介绍大数据产业链,介绍了新兴科技企业(如Cloudera、深圳国泰安教育技术股份有限公司等)和传统IT巨头(如IBM等)在大数据领域的主流解决方案。

新思想、新技术的不断涌现,推动着大数据的成熟与应用,也有效地推动着科技和社会的进步。本书结合了深圳国泰安教育技术股份有限公司的产品和解决方案,为读者呈现了大数据领域的全景图。在成书过程中,我们参考了大量国内外学者的研究成果和业界的产品及解决方案,资料来源列在每章参考文献中,在此对各位学者和专业人士表示敬意和感谢!

由于作者水平和时间有限,书中难免存在疏漏和错误之处,恳请读者批评指正。编者2015年1月第1章 大数据概论

相信很多读者一定还记得2012年“双十一”光棍节淘宝的销售记录,当天销售额高达191亿人民币,相当于2012年全国前11个月社会消费品零售总额18.6万亿的5%。之后阿里巴巴董事局主席马云说,这是中国经济转型的一个标志,这一年可谓是电商的“井喷”之年。2013年“双十一”光棍节,淘宝销售记录更是高达350.19亿元。自从2009年淘宝在11月11日开展“品牌商品5折优惠”活动以来,这一天的交易额由2009年的1亿元、2010年的9.36亿元、2011年的52亿元、2012年的191亿元,一直狂飙到2013年的350.19亿元,正式超越美国“网络星期一”,成为世界上最大的购物狂欢节。这一系列惊人的创举背后是什么?是大数据。它成就了阿里,也成就了中国的电商时代。

2011年5月,全球知名咨询公司麦肯锡(Mckinsey and Company)发布了《大数据:创新、竞争和生产力的下一个前沿领域》的报告,标志着大数据时代的到来。2012年世界经济论坛发布了《大数据:大影响》的报告,从金融服务、健康、教育、农业、医疗等多个领域阐述了大数据给世界经济社会发展带来的机会。

整个世界已经迎来了大数据时代。根据最新调查结果显示,2015年将会有近200亿个设备连接到互联网上,这些设备不仅有电脑,更有汽车、工厂设备、数字标牌等之前不可想象的设备。越来越多的智能终端设备给产业发展带来巨大的机遇。到2020年,人类产生的数据总量将达到40ZB,全球范围内服务器的数量将会增加10倍,由企业数据中心直接管理的数据量将会增加14倍,IT专业人员的数量将会增加1.5倍。许多权威人士认为这一数据大爆炸堪比新型石油,甚至是一种全新的资产类别。1.1 什么是大数据

互联网、移动互联网、物联网、云计算的快速兴起,以及移动智能终端的快速发展,造成当前数据增长的速度比人类社会以往任何时候都要快。数据规模变得越来越大,内容越来越复杂,更新速度越来越快,数据特征的演化和发展催生出了一个新的概念——大数据。

最早引用的所谓“大数据”概念,可以追溯到Apache公司的开源项目Nutch。当时,把大数据描述为用来更新网络搜索索引以及需要同时进行批量处理和分析的大量数据集。其实早在1980年,著名的未来学家阿尔文·托夫勒便在《第三次浪潮》这本书中,极力赞扬大数据为“第三次浪潮的华彩乐章”。不过,大概从2009年开始,“大数据”才成为IT行业的流行词汇。根据美国互联网数据中心的数据,互联网上的数据每年将呈现50%的增长,即每两年将会翻一番。而实际上,世界上90%以上的数据都是最近几年才产生的。除此之外,数据又并非单纯指人们在互联网上发布的信息,全世界的工业设备、交通工具、生活电器、移动终端上有着无数的数码传感器,随时测量和传递着有关位置、运动、震动、温度、湿度乃至空气中化学物质的变化情况,这也产生了海量的数据信息。1.1.1 大数据的概念

何谓大数据,目前业界还没有公认的说法。就其定义而言,大数据是一个较为抽象的概念,至今尚无确切、统一的定义,各方对“大数据”给出了10余种不同的定义,比较典型的有以下几种。

研究机构Gartner认为:大数据是指需要借助新的处理模式才能拥有更强的决策力、洞察发现力和流程优化能力的具有海量、多样化和高增长率等特点的信息资产。

麦肯锡的定义为:大数据是指在一定时间内无法用传统数据库软件工具采集、存储、管理和分析其内容的数据集合。

维基百科的定义是:大数据指的是需要处理的资料量规模巨大,无法在合理时间内,通过当前主流的软件工具撷取、管理、处理并整理的资料,它成为帮助企业经营决策的资讯。

IDC对大数据作出的定义为:大数据一般会涉及两种或两种以上的数据形式。它要收集超过100TB的数据,并且是高速、实时的数据流,或者是从小数据开始,但数据量每年会增长60%以上。

Gartner给出的是一个比较宏观的定义。首先对数据进行了描述,并在此基础上加入了处理此类型数据的一些特征,用这些特征来描述大数据;而维基百科中的定义缺乏精确性,常用软件工具的范畴难以界定;麦肯锡和IDC又只强调数据本身的量、种类和增长速度,属于狭义定义。从大数据的概念看,对大数据的概念界定各有各的看法。“大数据”这一提法具有明显的时代相对性,今天的大数据在未来可能就不一定是大数据,从业界普遍水平看是大数据,但对一些领先者来说或许已经习以为常了。

狭义的大数据,主要是指大数据的相关关键技术及其在各个领域中的应用,是指从各种各样类型的数据中,快速地获得有价值的信息的能力。一方面,狭义的大数据反映的是数据规模非常大,大到无法在一定时间内用一般性的常规软件工具对其内容进行抓取、管理和处理的数据集合;另一方面,狭义的大数据主要是指海量数据的获取、存储、管理、计算分析、挖掘与应用的全新技术体系。

广义上讲,大数据包括大数据技术、大数据工程、大数据科学和大数据应用等大数据相关的领域。即除了狭义的大数据之外,还包括大数据工程和大数据科学。大数据工程,是指大数据的规划建设运营管理的系统工程;大数据科学,主要关注大数据网络发展和运营过程中发现和验证大数据的规律及其与自然和社会活动之间的关系。对大数据进行广义分类是为了适应信息经济时代发展需要而产生的科学技术发展的趋势。1.1.2 大数据的特征

IBM公司认为大数据具有3V特点,即规模性(Volume)、多样性(Variety)和实时性(Velocity),但是这没有体现出大数据的巨大价值。以IDC为代表的业界则认为大数据具备4V特点,即在3V的基础上增加价值性(Value),表示大数据虽然价值总量高但其价值密度低。目前,大家公认的是大数据有四个基本特征:数据规模大、数据种类多、处理速度快及数据价值密度低,即所谓的4V特性,如图1.1所示。图1.1 大数据的4V特性

1.数据规模大(VoIume)

数据量大是大数据的基本属性,随着互联网技术的广泛应用,互联网的用户急剧增多,数据的获取、分享变得相当容易。在以前,也许只有少量的机构会付出大量的人力、财力成本,通过调查、取样的方法获取数据,而现在,普通用户也可以通过网络非常方便地获取数据。此外,用户的分享、点击、浏览都可以快速地产生大量数据,大数据已从TB级别跃升到PB级别。当然,随着技术的进步,这个数值还会不断变化。也许5年以后,只有EB级别的数据量才能够称得上是大数据了。

2.数据种类多(Variety)

除了传统的销售、库存等数据外,现在企业所采集和分析的数据还包括像网站日志数据、呼叫中心通话记录、Twitter和Facebook等社交媒体中的文本数据,智能手机中内置的GPS(全球定位系统)所产生的位置信息、时刻生成的传感器数据等。数据类型不仅包括传统的关系数据类型,也包括未加工的、半结构化和非结构化的信息,例如以网页、文档、E-mail、视频、音频等形式存在的数据。

3.处理速度快(VeIocity)

数据产生和更新的频率也是衡量大数据的一个重要特征。1秒定律,这是大数据与传统数据挖掘相区别的最显著特征。例如全国用户每天产生和更新的微博、微信和股票信息等数据,随时都在传输,这就要求处理数据的速度必须要快。

4.数据价值密度低(VaIue)

数据量在呈现几何级数增长的同时,这些海量数据背后隐藏的有用信息却没有呈现出相应比例的增长,反而是获取有用信息的难度不断加大。例如,现在很多地方安装的监控使得相关部门可以获得连续的监控视频信息,这些视频信息产生了大量数据,但是,有用的数据可能仅有一、两秒钟。因此,大数据的4V特征不仅仅表达了数据量大,而且在对大数据的分析上也将更加复杂,更看中速度与时效。1.1.3 大数据的产生

大数据的产生是计算机和网络通信技术(ICT)被广泛运用的必然结果,特别是互联网、移动互联网、物联网、云计算、社交网络等新一代信息技术的发展,起到了促进的作用,它使数据的产生方式发生了四大变化:首先,数据的产生由企业内部向企业外部扩展;第二,数据的产生由Web1.0向Web2.0扩展;第三,数据的产生由互联网向移动互联网扩展;最后,数据的产生由计算机或互联网(IT)向物联网(IOT)扩展。这四个方面的变化,让数据产生的源头呈几何级数地增长,数据量更是呈现大幅度地快速增加。

1.数据的产生由企业内部向企业外部扩展

由企业内部的办公自动化(OA)、企业资源计划(ERP)、物料需求计划(MRP)等业务以及管理和决策分析系统所产生的数据,主要被存储在关系型数据库中。内部数据是企业内最成熟并且被熟知的数据,这些数据已经通过多年的主数据管理(MDM)、ERP、OA、MRP、数据仓库(DW)、商业智能(BI)和其他相关应用的积累,实现了内部数据的收集、清洗、集成、结构化和标准化处理,可以为企业管理决策提供支持与帮助。对于商业企业而言,信息化的运用环境在发生着变化,其外部数据也迅速扩展。企业应用、互联网应用和移动互联网应用之间的融合越来越快,企业需要通过互联网来联系外部供应商、服务客户,联系上下游的合作伙伴,并在互联网上实现电子商务和电子采购的交易和结算。企业需要开通微博、微信、QQ、博客等社交网络来进行网络营销、品牌建设和客户关怀。把电子标签贴在企业的产品上,在制造、供应链和物流的全过程中进行及时跟踪和反馈,必将有更多来自企业外部的数据被产生出来。表1.1所示为企业内外部数据产生的源头、规模及存储情况。表1.1 企业内外部数据的产生

2.数据的产生从Web1.0向Web2.0,从互联网向移动互联网扩展

随着社交网络的迅速发展,互联网进入了Web2.0时代,个人从数据的使用者,变成了数据的制造者,数据规模不断地扩张,每时每刻都在产生着大量的新数据。例如,从全球统计数据的角度来看,全球每分钟发送290万封电子邮件,电子商务公司亚马逊每秒钟将产生72.9笔商品订单,每分钟会有20个小时的视频上传到视频分享网站YouTube,谷歌每天需要处理24PB的数据,Twitter上每天发布5千万条信息,每个家庭每天消费的数据有375MB,每个月网民在Facebook上要花费7千亿分钟……

从中国的统计数据来看,数据规模也十分巨大。淘宝网会员超过了5亿,在线商品数超过了8.8亿,每天产生的交易有数千万笔,产生约20TB的数据;目前百度拥有的数据总量接近1000PB,存储网页的数量接近1万亿页,每天大约要处理60亿次的搜索请求,产生几十PB的数据;新浪微博每天有数十亿外部网页和API接口访问需求,服务器群在晚上高峰期每秒要接受100万个以上的响应请求。

3.数据的产生由互联网向移动互联网扩展

移动互联网的发展让更多的使用者成为数据的制造者。据统计,全球每个月移动互联网的使用者发送和接收的数据高达1.3EB。在中国,仅中国联通用户上网记录条数为83万条/秒,即一万亿条/月,对应数据量为300TB/月,或3.6PB/年。

4.数据的产生从计算机/互联网(IT)向物联网(IOT)扩展

随着传感器、视频、RFID和智能设备等技术的发展,音频、视频、机器对讲机器、RFID、人机交互、物联网和传感器等数据大量产生,其数据量更是巨大。根据国际知名市场研究公司IDC公布的数据,在2005年仅机器对机器产生的数据就占全世界数据总量的11%,预计到2020年这一数值将可能增加到数据总量的42%。思科(Cisco)公司预测,仅移动设备的数据总流量在2015年就将达到每月6.3EB的规模。1.1.4 数据的量级

数据规模的大小是用计算机存储容量的单位来计算的,最基本的单位是字节(Byte)。每一级按照千分位递增,最小的基本单位是Byte,按顺序所有单位依次为:Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。它们按照进率1024(2的十次方)来计算。

1KB=1024Bytes

1MB=1024KB=1048576Bytes

1GB=1024MB=1048576KB

1TB=1024GB=1048576MB

1PB=1024TB=1048576GB

1EB=1024PB=1048576TB

1ZB=1024EB=1048576PB

1YB=1024ZB=1048576EB

1BB=1024YB=1048576ZB

1NB=1024BB=1048576YB

1DB=1024NB=1048576BB

巨著《红楼梦》含标点87万字(不含标点853509字),每个汉字占两个字节,则1汉字=16bit=2×8位=2bytes,以计算机单位换算,1GB约等于671部《红楼梦》,1TB约等于631903部,1PB约等于647068911部。再以互联网为例,一天当中,在互联网上产生的全部内容可以刻满1.68亿张DVD;发出的邮件有2940亿封之多;发出的社区帖子多达200万个,相当于《时代》杂志770年的文字量……截止到2012年,数据量已经从TB(1024GB=1TB)级别跃升到PB(1024TB=1PB)、EB(1024PB=1EB)乃至ZB(1024EB=1ZB)级别。国际著名市场研究公司IDC的研究结果表明,2008年全球产生的数据量高达1.82ZB,相当于全球每人产生200GB以上的数据。到2012年为止,人类生产制造的所有印刷材料的数据量是200PB,全人类历史上说过的所有话的数据量大约是5EB。IBM的研究称,整个人类文明所获得的全部数据之中,有90%是过去两年内产生的。到2020年,全世界所产生的数据规模将达到今天的44倍。1.1.5 大数据的数据类型

大数据不仅仅体现在数量大,也体现在数据类型多。

1.按照数据结构分类

按照数据结构分,数据可分为结构化数据与非结构化数据。非结构化数据又包含半结构化数据和无结构的数据。结构化数据通常存储在数据库中,可以用二维表结构来逻辑表达实现的数据。相对于结构化数据而言,非结构化数据是指不能用二维表结构来表现的数据,包括各种格式的办公文档、图片、图像、文本、HTML文档、XML文档,各类报表、音频和视频信息等。(1)结构化数据

结构化数据的特点是在任何一列数据不可以再细分,并且任何一列数据都具有相同的数据类型。所有关系型数据库(如SQL Server、Oracle、MySQL、DB2等)中的数据全部为结构化数据。关系型数据库存储的结构化数据示例如表1.2所示。表1.2 结构化数据示例(2)半结构化数据

半结构化数据是处于完全结构化数据和完全无结构的数据之间的数据,这种数据类型的格式一般较为规范,都是纯文本数据,可以通过某种特定的方式解析得到每项数据。最常见的半结构化数据是日志数据、采用XML与JSON等格式的数据,每条记录可能都会有预先定义的规范,但是每条记录包含的信息可能不尽相同;也可能会有不同的字段数,包含不同的字段名、字段类型或者包含着嵌套的格式等。这类数据一般都是以纯文本的格式输出,管理维护相对而言较为方便。但是,在需要使用这些数据(如采集、查询、分析数据)时,可能需要先对这些数据格式进行相应地转换或解码。

下面是一个XML文档的示例。(3)无结构的非结构化数据

无结构的数据是指那些非纯文本类型的数据,这类数据没有固定的标准格式,无法直接解析出其相应的值。常见的无结构化数据有网页、文本文档、多媒体(声音、图像与视频等)。这类数据不容易收集和管理,甚至是无法直接查询和分析,所以对这类数据需要使用一些不同的处理方式。

2.按照产生主体方式分类(1)最里层。由少数企业应用而产生的数据。● 关系型数据库中的数据。● 数据仓库中的数据。(2)次外层。大量个人产生的数据。● 社交媒体,如微博、QQ、微信、Facebook、Twitter等产生的大

量文字、图片和视频数据。● 企业应用的相关评论数据。● 电子商务在线交易、供应商交易的日志数据。(3)最外层。由巨量机器产生的数据。● 应用服务器日志(Web站点、游戏)。● 传感器数据(天气、水、智能电网)。● 图像和视频。● RFID、二维码或者条形码扫描的数据。

图1.2所示为不同的大数据主题示意图。图1.2 不同的大数据主题

3.按照数据产生作用的方式分类

按照数据产生作用的方式分类,可分为交易数据和交互数据。

交易数据是指来自电子商务或者企业应用中的数据,包括ERP、企业对企业(B2B)、企业对个人(B2C)、个人对个人(C2C)、线上线下(O2O)、团购等系统。这些数据存储在关系型数据库和数据仓库中,可以执行联机分析处理(OLAP)和联机事务处理(OLTP)。这些数据的复杂性和规模一直都在不断地增加。

交互数据指来自相互作用的社交网络中的数据,包括机器交互(设备生成交互)和社交媒体交互(人为生成交互)的新型数据。

这两类数据的有效融合将是大势所趋。大数据应用要有效集成这两类数据,并在此基础上,实现对这些数据的处理和分析。1.1.6 大数据的潜在价值

大数据的潜在价值可以通过数据结构的复杂性和关联性体现出来。当提到大数据时,我们最先想到的一定是其体量大,但是体量大的数据如果仅是简单的数据堆砌,或者仅是对单一类型数据的记录,那么这种重复性高、结构简单的数据还不能称之为大数据。例如,在一个购物商场内,商品种类有上千种,每种商品又有来自不同公司的产品,再加上购物、休闲、娱乐、餐饮等信息,则它拥有的数据就能从各个维度反映出顾客的行为特征,从而蕴含更大的数据价值。

大数据潜在价值的另一个体现是其关联性。大数据的重要来源之一是互联网行业。随着移动互联网的发展及互联网普及率的提升,网民上网行为呈现出跨网站、跨终端、跨平台等特点,用户数据不仅包括人与人交流产生的数据,还包括人机交互及机器与机器间通信产生的数据。这些数据之间如果没有较明显的逻辑关系和确定的关联关系,则数据价值的挖掘就会变得相当困难,同时数据价值也相应要低很多。所以数据之间的逻辑性和关联性也是数据潜在价值的蕴藏点。

大数据潜在价值的实现包括三个层次,社会领域、行业领域及企业发展领域。大数据最终需要解决的问题主要集中在这样三个层面上:一是宏观层面,主要是应用于社会领域,如智慧交通、智慧城市和灾难预警等;二是中观层面,主要表现在提升行业生产率水平、促进行业的融合发展以及促进行业内商业模式的变革等;三是微观层面,主要表现在促进客户服务水平的提升、企业流程的创新、内部运营成本的降低及供应链的协调和改善等。1.1.7 大数据的挑战

大数据在带来巨大的潜在价值的同时,在业务视角、技术架构、管理策略等方面,由于存在差异性而形成了挑战。

1.业务视角不同带来的挑战

在大数据未出现之前,企业通过对内部ERP、客户关系管理(CRM)、供应链管理(SCM)、商业智能(BI)等信息系统的建设,建立了高效的企业内部统计报表、仪表盘等决策分析工具,这些管理系统在企业业务敏捷决策方面发挥了很大作用。但是,这些数据分析只反映了冰山一角,因为报表和仪表盘其实是“残缺”的,是不全面的,更多潜在的有价值的信息往往被企业所忽略。在大数据时代,企业业务部门必须改变他们看数据的视角,要更加重视和利用以往被忽视的数据,如交易日志、客户反馈与社交网络等。这种转变需要一个接受的过程,但已经实现这种转变的企业则从中收获颇丰。据有关统计数据,电子商务企业亚马逊三分之一的收入来源于基于大数据相似度分析的推荐系统的贡献;花旗银行新产品的创意很大程度上来自于从各个渠道收集到的客户反馈数据。因此,在大数据时代,业务部门需要以更新的视角来面对大数据,接受和利用好大数据,以创造出更大的业务价值。

2.技术架构不同带来的挑战

传统的结构化查询语言(SQL)和关系型数据库(RDBMS)在面对大数据时,已经显得力不从心,刺激性价比更高的数据计算、存储技术和工具不断地涌现。对于已经熟练掌握和使用传统技术的企业信息技术人员来说,接受、学习和掌握这些新的技术与工具需要一个过程,内心认为现在的技术和工具已足够好,对新技术会产生一种排斥心理,怀疑它只是一个新的噱头,同时新技术本身的不成熟性、复杂性和用户不友好性也会加深这种印象。应该看到的是大数据时代的技术变革已经不可逆转,企业必须积极迎接这种挑战,以包容的方式迎接新技术,以集成的方式实现新老系统的整合。

3.管理策略不同带来的挑战

大容量和多种类的大数据处理将带来企业信息基础设施的重大变革,也在企业信息技术管理、服务、投资和信息安全治理等方面带来了新的挑战。像如何利用私有云、公有云等服务来实现企业内、外部数据的处理和分析,对大数据架构应该采取什么样的管理和投资模式,对大数据可能涉及的数据隐私应当如何保护……这些都是企业应用大数据需要面对的挑战。1.2 大数据与商业智能1.2.1 商业智能的概念

商业智能(Business Intelligence,简称BI),又称商务智能或商业智慧,其概念于1996年由Gartner Group提出。Gartner Group将商业智能定义为:商业智能是描述一系列的概念和方法,通过应用基于事实的支持决策系统来辅助商业决策的制定和实施。商业智能技术提供使企业迅速计算分析数据的技术和方法,包括收集、组织、管理和分析数据,并将这些数据转化为有用的信息,然后分发到企业各处。不过,目前公认的商业智能的定义是指:企业在收集、组织、管理和分析结构化与非结构化的数据和信息时,使用现代信息技术,使商务决策水平得以提升,商务知识和见解得以创造和增加,并且能够帮助企业完善商务流程,采取更有效的商务行动,提升各方面商务绩效,提高综合竞争力的智慧和能力。

商业智能是一系列技术、方法和软件的总称,其最终目的是提高企业运营性能以及增加企业商业利润。对于商业智能这个概念的正确理解,应从四个层面展开。商业智能的转化如图1.3所示。图1.3 商业智能的转化

第一,信息系统层面。它是商业智能系统(BI System)的物理基础,是一个面向特定应用领域的信息系统平台,一个独立的软件工具,具有非常强大的决策分析能力。

第二,数据分析层面。商业智能是一系列具有计算、分析功能的工具、算法或模型的总称。在数据分析层面,首先是获取数据,获取与所关心主题有关的高质量的数据或信息,然后自动或人工参与使用具有分析功能的算法、工具或模型,其间包括分析信息、得出结论、形成假设与验证假设等一系列的过程。

第三,知识发现层面。它与数据分析层面一样,也是一系列工具、算法或模型的总称。这一层面可以直接将信息转变成知识,或者是把数据转变成信息后,借助于大数据分析挖掘技术发现信息背后隐藏的东西,然后将信息转变成知识。

第四,战略层面。这一层面主要是将知识或信息应用在改善运营能力和提高决策能力以及企业建模等上面。商业智能的战略层面是提高企业决策能力,是通过利用应用假设或经验以及一个或多个数据源的信息所形成的一组方法、概念和过程的集合。它通过获取、组织、管理和分析数据,将数据和信息提供给贯穿企业组织的各类人员,使得企业的决策能力得以提高。1.2.2 商业智能的架构体系

商业智能所涉及到的数据包括来自企业业务系统的订单、交易账目、库存、客户和供应商资料及来自企业外部即企业所处行业和竞争对手的数据,以及来自企业所处环境的其他外部的各种数据。商业智能所辅助的业务经营决策既可以是操作层面的,也可以是战术层和战略层的决策。要将数据转化为知识,需要利用数据仓库(DW)、联机分析处理(OLAP)工具和数据挖掘(DM)等技术。因此,从技术层面上来讲,商业智能并不是基础技术或者是产品技术,而是数据仓库、联机分析处理和数据挖掘等相关技术走向商业应用后形成的一种应用技术,其系统架构如图1.4所示。图1.4 商业智能系统架构体系

从图1.4中可以看到,实现商业智能应用有四个非常关键的环节,包括数据源、ETL过程、数据仓库及其应用和BI前端展现。(1)数据源

数据仓库系统的数据来源主要是外部的操作性应用系统以及内部的业务系统。这些数据源包括数据的业务含义和业务规则,表达业务数据的表、字段、视图、列和索引。(2)ETL过程

即抽取(Extraction)、转换(Transformation)和装载(Load)过程。ETL过程负责将业务系统中各种外部数据、关系型数据、遗留数据和其他相关数据经过清洗、转化和整理后放进中心数据仓库。(3)数据仓库及其应用

数据仓库是商业智能系统的基础,是面向主题的、稳定的、集成的和随时间不断变化的数据集合。通过联机在线分析处理,可以对数据仓库中的多维数据实行钻取、切片以及旋转等分析操作,及时地完成决策支持所需要的查询及报表。通过数据挖掘,可以挖掘出数据背后隐藏的知识或信息。通过关联分析、聚类分析和判别分析等方法建立分析模型,来预测企业未来发展趋势以及将要面临的问题。(4)BI前端展现

在海量数据和分析手段不断增多的情况下,BI前端展现的主要功能是保障系统分析结果的可视化。一般认为,数据仓库、联机在线分析和数据挖掘技术是商业智能的三大核心技术。决策者通过正确运用商业智能技术,将使用结果加以反馈。通过反馈,可以暴露出潜在的问题,同时,也可以根据情况变化,表达新的需求,提高商业智能流程内在质量。

商业智能为特定的应用系统(如客户关系管理CRM、企业资源计划ERP与供应链管理SCM)的数据环境和决策分析提供支持,在企业制订战略和决策时提供良好的支持。当面对特定应用的特定战略和决策问题时,商业智能能够从数据准备做起,建立或虚拟一个集成的数据环境,以集成的数据环境为基础,利用科学的决策分析工具,并通过数据分析、知识发现等过程为战略制订、决策分析、最终解释、执行分析和发现结果整个过程提供支持。在这个过程中,集成的数据环境和决策分析工具起了非常重要的作用。1.2.3 商业智能的核心技术

商业智能实质上是数据转化为信息的过程,这一过程也可称为信息供应链,其目的是把初始的操作型数据变成决策所使用的商务信息。在这一过程中,数据集成工具执行原数据的清洗、格式转化和合并计算等功能;数据存储过程建立数据存储模型,存储企业统一的数据视图,为商业智能系统的应用提供基础数据;数据分析工具一般包括联机分析处理、统计分析工具、数据挖掘工具以及其他人工智能工具,这些工具结合商业处理规则,为决策者提供决策辅助信息。从商业智能系统建立的技术角度来看,构建一个完整的商业智能系统涉及到以下三种核心技术。

1.数据仓库技术

在20世纪80年代中期出现了数据仓库技术。此技术被数据仓库创始人之一W·H·Inmon定义为“数据仓库是一个面向主题的、集成的、稳定的和包含历史数据的数据集合,它用于支持管理中的决策制定过程”。数据仓库系统是对数据的处理技术的集成,而商业智能系统的核心是解决商业问题,它把数据处理技术与商务规则相结合以提高商业利润,减少市场运营风险,是对数据仓库技术、决策处理技术和商业运营规则的集合。数据仓库与传统数据库存储的最大区别在于,数据库用于处理企业日常事务,而数据仓库则主要用于处理商务运营决策。数据仓库建立的目的在于在不影响日常操作处理的前提下对业务信息进行分析以辅助企业决策,为决策支持系统提供应用基础。因此数据库与数据仓库是应用于企业运营过程中不同目的的两种数据管理系统。数据的存储技术是数据仓库技术的核心内容,在数据仓库中被集成的数据常常以星型模式展现出来,即以事实表—维表结构来组织数据。事实表也称为主表,包括商务活动定量的或实际的数据,这种数据是可以用数字来度量的,由多行和多列组成;维表又称为辅助表,一般比较小,是反映商业活动中某个维的描述性的数据。事实表和维表通过关系进行连接,这样的组织方式被称为多维数据存储的星型模式。在扩展的星型模式中,维表本身还能够包括维表,这样在组成的数据仓库中包含了商务事实的物理存储模式。

2.数据挖掘技术

数据挖掘主要用于从大量的数据中发现或挖掘隐藏于其背后的规律或数据之间的关系,它通常采用机器自动识别的方式,不需要太多的人工干预。采用数据挖掘技术,可以为用户的决策分析提供自动化的、智能的辅助手段,该项技术在金融保险业、零售业、医疗行业等多个领域都可以得到很好的应用。在数据挖掘技术中常用的数据模型主要有:

①分类模型,根据商业数据的属性将数据分配到不同的组别中。

②关联模型,主要描述一组数据项目的密切度和关系。

③顺序模型,主要用于分析数据仓库中的某类同时间与之相关的数据,并发现某一时间段内数据的相关处理模型。顺序模型可以看成是一种特定的关联模型,它在关联模型中增加了时间属性。

④聚簇模型,当要分析的数据缺乏描述性信息,或者是无法组织成任何分类模式时,可以采用聚簇模型。聚簇模型按照某种相近程度度量方法,将用户数据分成互不相同的一些组。组中的数据相近,组之间的数据相差较大。聚簇模型的核心是将某些明显的相近程度测量方法转换成定量测量方法。

3.联机分析处理

联机分析处理(On-Line Analysis Processing,简写为OLAP)的概念最早是由关系数据库之父爱德华·库德(E·F·Codd)博士于1993年提出的,是一种用于组织大型商务数据库和支持商务智能的技术。OLAP数据库分为一个或多个多维数据集,每个多维数据集都由多维数据集管理员组织和设计,以适应用户检索和分析数据的方式,从而更易于创建和使用所需的数据透视表和数据透视图。OLAP的应用主要是针对用户当前及历史数据进行分析,辅助商业决策。其典型的应用有对银行信用卡风险的分析与预测、公司精准策略的制定等。其优势是能够进行大量的查询操作,对时间的要求不太严格。在数据仓库应用中,OLAP通常是数据仓库应用的前端工具,同时,OLAP工具还可以同计算分析工具和数据挖掘工具配合使用,以增强决策分析功能。1.2.4 商业智能的研究内容和发展方向

1.商业智能的研究内容

商业智能是以计算机高级技术为技术支撑、以现代管理技术为指导的应用型系统,其研究热点主要包括体系结构、支撑技术以及应用系统三个方面。(1)体系结构。它是指通过识别和理解数据在系统中的流动过程和数据在企业的应用过程中提供的商业智能系统的主框架。商业智能的体系结构包括:数据的预处理、数据仓库、数据分析和数据可视化等几部分。针对指定的应用会有相应的体系结构,从而使商业智能具有良好的性能。(2)支撑技术。商业智能是一个20世纪90年代末期出现的跨学科的新兴领域,它的发展借助于两方面的先进成果:一是计算机技术,比如数据仓库技术、数据挖掘技术、联机分析处理技术、数据可视化技术、数据预处理技术和计算机网络技术等;另一个是现代管理技术,比如预测和统计等运筹学方法,供应链管理、企业资源计划、客户管理等管理理论与方法,此外,还有目前在研究领域比较热的建模技术与方法。支撑技术的研究主要围绕两部分展开:决策支持工具研究和企业建模方法研究。其中决策分析工具的研究还包括对各种分析方法的研究,而企业建模则是解决如何建立特定企业模式的辅助工具。(3)应用系统。应用系统主要是当问题出现后,要根据提出的解决方案或方式决定具体的解决方法以及商业智能系统需要具备的功能,其研究重点主要是分析各个应用领域所面临的决策性问题。IT技术、人工智能等技术的不断发展,为商业智能的完善提供了强大的技术支持。

当前,商业智能在企业运营的相关领域及其他很多领域形成了其特有的体系,并且应用广泛。其中具有代表性的有:人力资源管理(HRM)、企业资源计划、企业性能管理(BPM)、客户关系管理、电子商务(E-Business)以及供应链管理。

2.商业智能的发展趋势(1)注重人性化,逐渐“傻瓜”化

今后商业智能的门户将更加注重人性化,功能也会逐渐“傻瓜”化,强调易用性,更加开放以及稳定性更高。此外更加重视整合众多信息来源,使人与人之间的沟通与合作更加便捷,帮助可拓展的管理支撑平台框架进一步完善,从而实现从“人去找系统”到“系统找人”的全新理念的转变。

未来商业智能系统能帮助人们充分发掘和释放潜能,帮助合适的角色在合适的时间、地点里获得合适的知识和数据,并且帮助企业将数据和信息转变为一种意念、能力,从而指导人的行为。在这里“人性化”也可以称为是一种“自动化”,使管理系统的价值与作用得以最大地体现。(2)不断集成,演变成门户化

与决策支持系统(DSS)相比,商业智能具有更加美好的发展前景。未来的商业智能将会全面集成信息服务,可以通过类似“门户”的技术对各项业务进行系统地整合,BI可以融合集成CRM、ERP与SCM等应用系统。同时也可以联结企业所有信息资源和信息系统以及工作人员,从而真正实现跨平台,最后演变成门户化。(3)移动BI将成为新战场

工信部的统计数据显示,截止到2014年5月底中国的手机用户数量已达到12.56亿人,相当于中国90.8%的人都在使用手机。而在所有使用手机的人中,使用手机上网的用户数量为8.57亿人,占总数量的68.24%。这些数字还在不断地增长,可以大胆地预测,未来利用新技术,移动协同应用将成为BI新的增长点。何谓移动协同应用,即用户可以在智能手机移动平台上提交数据,并且获取分析报告,实现商务智能与数据分析无处不在、无时不在的实时动态管理。该技术将会给传统的BI带来巨大的改变。因此,移动BI协同应用将是未来管理的巨大亮点。当前国内一些领先的、主流的BI软件企业正在积极地利用现代手机移动技术,想必未来的BI移动办公以及无线掌控将使管理者可脱离时间地点的控制,随时随地、随心所欲地进行管理。(4)结合云计算,在云中部署BI

近年来,云计算的发展如火如荼。由于云计算拥有极其强大的功能,因此,商业智能部署的主流方向将会是以云为基础的商业智能在线服务。

可以说各个BI厂商未来的生存线与云计算的发展息息相关。从另一个角度考虑,BI软件的发展以及受欢迎程度必须要使产品基于面向云规模架构的设计,并符合云运营模式。即使BI在向云迁移的这个过程中会遇到许多困难与挑战,“在云中部署BI”也不再是天方夜谭,越来越多的企业会将其业务应用置于云端。目前,BI专业厂商Informatica发布的Informatica BI数据集成平台也已经能同时部署在“云”网络或预装在系统中,为企业用户提供云端集成服务。据了解,该公司已经尝试向用户交付云服务。1.2.5 商业智能与大数据的关系

大数据与商业智能既相互区别又相互联系,大数据是商业智能概念外延的扩展、手段的扩充,而不是取代的关系,也不是互斥的关系。

1.联系

二者目的相同。无论是大数据还是商业智能,其目的都是为分析服务,对数据进行全面的整合,发现新的商业机会。对用户来说,其目的主要是得到一份完整的解决方案,形成一个全面、完整的数据价值发现平台。该解决方案不仅要能对企业内部的业务数据进行收集、处理和分析,要能引入互联网上的非结构化数据,如浏览的信息、微博和微信等,还要将移动设备的位置信息利用起来。

大数据促进商业智能的发展。大数据能够对内、对外产生价值,同时在保护隐私、保护数据安全的情况下,能够在不同组织间自由流动,形成整个社会的数据基础设施,进而形成一个平台。传统的商业智能无法处理日益复杂的数据,因此对传统的商业智能的扩展将成为未来的焦点。

目前,尽管大多数业内人士认为,在数据分析市场中大数据与商业智能就像两个行驶在不同轨道上的列车,在并肩前行的同时偶有交叉。但是在技术上,为提升数据分析能力、提高洞察力,大数据与商业智能之间早就开始了交流与互动,以期更好地发展成长。

2.区别

商业智能与大数据服务的领域侧重点不一样。现在可大致将数据资产划分为三种类型,即企业内部的业务数据、公共服务机构的数据(如物联网相关数据)以及与互联网相关的数据(如网络日志、微博等)。商业智能的服务领域侧重于前两者,而大数据则侧重于第三者,即与互联网相关的数据处理与分析。

二者应用的难易程度不一样。很长时间以来,商业智能被认为是大企业专有,因此被称为是“贵族”。其最经典的架构是以数据仓库为基础,搭建使用专用设备的数据仓库,利用ETL工具进行数据的抽取、转换与建模,然后通过报表、驾驶舱等形式进行结果展示,在整个过程中,每个环节相比较于其他非商业智能形式都更加耗时耗资。相对而言,大数据采用通用硬件设备加开源软件就可以实现,成本低,主要面向互联网企业,因此被称为“草根”。

二者效率、可靠性和安全性发展程度不一样。众所周知,在过去的20多年间,传统商业智能从磁盘数据库转向内存数据库,从行式存储数据库转为列式存储数据库,数据仓库实施从延时多维变为实时抽取,软件架构也从对称多处理机(SMP)转为大规模并行处理系统(MPP)等。用户对数据处理和分析需求的不断增加推动了这些转变的发生。一个成熟的数据处理平台所必须具备的条件包括效率、可靠性和安全性,而在这些方面传统BI已经走过了近20年的发展历程,可以提供很多值得借鉴的技术和方法。因此,对于大数据而言,这是它首先需要学习和发展的地方。

二者生态系统的完善程度不一样。商业智能已经存在了20多年,相对而言更加成熟,其生态系统也相对更完善。此外,大量企业在传统的商业智能方面投入很多,很多业务都是围绕该系统进行的,在数据采集、处理、存储、分析以及可视化软件等方面开展了很多工作。相比较而言,大数据出现的时间较短,应用不及传统商业智能广泛,其生态系统也不如传统商业智能完善。1.2.6 商业智能与大数据的结合应用

随着大数据时代的到来,商业智能与大数据的结合越来越紧密,并且已经应用到了各行各业中,如图1.5所示。

商业智能与大数据相结合,在各行各业中得到了广泛应用,其典型应用主要体现在四个方面。

1.产品销售管理(Product SaIes Management)

产品销售管理包括产品销售影响因素分析、销售量分析、销售策略及产品销售方案的预测四个方面。首先,为方便分析产生了不同结果的销售模型的销售量及销售策略,对影响销售的因素进行分析和评估,根据不同的销售环境,对相应的产品销售方案帮助制定产品上架和下架计划,使企业营销额得以提高。可根据系统储存的产品销售信息建立总体销售模型和区域、部门销售模型。除此之外,还可以通过对历史数据分析,建立预测模型,提高销售量。图1.5 商业智能与大数据结合的应用

2.事实管理(Management by Fact)

无论是目标管理还是例外管理,都需要用事实说话,用事实予以支持。过去,在信息缺乏的年代,管理层更多地是依靠个人的经验和直觉进行管理以及制定决策。而在当今知识经济时代,在每天的交易之中,维持企业营运的ERP系统已积累了庞大的事实与知识,这时就需要进一步对这些事实与知识充分分析并利用,结合企业目标、例外与事实,查询并探测相关信息,以便更好地决策。这些商业智能系统就能做到。

因此,企业必须实施事实管理,不靠个人经验和直觉,以了解企业每日的商务情况信息为基础,借助于商业智能进行科学决策。

3.异常处理(Management by Exception)

在实际运行中,总会有一些偏差产生,商业智能系统可以监测实际与计划目标的偏差,实时并持续地计算各种绩效目标,这是商业智能数据挖掘应用的典型案例。在出现偏差过大的情况时,系统会采取各种通讯方式在第一时间通知企业责任主管,帮助企业主管及时知晓偏差状况,降低企业风险,进而提高企业收益。其具体应用包括银行及保险等行业的欺诈监测、信用卡分析等。

4.客户关系管理(Customer ReIationship Management)

众所周知,顾客是企业生存发展的关键因素,客户关系管理自然就成为企业一项重要的工作。为了采取相应对策保持顾客数量,培养忠实顾客,维持良好的客户关系,企业可以通过商业智能的客户关系管理子系统对顾客消费习惯和消费倾向进行分析,以便提高顾客满意度。1.3 大数据相关技术与应用概况1.3.1 大数据的相关技术

大数据技术,就是从各种类型的数据中快速获取有价值信息的技术。大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。大数据处理相关的技术一般包括:大数据采集、大数据准备、大数据存储、大数据分析与挖掘以及大数据展示与可视化等,如图1.6所示。图1.6 大数据的技术体系

1.大数据采集

大数据采集是指通过RFID射频数据、传感器数据、视频摄像头的实时数据、来自历史视频的非实时数据,以及社交网络交互数据及移动互联网数据等方式获得的各种类型的结构化、半结构化(或称弱结构化)及非结构化的海量数据。大数据采集是大数据知识服务体系的根本。大数据采集一般分为大数据智能感知层和基础支撑层。大数据智能感知层:主要包括数据传感体系、网络通信体系、传感适配体系、智能识别体系及软硬件资源接入系统,实现对结构化、半结构化和非结构化的海量数据的智能化识别、定位、跟踪、接入、传输、信号转换、监控、初步处理和管理等,需要着重攻克针对大数据源的智能识别、感知、适配、传输、接入等技术。基础支撑层:提供大数据服务平台所需的虚拟服务器,结构化、半结构化及非结构化数据的数据库以及物联网络资源等基础支撑环境,需要重点攻克分布式虚拟存储技术,大数据获取、存储、组织、分析和决策操作的可视化接口技术,大数据的网络传输与压缩技术,大数据隐私保护技术等。大数据采集方法主要包括:系统日志采集、网络数据采集、数据库采集和其他数据采集四种。

2.大数据准备

大数据准备主要是完成对数据的抽取、转换和加载等操作。因获取的数据可能具有多种结构和类型,数据抽取过程可以帮助用户将这些复杂的数据转化为单一的或者便于处理的结构,以达到快速分析处理的目的。目前主要的ETL工具是Flume和Kettle。Flume是Cloudera提供的一个高可用、高可靠、分布式的海量日志采集、聚合和传输系统;Kettle是一款国外开源的ETL工具,由纯Java编写,可以在Windows、Linux和UNIX上运行,数据抽取高效且稳定。

3.大数据存储

大数据对存储管理技术的挑战主要在于扩展性。首先是容量上的扩展,要求底层存储架构和文件系统以低成本方式及时、按需扩展存储空间。其次是数据格式可扩展,满足各种非结构化数据的管理需求。传统的关系型数据库管理系统(RDBMS)为了满足强一致性的要求,影响了并发性能的发挥,而采用结构化数据表的存储方式,对非结构化数据进行管理时又缺乏灵活性。目前,主要的大数据组织存储工具包括:HDFS,它是一个分布式文件系统,是Hadoop体系中数据存储管理的基础;NoSQL,泛指非关系型的数据库,可以处理超大量的数据;NewSQL是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性;HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库;OceanBase是一个支持海量数据的高性能分布式数据库系统,实现了在数千亿条记录、数百TB数据上的跨行跨表事务。此外还有MongoDB等组织存储技术。

4.大数据分析与挖掘

大数据分析与挖掘技术是基于商业目的,有目的的进行收集、整理、加工和分析数据,提炼有价信息的一个过程。数据分析是指通过分析手段、方法和技巧对准备好的数据进行探索、分析,从中发现因果关系、内部联系和业务规律,为商业目标提供决策参考。目前主要的大数据计算与分析软件包括:Datawatch,是一款用于实时数据处理、数据可视化和大数据分析的软件;Stata是一套提供其使用者进行数据分析、数据管理以及绘制专业图表的完整及整合性统计软件;Matlab是一款商业数学软件,一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境;SPSS“统计产品与服务解决方案”软件,为IBM公司推出的一系列用于统计分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称;SAS是一个功能强大的数据库整合平台,可进行数据库集成、序列查询和序列处理等工作;Storm是一个分布式的、容错的实时计算系统;Hive是建立在Hadoop基础上的数据仓库架构,它为数据仓库的管理提供了许多功能,包括数据ETL(抽取、转换和加载)工具、数据存储管理和对大型数据集的查询和分析能力。此外还有R、BC-BSP、Dremel等计算和分析工具。

数据挖掘就是从大量的、不完全的、有噪声的、模糊的和随机的由实际应用产生的数据中,提取隐含在其中的,但又是潜在有用的信息和知识的过程。目前主要的数据挖掘工具有:Mahout,一个用于机器学习和数据挖掘的分布式框架,区别于其他的开源数据挖掘软件,它是基于Hadoop之上的;R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。此外Datawatch、MATLAB、SPSS、SAS和Stata等都有着强大的数据挖掘功能。其中Datawatch桌面允许用户访问、抽取任何数据信息并将其转换为实时数据,以便显示、分析并与其他用户以及系统分享。企业用户可以在Datawatch桌面上打开报告或文件,即点即选,数据立即就能提取出来。Datawatch系统创建了可复用模型,定义了数据到行和列的转换。仅需一次点击动作,用户就能将最新的数据集显示于仪表板上,并开始可视化数据发掘工作。

5.大数据展示与可视化

大数据可视化技术可以提供更为清晰直观的数据表现形式,将错综复杂的数据和数据之间的关系,通过图片、映射关系或表格,以简单、友好、易用的图形化、智能化的形式呈现给用户,供其分析使用。可视化是人们理解复杂现象,诊释复杂数据的重要手段和途径,可通过数据访问接口或商业智能门户实现,以直观的方式表达出来。可视化与可视化分析通过交互可视界面来进行分析、推理和决策,可从海量、动态、不确定甚至相互冲突的数据中整合信息,获取对复杂情景的更深层的理解,供人们检验已有预测,探索未知信息,同时提供快速、可检验、易理解的评估和更有效的交流手段。目前,Datawatch、MATLAB、SPSS、SAS、Stata等都有数据可视化功能,其中Datawatch是数据可视化方面最流行的软件之一。完整的可视化分析系统的一个基本要素是:具有处理大量多变量时间序列数据的能力。Datawatch Designer可以提供一系列专业化的数据可视化方案,包括地平线图、堆栈图以及线形图等,让历史数据分析更简单、更高效。该软件能够连接传统的列导向和行导向的关系型数据库,从而支持对大型数据集进行快速、有效的多维分析。Datawatch提供了卓越的时间序列分析能力,是全球投资银行、对冲基金、自营交易公司以及交易用户必不可少的法宝。1.3.2 大数据的应用概况

大数据应用自然科学的知识来解决社会科学中的问题,在许多领域具有重要的应用。早期的大数据技术主要应用在大型互联网企业中,用于分析网站用户数据以及用户行为等。现在,传统企业、公用事业机构等有大量数据需要处理的组织和机构,也越来越多地使用大数据技术以便完成各种功能需求。除了常见的商业智能和企业营销外,大数据技术也开始较多地应用于社会科学领域,并在数据可视化、关联性分析、经济学和社会科学领域发挥重要的作用。大数据应用基本上呈现出互联网领先,其他行业积极效仿的态势,而各行业数据的共享开放已逐渐成为趋势。

1.大数据在互联网中的应用

互联网企业在大数据应用中处于领先地位,并逐步深入到其他行业中。互联网企业开展大数据应用拥有得天独厚的优势。互联网拥有大量的数据和强大的技术平台,同时掌握大量用户行为数据,能够进行不同领域的纵深研究。如谷歌、Twitter、亚马逊、新浪、阿里巴巴等互联网企业已广泛开展定向广告、个性推荐等较成熟的大数据应用。在此基础上,2012年,谷歌发布了其大数据的跨界应用——无人驾驶汽车。依靠庞大的道路信息数据(每秒钟会采集超过750MB的数据),无人驾驶汽车能够智能地选择路径以及自动驾驶。国内互联网企业以阿里巴巴为代表,其在2012年7月就已推出了数据分享平台“聚石塔”,为淘宝、天猫等平台上的电商提供数据云服务,并扩展到金融领域和物流领域。阿里巴巴基于对用户交易行为的大数据分析,提供面向中小企业的信用贷款。据透露,截至到目前,阿里巴巴已经放贷300多亿元,而坏账率仅为0.3%左右。2013年5月,阿里巴巴成立的“菜鸟”网络物流,也是基于大数据平台,利用大数据平台的分析,联手各大物流企业,来选择最高效的送达方式。

2.大数据在企业中的应用

大数据的挖掘和应用成为未来的核心技术,将从多个方面创造价值。大数据的重心将从传输和存储过渡到数据的挖掘和应用,这将深刻地影响企业的商业模式。据麦肯锡预测,大数据应用每年可潜在地为美国医疗健康业和欧洲政府分别节省3000亿美元和1000亿欧元,利用个人位置信息潜在地可创造出6000亿美元的价值,因此,大数据的应用是具有远超万亿美元的大市场。

企业的决策方法多以事实为基础,大量使用数据分析来优化企业运营的各个环节和流程,通过基于数据分析的业务优化和重组,把业务流程和决策过程中具有的潜在价值挖掘出来,从而达到节约成本、战胜对手、在市场中求生存的目标。大数据在企业中的分析包括顾客分析、商品分析、供应链和效率分析以及其他关乎企业绩效方面的分析。比如,电信运营商运用大数据进行智能管理中,基于用户、业务及流量分级的多维管控机制,以及精准的客户分析及营销(如套餐适配、离网预警、广告精准投放等)。这些应用大多数电信运营商早已执行,例如中国电信、西班牙电信、中国移动等,都已开展城市人口流量模型等工作。此外,电信业通过审视自身的数据优势,服务公共社会的应用逐步展开,像智慧城市、利用位置和轨迹信息服务社会、为智慧城市提供海量数据预测服务等。

3.大数据在政府中的应用

大数据另外一个重要的应用领域是社会或政府。今天的城市面临着人口、就业和环境等各方面问题,许多宏观数据也是大数据分析的重要应用范畴。美国等发达国家的政府部门在开展大数据应用方面起了重要的表率作用,例如:美国能源部、联合国防部等6个联邦政府部门或机构投资了2亿美元,以开展大数据的政府应用。美国国防部开展了与网络安全相关的若干大数据项目,进行情报搜集和分析。美国国家卫生研究院着手建立健康与疾病相关的数据集、基因组信息系统、公众健康分析系统以及老龄化电子图书数据库等医疗大数据系统。国际上,早在2009年,联合国就启动了全球脉搏项目,跟踪和监控全球各地区的社会经济数据,采用大数据技术进行分析处理,以便更加及时地对危机做出反应。日本2012年开始对大数据进行专项调查,并将调查结果发布在《信息通信白皮书》里。2013年,日本总务省对大数据的发展现状进一步深入开展宏观和微观层面的调查,针对大数据的生成、流通与存储环节进行宏观的定量研究。在我国,大数据尚未上升到战略高度,应用案例也较少,在宏观大数据研究方面亟待加强。

4.大数据在其他领域中的应用

大数据不仅在互联网、企业、政府中得到了广泛的应用,随着大数据的发展,大数据在医疗与生命科学研究、能源和司法执法等领域都得到了广泛的应用并不断扩展。比如:一个基因组序列文件大小约为750MB,一个CT图像大约为150MB的数据,一个标准的病理图则接近5GB。2010年,国家公布的“十二五”规划中提出要重点建设国家级、省级和地市级三级卫生信息平台,以及建设电子病历和电子档案两个基础数据库等。此外,各级医院也将加大在数据中心,IT外包等领域的投入。随着医疗信息数据的增长速度成几何倍数不断发展,医院的信息存储越来越重要,医疗信息中心也将从关注传统计算领域转移到更加注重存储领域上来。

从2013年开始,电力、石油等能源细分行业纷纷拉开了大数据开发应用的序幕。大数据技术强调的是从海量数据中快速有效地获取有价值信息的能力,如何从海量数据中高效地获取数据,有效地深加工并最终应用到商业决策中是能源企业涉足大数据的目的。利用大数据可对业务进行分析,加工成有用的数据,进而全面掌控企业业务。如国网信通公司在北京亦庄的数据中心中,就设有10200个传感器。这些传感器及时采集数据,并被存储到云盘进行分析和利用。在大数据时代背景下,创新司法统计信息的收集与管理模式,深化司法统计数据的开发利用,对于更好地服务于审判管理,在更高的起点上推动人民法院工作实现新的发展,具有重要意义。1.4 大数据热点问题与发展趋势介绍1.4.1 大数据的热点问题

目前,大数据时代已经到来,不管是在学术界还是在产业界,人们都希望通过对大数据热点问题的研究,充分认识和了解大数据将要面对的关键性挑战和具有的独特价值,以便更好地把握投入方向,这对学术界、产业界以及用户具有指导价值。

1.数据科学与大数据的学科边界

迄今为止,什么是大数据,在产业界和学术界并没有形成一个公认的定义,对大数据的内涵与外延也缺乏清晰的说明。另外,大数据是否就意味着全数据,还有待进一步讨论与澄清。最后,还需要为动态、高维和复杂的大数据建立形式化、结构化的描述方法,进而在此基础上发展大数据处理技术。而后者关注的是数据界与物理界、人类社会之间的关联与差异,探讨是否存在独立于应用领域的数据科学。如果存在数据科学,其学科问题的分类体系又是什么?目前已有的共识是,大数据的复杂性主要来自数据之间的复杂联系。另外,新型学习理论与认知理论等也应当是数据科学的重要组成部分。

2.数据计算的基本模式与范式

大数据的诸多突出特性使得传统的数据分析、数据挖掘和数据处理的方式方法都不再适用。因此,面对大数据,需要有数据密集型计算的基本模式和新型的计算范式,需要提出数据计算的效率评估方法以及研究数据计算复杂性等基本理论。由于数据体量太大,甚至有的数据本身就以分布式的形式存在,难以集中起来处理,因此对于大数据的计算需要从中心化的、自顶向下的模式转为去中心化的、自底向上、自组织的计算模式。另外,面对大数据将形成基于数据的智能,我们可能需要寻找类似“数据的体量+简单的逻辑”的方法去解决复杂问题。

3.大数据特性与数据态

这一问题综合了三个问题,即大数据的关系维复杂性、大数据的空间维复杂性和大数据的时间维复杂性问题。大数据往往由大量数据源头产生,而且常包含图像、视频、音频、数据流、文本与网页等不同的数据格式,因此其模态是多种多样的。主要来源于多模态的大数据之间存在着错综复杂的关联关系,这种异质的关联关系有时还动态变化,互为因果,因此导致其关联模式也非常复杂。大数据的空间维问题主要关注人、机、物三维世界中大数据的产生、感知与采集,以及不同粒度下数据的传输、移动、存储与计算。另外,还需研究大数据在空间与密度的非均衡态对其分析与处理所带来的理论与技术的挑战。大数据的时间维问题则意图在时间维度上研究大数据的生命周期、状态与特征,探索大数据的流化分析、增量式的学习方法与在线推荐。

4.大数据的数据变换与价值提炼

大数据的数据变换与价值提炼即“如何将大数据变小”与“如何进行大数据的价值提炼”。前者要在不改变数据基本属性的前提下对数据进行清洗,在尽量不损失价值的条件下减小数据规模。为此,需要研究大数据的抽样、去重、过滤、筛选、压缩、索引和提取元数据等数据变换方法,直接将大数据变小,这可以看作是大数据的“物理变化”。后者可看作是大数据的“化学反应”,对大数据的探索式考察与可视化将发挥作用,人机的交互分析可以将人的智慧融入这一过程,通过群体智慧、社会计算、认知计算对数据的价值进行发酵和提炼,实现从数据分析到数据价值判定和数据制造的价值飞跃。

5.大数据的安全和隐私问题

只要有数据,就必然存在数据泄露、数据窃取等与安全、隐私有关的问题。目前,大数据在收集、存储以及使用过程中都面临着重大的风险和威胁,大数据需要遵守更多、更合理的规定,但是传统的数据保护方法无法满足这一要求。因此,针对大数据的安全与隐私保护问题,还有大量的困难挑战亟需得到解决。具体挑战包括:大数据计算伦理学、大数据规模的密码学、分布式编程框架中的安全计算、安全的数据存储和日志管理、基于隐私和商业利益保护的数据挖掘与分析、数据计算的可信任度、实施安全/合规监测、强制的访问控制和安全通信、多粒度访问控制以及数据来源和数据通道等。总体而言,当前国内外针对大数据安全和隐私保护问题的研究还比较少,根据我国的国情,只有通过技术手段与相关的政策法规相结合才能更好地解决此类问题。

6.大数据对IT技术架构的挑战

不管是存储系统、传输系统还是计算系统,大数据都提出了很多非常苛刻的要求,况且大数据平台本身也将是技术高峰,现有的数据中心技术很难实现大数据所提出的技术需求。譬如,数据的增长远远超过了存储能力的增长,对此目前需要解决的关键问题就是设计出最合理的分层存储架构。分布式存储架构需要结合scale-up式和scale-out式的可扩展性,因此对整个IT架构进行革命性地重构势在必行。此外,大数据平台(包括计算平台、传输平台和存储平台等)是大数据技术链条中的瓶颈,特别是大数据的高速传输,需要革命性的新技术。

7.大数据的应用及产业链

大数据的研究与应用不是单一化的,应该与领域知识相结合,特别是在开展大数据研究的初期,计算机领域的科技工作者一定要虚心请教各领域的科技人员,从而真正了解和熟悉各领域数据的特征。根据不同的应用需求和不同的领域环境,大数据的获取、分析与反馈的方式也不尽相同。为此,针对不同行业与领域业务需求,首先需要展开业务特征与数据特征的研究,进行大数据应用分类与技术需求分析,然后构建从需求分析与业务模型,到数据建模、数据采集和总结反馈,最后到数据分析的全生命周期应用模型。其实,不同的应用环境和应用目标代表了不同的价值导向,这对于大数据的价值密度有很大的影响。

在大数据产业链方面,随着大数据的不断发展,很多数据都不知道如何运用,于是大量数据服务公司产生了。我国已经形成了大数据的“生产与集聚层——组织与管理层——分析与发现层——应用与服务层”产业链。

8.大数据的生态环境问题

大数据被喻为21世纪的“新石油”,它是一种宝贵的战略资源,因此对大数据的共享与管理无疑是其生态环境的重要部分。所有权是大数据共享与管理的基础,而所有权既是技术问题,也是法律问题。因此,数据也是拥有权益的,对它的权益需要进行具体认定并进行保护,进而在保护好多方利益的基础上解决数据共享问题。为此,可能会遇到很多的困难,比如人们对法律或信誉的顾虑,保护竞争力的需要,以及数据存储的位置和方式不利于数据的访问和传输等。此外,生态环境问题受到政治、经济、社会、法律、科学等因素的交叉影响,因为大数据将对国家治理模式、组织和业务流程、企业的决策、个人生活方式都将产生巨大的影响,因此这种影响模式值得深入研究。1.4.2 大数据的发展趋势

1.大数据从概念化走向价值化

一方面,大数据将向更多新领域扩张,也会出现更多数据驱动的商业模式,更具体点说,互联网金融等将会成为大数据应用的新的商业模式,特别是基于海量数据的信用体系和风险控制,一定会冒出来。另一方面,资本高度关注大数据领域,相关的融资、并购与IPO纷纷出现,因此大数据从概念走向价值化成为大数据发展趋势中的最大趋势。

2.大数据安全与隐私越来越重要

大数据安全不容忽视,这是因为大数据更容易成为网络中的攻击目标;对存储的物理安全性要求也会越来越高;大数据分析技术更容易被黑客利用;大数据引起了更多不易被追踪和防范的犯罪手段。个人隐私的问题也更为严重。个人的隐私越来越多地融入各种大数据中,大数据拥有者掌控了越来越多人的越来越丰富的信息。同时,有偿的隐私保护服务会被大众所接受。

3.大数据分析与可视化成为热点

大数据规模大,难理解,分析过程离不开可视化技术,可视化将贯穿于大数据分析与结果展示的全过程,可视化已经成为很多领域研究的议题。有了大数据以后,大规模、多角度、多视角与多手段的数据可视化,还有实时处理分析和大数据的处理方法贯穿了整个数据分析和数据展示的过程。

4.数据的商品化和数据共享的联盟化

数据共享联盟有望逐步壮大,成为产业、科研和学术界一个环环相扣的支撑环节和产业发展的核心环节。另外,由于数据变成资源,成为有价值的东西,数据私有化和独占问题就是客观存在的,成为关注的焦点。数据产权界定问题日益突出,在数据权属确定的情况下,数据商品化将成为必然选择。

5.深度学习与大数据性能成为支撑性的技术

在大数据时代,依靠高性能计算的支持,深度学习将会成为大数据智能分析的核心技术之一。基于海量智能的技术成为发展的热点,它利用群体智能和众包计算支撑大数据分析和应用,依赖于对捕捉到的数据的分析来做判断和决策,这将成为将要兴起的下一个浪潮。以分布式计算来支撑大数据分析是必经之路。在很多大数据的应用场合,基于物理资源的分散式应用会有更多的应用场景。

6.数据科学的兴起

数据科学作为一个与大数据相关的新兴学科出现,各种大数据分析系统各有所长,在不同类型分析查询下,表现出不同的性能差异,使大家对数据科学兴起有了更具体的认识。目前,许多研究机构、学术团体和高校都在进行对大数据的研究以及大数据方面的学科建设和实验室建设,使得大数据成为一门真正的数据科学。

7.大数据产业成为一种战略性产业

早在2011年,全球知名咨询公司麦肯锡发布了《大数据:创新、竞争和生产力的下一个前沿领域》的报告,预示了大数据产业将会成为本世纪具有决定性的产业。发展大数据产业,利用大数据分析提高国家经济决策和社会服务能力,保障国家安全成为各国的重要战略。除大企业成为大数据最活跃的群体外,一些拥有大数据的政府部门也纷纷利用积累的数据,采用大数据技术进行分析,产生了突出的效果。

8.大数据生态环境逐步完善

虽然大数据生态环境目前还没有完善到令人满意的程度,但是它正在逐步完善。一方面,开源逐步成为主流;另一方面,大数据、云计算、物联网相互交融,开展大数据教育、计算机类相关的教育活动等,其中大数据教育更多是对人才方面的教育。

9.大数据处理架构的多样化模式并存

在大数据处理方面,Hadoop/MapReduce框架一统天下的模式已被打破,实时流计算、分布式内存计算、图计算框架等并存;在大数据存储与管理方面,大数据的4V特征放大了以前海量数据的存储与管理的挑战;在性能提升方面,内存价格不断降低,使内存计算将成为解决实时性大数据处理问题的主要手段。1.5 练习

1.大数据的特征是什么?

2.大数据的潜在价值是什么?

3.在大数据时代这个大背景下,大数据将面临什么挑战?

4.商业智能是什么?

5.商业智能和大数据是什么样的关系?

6.大数据的技术架构体系是什么?

7.大数据在未来有什么样的发展趋势?参考文献

[1]陶雪娇,胡晓峰,刘洋.大数据研究综述[J].系统仿真学报,2013,8(25):143.

[2]吴勇毅.值得关注的BI未来新趋势[N].信息与电脑,2010:32-33.

[3]邹大斌.大数据动了谁的奶酪[N].计算机世界,2013,31.

[4]刘业政,胡剑.商业智能的核心技术及体系结构研究[J].合肥工业大学学报,2004,27(8):885.

[5]于希国.Hitachi UCP融合基础架构解决方案[N].中国计算机报,2013,1.

[6]马天蔚.商业智能三趋势[J].每周电脑报,2004(32):42.

[7]伍永锋.商业智能及其技术[D].贵州大学,2008:40.

[8]余长慧,潘和平.商业智能及其核心技术[J].计算机应用研究,2002,19(9):14-16.

[9]李苹.EIM:精准商务智能的基础[J].软件世界,2006(19):55.

[10]阮京文.宏观视野的大数据价值探索之路[J].广告大观(综合版),2013(12):16.

[11]张引,陈敏,廖小飞.大数据应用的现状与展望[J].计算机研究与发展,2013(S2):216-233.

[12]何宝宏,魏凯.大数据技术发展趋势及应用的初步经验[J].金融电子化,2013(6):31-34.

[13]谭琳.大数据技术初探[J].科技创新导报,2014(4):48.

[14]王妍,柴剑平.大数据及相关技术解读[J].广播电视信息,2014(2):18-21.

[15]孟小峰,慈祥.大数据管理:概念、技术与挑战[J].计算机研究与发展,2013(01):146-169.

[16]陈健,冀超君.大数据的应用及其发展趋势[J].山西科技,2014,29(2):95-96.

[17]栗蔚,魏凯.大数据的技术、应用和价值变革[J].电信网技术,2013(07):6-10.

[18]黄哲学.面向大数据的商务智能技术及应用[R].中国科学院深圳先进研究院,2013.

[19]黄宜华.大数据研究的技术层面与主要研究内容[R].南京大学计算机科学技术系.

[20]罗诗惠.大数据的应用和发展探讨[J].计算机科学,2014(2).

[21]张文涛.大数据时代[R].阿里研究中心.

[22]周倚平.2010年商业智能研究分析报告[R].

[23]Tankard,C.Big data security.Network Security,2012(7):5-8.

[24]Smith,M,et al.Big data privacy issues in public social media.IEEE,2012:1-6.

[25]Sawant,N &.S.H.Big Data Application Architecture Q&A:A Problem-Solution Approach,2013.

[26]Oikawa Lucas,Alberto Ryuga.Big Data on the Internet of Things.An example for the E-health.

[27]Big data:The next frontierfor innovation,competition,and productivity,McKinsey Global Institute,2011.

[28]Pete.Warden.Big Data Glossary[M].

[29]赵刚.大数据:技术与应用实践指南[M].北京:电子工业出版社,2013.

[30]大数据白皮书[R].中国计算机学会(CCF),2013.

[31]大数据发展趋势预测[R].中国计算机学会(CCF),2014.

[32]http://blog.sina.com.cn/s/blog_6cf8fdd90101l2gu.html.第2章 数据组织存储技术

随着大数据时代的到来,系统中需要存储的数据越来越多,数据也呈现出越来越复杂的结构。如何对海量数据进行组织、存储变得尤为重要,其中存储技术是关键。本章主要从数据存储的相关概念、数据存储技术的研究现状、海量数据存储的关键技术以及数据仓库等方面对数据的组织与存储技术进行详细地介绍。2.1 数据存储概述

大数据应用的爆发性增长,直接推动了存储、网络以及计算技术的发展。随着经济全球化的不断发展,国际性的大型企业正在不断涌现,来自全球各地数以万计的用户产生了数以万计的业务数据,这些数据需要存放在拥有数千台机器的大规模并行系统上。同时,大数据也出现在日常生活和科学研究等各个领域,数据的持续增长使人们不得不重新考虑数据的存储和管理,海量数据存储对大数据时代至关重要。

数据存储是数据流在加工过程中产生的临时文件或加工过程中需要查找的信息。数据以某种格式记录在计算机内部或外部存储介质上。数据存储的命名需要反映出信息特征的组成含义。数据流要表现出动态数据的特征,反映的是系统中流动的数据;数据存储要表现出静态数据的特征,反映的是系统中静止的数据。2.1.1 数据存储介质

数据存储介质主要包括磁带、光盘、硬盘三大类,在这三种存储介质的基础上分别构成了磁带机、光盘库、磁盘阵列三种主要的存储设备。未来高速海量数据存储的重要发展趋势是采用固态存储和全息存储。磁带机以其廉价的优势因而应用广泛;光盘库适用于保存多媒体数据和联机检索,应用也越来越普遍;磁盘阵列具有较高的存取速度和数据可靠性特点,成为目前高速海量数据存储的主要方式。

磁盘阵列(RAID,Redundant Array of Independent Disks)是冗余的独立磁盘阵列的英文缩写。冗余的目的是为了补救错失、保证可靠性,独立是指阵列不在主机内而自成一个系统。一般将RAID分为不同的级别,主要包含RAID0~RAID50等数个规范,每个规范的侧重点各不相同。最常用的级别是RAID0~RAID6。磁盘阵列通过在多个磁盘上同时存储和读取数据来大幅度提高存储系统的数据吞吐量。磁盘列阵是由很多价格便宜的磁盘组合成的一个容量巨大的磁盘组,利用单个磁盘提供数据所产生的加成效果来提升整个磁盘的系统效果。通过控制和管理阵列控制器,磁盘阵列系统能够将几个、几十个甚至几百个磁盘连接成一个大磁盘,使总容量高达几百甚至上千兆,并且其速率也可以达到单个磁盘驱动器的几倍、几十倍甚至上百倍。磁盘阵列技术还有一个特点就是安全。它通过数据校验来提供容错功能,从而提供了更高的安全性。大多数RAID模式中的相互校验/恢复的措施都较为完备,有些是直接相互的镜像备份,用户数据一旦发生损坏,利用备份的信息即可使损坏的数据得以恢复,从而使RAID系统的容错度、系统的稳定冗余性以及用户数据的安全性都有很大提高。2.1.2 数据存储模式

数据存储的方式主要有DAS、NAS、SAN和IP存储。

1.DAS存储方式

DAS(Direct Attached Storage,直接连接存储)是利用连接电缆,将外置存储设备连接到一台主机上。主机与存储设备间有多种连接方式:SCSI,小型计算机系统接口;ATA,先进技术附加设备;SATA,串行ATA;FC,光纤通道。在实际应用中,SCSI方式使用最多,随着服务器CPU的处理能力越来越强,硬盘的存储空间越来越大,组成阵列的硬盘数量也越来越多,SCSI通道成了I/O瓶颈。传统SCSI所提供的存储服务有很多限制,其中最关键的是:与服务器连接距离有限;可连接的服务器数量有限;SCSI盘阵受固化的控制器限制以至无法进行在线扩容。在直接连接式存储中,由主机操作系统对文件和数据进行管理,因为主机结构中包括数据存储部分。操作系统在对磁盘数据的读写与维护管理过程中会占用主机资源(诸如CPU、系统I/O等)。可以看出,这种方式的优点是,磁盘读写带宽的利用率高,中间环节较少,购置成本较低;其缺点是,数据存储占用主机资源,使主机的性能受到较大影响,扩展能力有限,同时主机系统的软硬件故障对存储数据的访问也会直接造成影响。

2.NAS存储方式

NAS(Network Attached Storage,网络附加存储)是能够对不同应用服务器和主机进行访问的技术,是一种能够把独立且分布的数据整合为集中化管理的、大型的数据中心的技术。NAS采用独立于服务器,单独为网络数据存储而开发了一种文件服务器来连接所存储设备,自形成一个网络。这样,数据存储就不再是服务器的附属,而是作为独立的网络节点存在于网络中,为所有的网络用户共享。

NAS的存储方法是部件级的,可以作为网络的一个节点存在,借助于双绞网线直接连接到IP网络上。NAS没有地域限制,具有支持远程实时访问、备份、操作等特性,这让它更容易部署。此外,NAS还具有安装简单、容易扩展、方便维护、安全可靠、低成本等特点。

NAS通信是按照TCP/IP协议来进行的,采用业界标准文件共享协议(如:NFS、HTTP和CIFS)来实现共享,数据传输方式为文件。借助于NAS自带的文件管理系统,安装在不同操作系统(如APPLE系统、Windows系统、Linux或UNIX)的客户机可以使用同一文件管理系统,使得异构平台之间的数据共享得以真正地实现。因此NAS存储方式具有良好的异构平台兼容性。

3.SAN存储方式

SAN(Storage Area Network,存储区域网络)是指通过专用高速网将一个或多个网络存储设备和服务器连接起来的专用存储系统,未来的信息存储将以SAN存储方式为主。Fibre Channel(FC,光纤信道)协议是它的核心技术,该技术的建立是为了解决传统SCSI传输的距离限制。SAN支持HIPPI、IP、IPI、ATM和SCSI等多种高级协议,是ANSI为信道I/O接口和网络建立的一个标准集成。为实现在同一个物理连接上传送多种协议,光纤信道协议将网络和设备的通讯协议与传输物理介质隔离开来,这也是光纤信道协议的最大特性。

完全采用光纤连接是SAN技术的一大特点,从而保证了巨大的数据传输带宽,目前其传输距离可达到100km,数据传输速度也达到了4Gbit/s。一条单一的FC环路最大可以承载126个设备。与传统技术相比,为使存储与服务器分开成为现实,SAN技术将存储设备从传统的以太网中隔离出来成为独立的存储局域网络,这也是SAN的最大特点。此外,在SAN中实现容量扩展、数据迁移、远程容灾数据备份功能都比较方便。采用SAN技术的存储设备性能高,提高了数据的可靠性和安全性,但是其设备的互操作性较差,构建、管理和维护成本高,而且只能提供存储空间共享而不能提供异构环境下的文件共享。

4.IP存储

IP存储(Storage over IP,SoIP)是一种替代光纤通道(FC)的基于以太网和IP存储网的技术,它使服务器可以通过IP网络连接SCSI设备,在IP网络中传输块级数据,就如同使用本地的设备一样,用户不用关心设备的地址或位置。网络连接方式主要是IP和以太网。

由于IP存储技术既有的成熟性和开放性,使企业在制定和实现“安全数据存储”的策略和方案时,有了更多的选择空间。IP存储的介入大大丰富了远程的数据备份、数据镜像和服务器集群等领域的内容。同时,在企业IT部门设计传统SAN方案时必须要面对的两个问题(产品兼容性和连续性),在IP存储中已经不存在了。更重要的是,基于IP存储技术的新型SAN,兼具传统SAN的高性能和传统NAS的数据共享优势,为新的数据应用方式提供了更加先进的平台结构。

IP存储技术主要有两个方面,即存储隧道和本地IP存储。下面简单地介绍一下这两个方面。

存储隧道(Storage tunneling)技术为了解决两个SAN环境的互联问题,将IP协议作为连接两个异地光纤SAN的隧道,在传输过程中,光纤通道协议帧被包裹在IP数据包中,专用设备会解开传输到远端SAN后的数据包,将其还原成光纤通道协议帧。

存储隧道技术提供的是两个SAN之间点到点的连接通信,因为从功能上讲,这种技术与光纤的专用连接技术类似,所以,这种存储隧道技术也被称为黑光纤连接(Dark fiber optic links)。要实现这种技术需要花费较高的成本,其专用性较强,缺乏通用性,而且较大的延迟在一定程度上也影响了性能。不过,可以将现有的城域网和广域网充分利用是其最大的优势,而这一优势正好满足了宽带资源的需要,使其进一步地充分利用成为可能。但是,另一方面,虽然存储隧道技术是利用IP网络进行传输的,但无法充分利用IP网络管理和控制机制相对完善这一优势。这导致目录服务、流量监控、QoS等一些很好的管理控制机制无法应用到存储隧道这种技术中,其主要原因在于,IP网络智能管理工具无法识别嵌入到IP数据包中的光纤通道协议帧。所以,企业IT部门的系统维护人员,对包含存储隧道的网络环境进行单一界面的统一集中化管理的可能性很小。总体来说,存储隧道技术虽然借用了一些IP网络的成熟性优势,但还是要依赖昂贵而复杂的光纤通道产品。

本地IP存储(Native IP-based Storage)技术为使网络和存储无缝融合,在IP协议中直接集成了如SCSI和光纤通道等现有的存储协议。即在传统的SAN结构中,将光纤通道协议替换成IP协议,构建新型SAN系统IP-SAN,使其在技术上与LAN一致,而在结构上与LAN隔离,而不是在物理上可以在企业IT系统中,合成一个将存储网络和传统的LAN整合在一起的网络。

在这种新型的IP-SAN中,用户可以直接把以往用户在IP网络上获得的维护经验、技巧应用到IP-SAN上,不仅能够保证性能,又有效地降低了成本。借助于随处可见的IP网络工具,IP-SAN可以方便轻松地进行网络维护。此外,与光纤技术培训相比,维护人员的培训工作也简单快捷许多。

本地IP存储技术还具有非常明显的优势。一方面,在本地IP存储技术中,用户接触到的是诸如IP协议和以太网这样比较熟悉的技术内容,并且,各种IP通用设备使得用户的选择空间变得非常广。实际上,充分利用现有设备是本地IP存储技术的设计目标之一。因此,可以在IP-SAN中充分利用传统的SCSI存储设备和光纤存储设备。另一方面,本地IP存储技术所具备的一体化的管理界面,也可以完全整合IP-SAN与IP网络。

在IP-SAN中,只要是主机和存储系统都能提供标准接口,无论哪一位置的数据都可由任意位置的主机进行访问,不管是在相隔几米的同一机房中,还是在相距数千米外的异地,这使得本地存储和远程存储的界限更加模糊。此外,本地IP存储技术的访问方式既可以与NAS结构中的通过NFS、CIFS等共享协议访问类似,也可以与本地连接和传统SAN中的通过本地设备级访问类似。2.1.3 大数据存储存在的问题

随着结构化数据和非结构化数据数量的不断增长,以及分析数据来源的多样化,之前的存储系统设计已经无法满足大数据应用的需求。对于大数据的存储,存在以下几个不容忽视的问题。

1.容量

大数据时代存在的第一个问题就是“大容量”。“大容量”通常指的是可达PB级的数据规模,因此,海量数据存储系统的扩展能力也要得到相应等级的提升,同时,其扩展还必须简便,为此,通过增加磁盘柜或模块来增加存储容量,这样可以不需要停机。在解决容量问题上,不得不提及LSI公司的全新Nytro智能化闪存解决方案,采用这种方案,客户可以将数据库事务处理性能提高30倍,并且具有超过每秒4GB的持续吞吐能力,非常适合于大数据分析。

2.延迟“大数据”的应用不可避免地存在着实时性问题,尤其是涉及到网上交易或金融类的应用。“大数据”应用环境通常像HPC(高性能计算)那样需要较高的IOPS性能。正如改变了传统IT环境一样,服务器虚拟化的普及也对高IOPS提出了需求。为了迎接这些挑战,各种模式的固态存储设备应运而生,小到简单的在服务器内用做高速缓存的产品,大到全固态介质可扩展存储系统。通过高性能闪存存储,自动、智能地对热点数据进行读/写,高速缓存的系列产品如LSI Nytro都在蓬勃发展。

3.安全

像金融数据、医疗信息以及政府情报等这些特殊行业的应用,都有自己的安全标准和保密性需求。对IT管理者来说,这些都是必须遵从的。但是,在过去没有需要多类数据相互参考的情况,而现在大数据的分析往往需要对多种数据混合访问,这就催生出了一些新的、需要考虑安全性的问题。此处不得不提及利用DuraClassTM技术的LSI SandForceR闪存处理器,它实现了企业级的闪存性能和可靠性,实现了简单、透明的应用加速,既安全又方便。

4.成本

成本控制是正处于大数据环境下的企业的关键问题,只有让每一台设备都实现更高的“效率”,同时减少昂贵的部件,才能控制住成本。目前,进入主存储市场的重复数据删除、多数据类型处理等技术,都可为大数据存储应用带来更大的价值,提升存储效率。在数据量不断增长的环境中,通过减少后端存储的消耗(例如LSI推出的SyncroTMMX-B机架服务器启动盘设备),可以为企业减少成本,即使只降低了几个百分点,这样的服务器也能够获得明显的投资回报。现今,数据中心使用的基于传统引导方式的驱动器不仅故障率高,而且具有较高的维修和更换成本。如果用SyncroTMMX-B机架服务器取代数据中心的独立服务器引导驱动器,则其可靠性能提升高达100倍。并且由于对主机系统是透明的,它能为每一个附加服务器提供惟一的引导镜像,简化了系统管理,提升了可靠性,并且节电60%,做到了真正的成本节省。Hadoop通常以集群的方式运行在廉价服务器上,也可以有效控制海量数据处理和存储的成本

5.数据的累积

大数据应用大都会涉及法规遵从问题,这些法规通常要求数据保存几年或者几十年。例如为了保证患者的生命安全,医疗信息通常会被保存不少于15年,财务信息通常需要保存7年。因为对数据的分析大都是基于时间段进行的,任何数据都是历史记录的一部分,所以,有些大数据的存储希望能被保存得更久一点。数据被保存的时间越长,数据积累的就越多。要实现数据的长期保存,就要求大数据存储系统具有能够持续进行数据一致性检测的功能,以及其他保证长期高可用的特性,同时还要实现直接在原位进行数据更新的功能。

6.灵活性

通常大数据存储系统的基础设施规模都很大,为了保证存储系统的灵活性,使其能够随着应用分析软件一起扩容及扩展,必须经过详细设计。由于在大数据存储环境中,数据会同时保存在多个部署站点上,因此,没有必要进行数据迁移。一个大型的数据存储基础设施必须能够适应各种不同的数据场景与应用类型,因为,它一旦开始投入使用,就难以进行调整了。

7.应用感知

目前,有些大数据用户已经在开发一些针对应用的基础设施,例如针对政府项目开发的系统、大型互联网服务商创造的专用服务器等。应用感知技术在主流存储系统领域的应用越来越普遍,它是改善系统效率和性能的重要手段。因此,应用感知技术也应该在大数据存储环境中使用。

8.针对小用户

在大数据环境下,不仅仅是一些特殊的大型用户群体依赖大数据,作为一种商业需求,在不久的将来,小型企业也一样会应用到大数据。因此,为了吸引那些对成本比较敏感的小用户,一些存储厂商已经在开发小型的大数据存储系统了。2.2 数据存储技术研究现状

目前,传统关系型数据库仍然是大部分互联网应用数据存储管理的主要选择,对数据的分析处理则通过编写SQL语句或MPI程序来完成。在用户和数据规模都相对较小的情况下,传统数据库系统尚可以高效运行。但是,在用户数量、存储管理的数据量都不断增加的情况下,如何应对更大规模的数据和满足更高的访问量,是许多热门的互联网应用在扩展存储系统时都会遇到的问题。2.2.1 传统关系型数据库

在数据存储管理发展史上,传统关系型数据库是一座重要的里程碑。随着互联网时代的到来,之前主要集中在金融、证券等商务领域的数据存储管理应用模式已经不适用了。金融、证券等商务领域的数据处理对数据查询分析能力的便捷性、按照严格规则处理事务能力的速度、多用户访问的并发性以及保证数据的安全性有较高要求。正是针对这些要求,传统关系型数据库的设计具有这样一些特点:数据组织形式结构化、一致性模型严格、查询语言简单便捷、数据分析能力强大以及程序与数据独立性较高。也正是由于这些优点,传统关系型数据库得到了广泛的应用。

随着互联网时代的到来,需要处理的数据已经远远超出了关系型数据库的管理范畴,各种非结构化数据(包括博客、标签、电子邮件等超文本以及图片、视频与音频等)逐渐成为需要存储和处理的海量数据的重要组成部分。互联网数据快速访问,大规模数据分析的需求在关系型数据库中已经不能得到满足。主要表现在以下几个方面。

1.应用场景局限

互联网应用主要面向的是半结构化和非结构化数据,这类应用与传统的金融、经济等应用不同,它们大多没有事务特性,不要求保证严格的一致性,这本身就与传统关系型数据库的设计初衷不相同。虽然传统的数据库厂商也根据海量数据应用的特点针对性地提出了一系列改进方案,但是传统数据库在应对互联网海量数据存储效果上并不理想,因为这些解决方案并没有真正地从互联网应用的角度去设计。

2.快速访问海量数据的能力被束缚

关系模型是一种按内容访问的模型,它是关系数据库的基础。在传统的关系型数据库中,行的值由相应的列的值来定位。这种访问模型会影响快速访问的能力,因为在数据访问过程中引入了耗时的输入输出。传统的数据库系统为了提高数据处理能力,一般是通过分区技术(水平分区和垂直分区)来减少查询过程中数据输入输出的次数,从而缩短响应时间。但是,这种分区技术对海量数据规模下的性能改善效果却并不明显。

Web2.0中的许多特性都与关系模式中的严格范式设计相矛盾。例如,标签的分类模型是一种复杂的多对多关系模型,如果按照传统关系数据库范式设计要求——消除冗余性,就要将标签和内容存储在不同的表中,这就会导致系统性能的低下,因为对标签的操作需要跨表完成(在分区的情况下,还可能需要跨磁盘、跨机器操作)。

3.对非结构化数据的处理能力不足

传统的关系型数据库对非结构化数据(视频、网页等)的支持度较差,只局限于一些结构化数据中(数据、字符串等)。随着硬件技术的快速发展、互联网多媒体交流方式的广泛推广以及用户应用需求的不断提高,处理庞大的音频、视频、图像与邮件等复杂数据类型的需求日益增长,用户对这些数据的处理要求也不只满足于简单的存储,而上升为识别、检索以及深入加工,对于这类需求传统数据库早已显得力不从心了。

4.扩展性能差

在海量规模下,扩展性差是传统数据库的一个致命弱点。一般通过向上扩展(Scale up)和向外扩展(Scale out)来解决数据库扩展的问题。这两种方式分别从两个不同的维度来解决数据库在海量数据下的压力问题。向上扩展是通过升级硬件来提升速度,从而缓解压力。向外扩展则是按照一定的规则将海量数据进行划分,再将原来集中存储的数据分散到不同的物理数据库服务器上。在向外扩展的理念指导下,分片(Sharding)成为传统数据库的一种解决扩展性的方法。通过叠加相对廉价的设备,分片在存储和计算方面进行了扩展,不再受单节点数据库服务器输入输出能力的限制,提高了快速访问能力及提供了更大的读写带宽。但是,这种解决扩展性的方案在互联网的应用场景下仍然存在着一定的局限性。例如,这会要求互联网应用实现复杂的负载自动平衡机制,因为数据存储在多个节点上时,就要考虑负载均衡的问题,从而会花费较高代价;由于数据库范式规定严格,数据被表示成关系模型,从而难以被划分到不同的分片中;而一些数据可用性和可靠性问题也同样存在。2.2.2 新兴的数据存储系统

通过对上节描述的传统关系型数据库的局限性可以看出,传统的数据库已经不能满足互联网应用的需求了。在这种情况下,一些主要针对非结构化数据的管理系统开始出现。这些系统为了保障系统的可用性和并发性,通常采用多副本的方式进行数据存储。为了在保证低延时的用户响应时间的同时维持副本之间的一致状态,采用较弱的一致性模型(如最终一致性模型),而且这些系统也都提供了良好的负载平衡策略和容错手段。

1.HDFS

Hadoop是一个开源分布式计算平台,属于Apache软件基金会旗下,其核心是HDFS(分布式文件系统)和MapReduce,为用户提供分布式基础架构的系统底层细节。HDFS(Hadoop Distributed File System)是由Hadoop实现的一个分布式文件系统。它允许用户将Hadoop部署到低廉的硬件上,形成分布式系统,具有高容错性和高伸缩性等优点。通过MapReduce分布式编程模型,在不了解分布式系统底层细节的情况下,用户也可以开发并行应用程序。因此,利用Hadoop用户在组织计算机资源时能够更加轻松,进而能够搭建分布式计算平台,充分利用集群的计算和存储能力,完成大规模数据的处理。

HDFS由一个名称节点(NameNode)和N个数据节点(DataNode)组成,每个节点都是一台普通的计算机。在使用方式上HDFS与单机文件系统非常相似,它可以创建、复制和删除文件,创建目录,查看文件的内容等。但HDFS底层把文件切割成了Block,然后在不同的DataNode上分散地存储着这些Block,与此同时,为达到容错容灾的目的,每个Block可将数据复制数份存储于不同的DataNode上。整个HDFS的核心是NameNode,它通过一些数据结构的维护来记录每一个文件被切割成了多少个Block,可以从哪些DataNode中获得这些Block,以及各个DataNode的状态等重要信息。

HDFS的设计目标有以下几点。(1)硬件故障检测及恢复。硬件故障是常态,而不是异常,硬件故障的检测和自动快速恢复可以说是HDFS最核心的目标。构成整个HDFS系统的组件数目是巨大的——数百台或数千台存储着数据文件的服务器,每一个服务器都很有可能出现故障,这意味着在HDFS里总有一些部件是失效的。(2)流式的数据访问。运行在HDFS上的应用程序不是普通文件系统上的普通程序,而是能流式地访问数据集。HDFS适合批量处理,而不擅长与用户交互式地处理。所以较之数据访问的低延时问题,它更看重数据吞吐量。(3)简化一致性模型。HDFS简化了数据一致性问题,并使高吞吐量的数据访问成为可能,这主要得益于大部分的HDFS程序操作文件仅需一次写入,多次读取,经过创建、写入、关闭之后的文件不需要再进行修改。(4)海量数据支持。运行在HDFS上的应用程序大都具有很大的数据集。HDFS的典型文件大小一般都在GB字节至TB字节。HDFS不仅可以用来优化大文件存储并且能提供集中式的高数据传输带宽,还能够使单个集群支持成百上千个节点。通常独立的Hadoop文件系统就能够支持上千万个文件。(5)通信协议。HDFS系统的所有通信协议都是以TCP/IP协议为基础的。当明确配置了端口的名称节点和客户端连接之后,我们称它和名称节点的协议为客户端协议(Client Protocal),而名称节点和数据节点(DataNode)之间则采用数据节点协议(DataNode Protocal)。(6)异构平台间的可移植性。HDFS在设计的时候就考虑到异构软硬件平台的可移植性,可以简单方便地实现平台间的迁移,这种特性使得HDFS适合作为大规模数据应用平台。

Hadoop这个分布式计算平台可以让用户轻松使用和架构,在Hadoop上用户可以轻松地开发和运行处理海量数据的应用程序。Hadoop的优点一目了然:高可靠性、高扩展性、高容错性和高效性。基于Hadoop的应用因其突出的优势已经层出不穷,特别是在互联网领域的应用中。在互联网的不断发展中,不断涌现了一些新的业务模式,而对Hadoop的应用也从互联网领域拓展到了电信、银行、电子商务与生物制药等领域。

本书将在第4章中对Hadoop进行更加详细地介绍。

2.NoSQL

NoSQL是泛指非关系型、分布式和不提供ACID的数据库,它不是单纯地反对关系型数据库,而是强调键值存储和文档数据库的优点。

如上节所述,由于传统关系型数据库存在着灵活性差、扩展性差与性能差等原因,它们在处理数据密集型应用方面显得无能为力。最近出现的一些存储系统转向采用不同的解决方案来满足扩展性方面的需求,舍弃了传统关系型数据库管理系统的设计思想。人们普遍把这些没有固定数据模式的,可以水平扩展的系统统称为NoSQL(有观点认为将其称作NoREL更恰当),这里的NoSQL指的是Not Only SQL,而不是No SQL,它们是对关系型SQL数据系统的补充,而不是与之对立。

NoSQL系统普遍采用了以下一些技术。(1)简单数据模型。大多数NoSQL系统采用的是一种更加简单的数据模型。这与分布式数据库不同,在这种更加简单的数据模型中,每个记录都有惟一的键,并且外键和跨记录的关系并不被系统支持,只支持单记录级别的原子性。这种一次操作获取单个记录的约束使数据操作可以在单台机器中执行,由于没有分布式事务的开销,极大地增强了系统的可扩展性。(2)弱一致性。NoSQL系统的一致性是通过复制应用数据来实现的。由于NoSQL系统广泛应用弱一致模型,如最终一致性和时间轴一致性,减少了因更新数据时副本要同步的开销。(3)元数据和应用数据的分离。NoSQL数据管理系统需要对元数据和应用数据这两类数据进行维护。但是这两类数据的一致性要求并不一样,只有元数据一致且为实时的情况下,系统才能正常运行;对应用数据而言场合不同,对其一致性需求也不同。因此,NoSQL系统将这两类数据分开管理,就能达到可扩展性目的。在一些NoSQL系统中甚至并没有元数据,解决数据和节点的映射问题需要借助于其他方式。

NoSQL借助于上述技术能够很好地解决海量数据带来的挑战。

与关系型数据库相比,NoSQL数据存储管理系统主要有以下几个优势。(1)更简便。NoSQL系统提供的功能较少,避免了不必要的复杂性,从而提高了性能。相比较而言,关系型数据库提供了强一致性和各种各样的特性,但许多特性的使用仅发生在某些特定的应用中,大部分得不到使用的特性使得系统更复杂。(2)高吞吐量。与传统关系型数据库系统相比,一些NoSQL数据系统的吞吐量要高得多。(3)低端硬件集群和高水平扩展能力。与关系型数据库集群方法不同的是,NoSQL数据系统是以使用低端硬件为设计理念的,能够不需付出很大代价就可进行水平扩展,因此可以为采用NoSQL数据系统的用户节省很多硬件方面的开销。(4)避免了对象—关系映射。许多NoSQL系统能够存储数据对象,如此就规避了数据库中关系模型和程序中对象模型相互转化的昂贵代价。

NoSQL向人们提供了高效、廉价的数据管理方案。许多公司开始借鉴Google的Bigtable和Amzon的Dynamo的主要思想来建立自己的海量数据存储管理系统,而不再使用Oracle甚至MySQL。现在一些系统,如Cassandra被Facebook捐给了Apache软件基金会,开始变成开源项目了。

目前市场上主流的NoSQL数据存储工具有:Bigtable、Dynamo、HBase、MongoDB、CouchDB和Hypertable。此外还存在着一些其他的开源的NoSQL数据库,如Neo4j、Riak、Oracle Berkeley DB、Apache Cassandra与Memcached等。

本书将在第3章中对NoSQL进行详细介绍。

3.NewSQL

NewSQL是对各种可扩展/高性能数据库的简称,这类数据库在保持了传统数据库支持ACID和SQL等能力的同时,还具有NoSQL对海量数据的存储管理能力。人们普遍认为系统的性能是由ACID和支持SQL的特性制约的,其实不然,系统性能是由一些其他的机制如缓冲管理、锁机制或日志机制等影响的。因此,只需优化这些技术,在处理海量数据时,关系型数据库系统也能表现出良好的性能。

这类NewSQL系统虽然内部结构变化很大,但它们都有两个显著的共同点:都支持关系数据模型和都是用SQL作为其主要的接口。目前的NewSQL系统大致有三类:采用新的架构、利用高度优化的SQL存储引擎和提供透明分片的中间件层。

如今已经出现了许多NewSQL数据库。例如:Google Spanner、VoltDB、RethinkDB、Clustrix、TokuDB和MemSQL等。

当然,NewSQL与NoSQL也有交叉的地方。比如,可以将RethinkDB看作是NewSQL数据库中MySQL的存储引擎,亦可看作是NoSQL数据库中键/值存储的高速缓存系统。现在一些NewSQL提供商为没有固定模式的数据使用自己的数据库提供存储服务,同时一些NoSQL数据库也开始支持SQL查询和ACID事务特性。NewSQL既能够提供SQL数据库的质量保证,也能提供NoSQL数据库的可扩展性。VoltDB就是这样一个NewSQL数据库,其开发公司的CTO宣称,VoltDB使用NewSQL的方法处理事务的速度比传统数据库系统快45倍。可以把VoltDB扩展到39个机器上,在300个CPU内核中每分钟处理1600万事务,其所需的机器数比Hadoop集群要少很多。2.3 海量数据存储的关键技术

为了满足数据、用户规模的不断增长的需求,自适应的数据划分方式以及良好的负载均衡策略对于构建一个TB级乃至PB级的数据存储系统来说是必不可少的。而且,也需要在保证系统可靠性的同时权衡数据的可用性及一致性,用以满足互联网应用对高吞吐率、低延时的要求。2.3.1 数据划分

在分布式环境中,进行数据存储必须跨越多个存储单元。影响系统性能、负载平衡以及扩展性的关键因素之一就是数据的划分。系统必须在用户请求到来时将请求进行合理分发,这样才能提供低延时的系统响应,克服系统性能的瓶颈。哈希映射和顺序分裂是目前海量数据管理系统进行数据划分主要采取的两种方式。为了适应数据的多样性和处理的灵活性,在现在的互联网应用中,数据通常以键/值对方式进行组织。哈希映射这种数据划分方式带来的性能收益往往依赖于哈希算法的优劣性,因为它是根据数据记录的键值进行哈希运算,然后再根据哈希值将数据记录映射至对应的存储单元中。顺序分裂的数据划分方式是渐进式的。根据键值排序将数据写到数据表中,当数据表大小达到阈值后即可进行分裂,然后将分裂得到的数据分配至不同的节点上继续提供服务。这样,根据键值新流入的数据就能自动找到相应的分片并插入到表中。

Cassandra和Dynamo对数据的划分是通过一致性哈希映射方式进行的。这种方式在为系统带来良好的扩展性的同时,通过在数据流入时均匀地映射数据到对应的存储单元中,能够最大限度地避免产生系统热点。

Bigtable对数据的划分采用了顺序分裂的方式。这种划分方式是渐进式的,能够有效地利用系统资源提供良好的扩展性。但是频繁插入某个键值范围可能会导致负载热点的产生。区别于哈希映射方式的是,顺序分裂的数据和存储节点并不是直接映射的,为了集中管理这种分裂和映射行为,在Bigtable中需要有一个主控节点。因此,主控节点的管理能力限制了整个系统的扩展性。

PNUTS的数据组织结合了这两种方式,它既提供顺序表的组织方式,又提供哈希表的组织形式,采用了顺序分裂的方式,按照键或键哈希值来划分顺序表或哈希表中的数据。简而言之,PNUTS哈希表中的数据按照键的哈希值来有序存放。这些系统虽然根据不同的数据模型(顺序表、哈希表、键/值对等)来对数据进行组织,但它们都按照这些数据组织的特性实现了可扩展的数据划分。所以海量数据存储系统设计首要解决的问题应当是基于应用数据的特性,合理地对数据划分策略进行敲定,从而达到高可扩展性。2.3.2 数据一致性与可用性

在分布式环境下,数据一致性为数据操作的正确性做出保证,而数据可用性则是数据存储的基石。一般情况下,为了解决数据的可用性问题往往会采用副本冗余、记录日志等方式。然而副本冗余又会带来数据一致性的问题。在运用副本冗余方式的分布式系统中,数据一致性及系统性的矛盾往往难以调和,需要在严格的数据一致性和系统的性能(如响应时间等)之间进行折中。有时在互联网应用需求下,要牺牲严格的数据一致性来调和这种矛盾,即为了保证高效的系统响应而允许系统弱化一致性模型,同时采用异步复制的手段用以确保数据的可用性。

Dynamo、Bigtable和PNUTS系统的数据高可用性主要是通过副本冗余的方式来保证的。然而,它们的具体实现并不完全相同。Dynamo采用的是整个系统中无主从节点之分的非集中的管理方式,其副本的异步复制就是在整个哈希环上通过gossip机制进行通信来完成的。而Bigtable和PNUTS采用的是集中管理方式,其服务节点内存中的数据可用性均是利用日志的方式来保证的。但是在数据存储可用性方面,两者又有不同,与Bigtable依赖于底层分布式文件系统的副本机制不同,PNUTS的数据冗余存储主要是采用基于发行/订阅(pub/sub)通信机制的主从式异步复制方式来实现的:先将数据同步至主副本,接着再通过发行/订阅机制异步更新至所有副本。

如上所述,Dynamo和PNUTS是需要跨数据中心部署的,均采用异步复制的方式进行副本更新,为维护系统的高性能而在某种程度上牺牲一定的数据一致性。由此可知,数据一致性、可用性及系统性能的权衡考虑与应用特性和部署方式紧密相关。2.3.3 负载均衡

在分布式环境下,如何进行高效数据管理的关键问题是负载均衡。负载均衡主要包含两个方面的内容:数据的均衡与访问压力均衡。如前所述,在分布式环境中,采用一定的划分策略,例如哈希、顺序分裂等,将数据进行划分并存储于不同的节点之上,再由不同的节点来对用户的访问请求进行处理。但是用户访问请求的分布规律具有无法预测性,这最终会导致数据存储分布及节点访问压力的不均衡。由于存在数据分布和访问负载不均衡的情况,整个系统的性能在持续的数据加载压力以及频繁的并发访问下将会下降。因此海量存储系统需要有一套良好的均衡机制来保证数据加载的高吞吐率、系统响应的低延时以及系统的稳定性。

虚拟节点是一种能够使访问压力达到均衡的技术,它能够采用虚拟化的手段来单元化节点的服务能力,根据访问压力大小将压力较小的虚拟节点映射至服务能力较弱的物理节点上,对压力较大的节点则映射至能力较强的节点上。这样在访问压力达到均衡的同时,数据也会达到均衡状态。为了使数据在均衡过程中数据迁移的开销达到最小,Dynamo采用了虚拟化技术,通过量化节点的存储能力,使虚拟后的存储节点能够相对均匀地分布到集群哈希环上,从而有效地避免了数据在均衡过程中导致的全环的数据移动。在非集中式系统中,可以由任意节点发起这些均衡操作,并由gossip通信机制和集群中另外的节点来协调完成。

Bigtable与像Dynamo这样的非集中式管理方式不同,对各个子表服务器(tablet server)上的访问负载状态是由主控节点(master)来监控的。同样的,子表的分裂和迁移是利用主控节点来调度管理的,从而将访问压力均匀地分散到各个子表服务器上。Bigtable的数据底层存储运用的是分布式文件系统,以一种巧妙的方式避免了数据均衡的问题,因为其访问压力均衡过程中并不涉及存储数据的迁移操作。相似的方式同样被PNUTS用来均衡访问压力。不一样的是,PUNTS的数据底层存储是本地的文件系统或数据库系统,它在实施子表(tablet)的分裂及迁移之际,需要对存储数据进行迁移。

显而易见,有效的数据划分方式是一柄双刃剑,一方面它为系统扩展性提供基础,另一方面也给系统带来了负载均衡的问题。因此,海量存储系统面临着这样一个挑战:如何在通过虚拟化节点或表分裂等方式更改数据分布格局,在访问负载均衡的同时,要避免数据迁移,或者至少尽量降低数据迁移量。2.3.4 容错机制

分布式系统的健壮性标志是容错性。保证系统的可用性和可靠性的关键问题就是节点的失效侦测和失效恢复。

1.失效侦测

在像Dynamo和Cassandra这样的非集中式系统中,为了解每个节点的活动状态,各个节点之间需要定期进行交互,从而完成对失效节点的侦测。而在集中式系统中,整个分布式系统的节点状态信息需要由专门的节点(部件)来维护,失效节点是否存在需要通过“心跳”机制来侦测。如Bigtable的失效侦测主要是采用分布式锁服务chubby追踪主控节点的子表节点的服务状态来实现的。PNUTS中节点失效是否存在的判断则主要来自子表控制器(tablet controller)部件维护的活动节点路由信息。

2.失效恢复

为了确保系统的可靠性与可用性,需要有相应的失效恢复策略来完成对系统中侦测到的失效节点的恢复。在分布式系统中,存在两种节点失效的情况:临时失效(例如网络分区等)和永久失效(例如磁盘损坏、节点死机等)。在副本冗余存储的分布式系统中,失效通常会造成失效节点内存中数据的丢失,通常解决这类问题的方法是日志重做。而在不同的系统中具体的失效恢复策略又有不同的特点。

在此以Bigtable为例。Bigtable并不区分是临时失效还是永久失效。Bigtable依赖主控节点通过“心跳”机制来完成对失效的侦测,即在限定时间内如果主控节点无法通过“心跳”机制获得从节点的响应就认为该从节点已经失效。就算临时失效的节点有可能与主控节点重新建立连接,主控节点也会停止这些节点,因为这些节点上的服务早已被分配到其他的节点上了。由于服务的迁移并不涉及存储数据的移动,也就不会带来额外的系统开销,故究竟属于何种失效状态也就不存在区分的必要。这种共享存储方式依靠底层的分布文件系统,也对系统的失效恢复进行了简化。

在集中式系统中,主节点各种失效恢复方式的差异是由其主从节点的功能差异导致的。主节点的失效将是灾难性的,因为它维护的是系统元信息。在集中式系统中,为了防止主节点的失效,通常是利用节点备份(多机、双机备份)。然而Bigtable的集群节点的状态信息主要依靠chubby来管理,整个系统存储的元信息则使用子表服务器来加以管理,从而将主节点的管理功能弱化,降低了主节点失效而引起灾难的可能性,与此同时也减小了主节点恢复的复杂性。

在非集中数据存储系统中,如Dynamo,其哈希方式的数据划分策略,使得系统中各个节点在作为存储节点的同时也作为服务节点,服务迁移的同时伴随着海量的数据迁移。因此系统需要极其认真地应付各种各样的失效状态,在失效恢复过程中应当努力避免由于大规模迁移存储数据而导致的系统花销。基于上述原因,临时失效和永久失效在Dynamo中会被区别对待。

由上可以看出,失效侦测技术的选择与集群管理方式是集中式还是非集中式有着紧密的关系,该选择一般相对固定,但是失效恢复策略的实现却因应用而有所不同。系统的设计者可基于应用特性,权衡系统性能与数据一致性、可用性等多个影响因素来选择更合适的失效恢复策略。2.3.5 虚拟存储技术

虚拟存储就是将硬盘,RAID等多个存储介质模块按照一定的手段集中管理起来,在一个存储池(Storage Pool)中统一管理全部的存储模块。站在主机和工作站的角度来看,就是一个分区或是卷,而不是多个硬盘,更类似于一个超大容量(例如大于1TB)的硬盘。这种能够把多种、多个存储设备统一管理起来,为使用者提供大容量且高数据传输性能的存储系统,称之为虚拟存储。根据虚拟存储的拓扑结构可将之分为对称式和非对称式两种。对称式虚拟存储技术是指将虚拟存储控制设备和存储软件系统、交换设备集成为一个整体,内嵌于网络数据传输路径之中;非对称式虚拟存储技术是指虚拟存储控制设备独立于数据传输路径之外。根据虚拟化存储的实现原理也可分为数据块虚拟与虚拟文件系统两种方式。

虚拟存储系统的结构如图2.1所示。共享存储系统由三大部分组成,即运行于主机的存储管理软件、互联网络、磁盘阵列等网络存储设备。图2.1 虚拟存储系统的结构

与之对应,可以分别在共享存储系统的三个层次上实现存储虚拟化,即基于主机的虚拟存储、基于网络的虚拟存储和基于存储设备的虚拟存储。各个层次的虚拟技术都各有特点,但其目的都是为了使共享存储更易于管理。2.3.6 云存储技术

云存储是由云计算(cloud computing)概念延伸以及衍生发展而来的一个新的概念。云计算则是并行处理(Parallel Computing)、分布式处理(Distributed Computing)以及网格计算(Grid Computing)的发展,是借由网络把巨大的计算处理程序自动拆分为无数个相对较小的子程序,然后通过多部服务器所形成的庞大系统经运算分析之后,再把得到的处理结果传回给用户。借助云计算技术,网络服务提供者能够在短短的几秒内,处理数以千万计乃至上亿计的信息,达到提供与“超级计算机”一样强大的网络服务。与云计算的概念相类似,云存储是指凭借分布式文件系统、集群应用、网格技术等功能,通过应用软件将网络中大量不同类型的存储设备集合起来协同作用,实行共同对外提供数据存储以及业务访问功能的一个系统,这样既保证了数据的安全性,也节约了存储空间。简单说来,云存储就是将储存资源放到云上供用户存取的一种新兴方案,使用者不管处于何时何地都能够通过任何可连网的装置连接到云上,方便地存取数据。

云存储是一种新型态存储系统,它的产生是为了处理高速成长的数据量。云存储相比于传统的存储设备,不单单是一个硬件,更是一个由多个部分(如存储设备、网络设备、应用软件、接入网、公用访问接口、服务器、客户端程序等)组成的复杂系统。存储设备是各部分的核心,对外提供的数据存储以及业务访问服务主要通过应用软件来完成。云存储系统由4层组成:存储层、基础管理层、应用接口层和访问层,如图2.2所示。图2.2 云存储系统组成图

云存储的最基础部分就是存储层。存储设备可以是IP存储设备,如ANS和iSCSI等。也可以是DAS存储设备,如SCSI或者SAS以及FC光纤通道存储设备等。云存储中的存储设备通常分布在不同地域且数量非常庞大,通过互联网、广域网或FC光纤通道网络把各个存储设备连接在一起。统一存储设备管理系统在存储设备的上一层,它能够完成多链路冗余管理,存储设备的逻辑虚拟化管理以及硬件设备的状态监控与故障维护。

云存储最核心、最难以实现的部分是基础管理层。基础管理层的主要功能是使云存储中多个存储设备之间可以协同工作,以便对外提供同一种服务,能够提供更大、更好、更强的数据访问性能,它所采用的技术主要有集群系统、分布式文件系统和网格计算等。为了保证云存储中的数据不会被未授权的用户所访问,它还提供了CDN内容分发系统以及数据加密技术。同时,为了确保云存储中的数据不丢失以及云存储自身的安全和稳定,它还采取了各种数据备份、数据容灾技术和措施。

云存储中灵活性最好的部分是应用接口层。根据实际业务类型的不同,不同的云存储运营单位开发的应用服务接口及提供的应用服务也不一样。例如在线音乐播放应用平台、网络硬盘应用平台、IPTV和视频点播应用平台、远程教学应用平台等。

用户获得云存储系统的授权后,就可以通过标准的公用应用接口进行登录并享受云存储服务。云存储提供的访问类型和访问手段会根据云存储运营单位的不同而有所不同。2.4 数据仓库

数据仓库是决策支持系统和联机分析应用数据源的结构化数据环境。本节主要从数据仓库的相关概念、体系结构、设计与实施等方面介绍数据仓库,同时阐述了数据的抽取、转换和装载以及联机分析处理等数据仓库技术。2.4.1 数据仓库的相关概念

随着计算机技术的快速发展以及企业界新需求的不断提出,数据仓库技术的出现便水到渠成。尤其是在大数据时代背景下,传统的以单一的数据资源,即以数据库为中心的数据库技术已不能满足数据处理多样化的需要。当前的数据处理大致可以分为两种:操作型处理(事务型处理)和分析型处理(或信息型处理)。操作型处理主要是为企业的特定应用服务的,是对数据库联机的日常操作,如对一个或一组记录进行查询和修改,人们普遍关心的是系统的响应时间以及数据的完整性和安全性。分析型处理主要是为管理人员的决策分析服务的,例如DSS、EIS和多维分析等,这类服务经常要访问大量的历史数据。两者之间的巨大差异导致了操作型处理和分析型处理的必然分离。

1.数据仓库定义

数据仓库(Data Warehouse)的概念来自于W·H·Inmon在1992年出版的《建立数据仓库》(Building the Data Warehouse)一书。数据仓库是以关系数据库、并行处理和分布式技术为基础的信息新技术。除此之外,业界对数据仓库的定义还有很多种。

W·H·Inmon对数据仓库的定义:数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合,用来支持管理人员的决策。

SAS软件研究所的观点:数据仓库是一种管理技术,旨在通过通畅、合理、全面的信息管理,达到有效的决策支持。

从数据仓库的定义可以看出,与数据库为事务处理服务不同,数据仓库是明确为决策支持来服务的。

2.数据仓库的特点

从数据仓库的定义不难看出,数据仓库有四个主要特点:面向主题的、集成的、数据不可更新的、数据是随时间不断变化的。(1)数据仓库是面向主题的

面向主题是数据仓库中最主要的一个特点。数据仓库的数据是按照一定的主题域进行组织的,排除了对决策无用的数据,提供特定主题的简明视图,而传统数据库是面向应用进行数据组织的。主题是一个在较高层次上将企业信息系统中的数据进行综合、归类并分析利用的抽象概念,它是数据归类的标准。每一个主题在逻辑意义上是与企业中某一宏观分析领域所涉及的分析对象相对应的。所谓面向主题的数据组织是一种在较高层次上对分析对象的数据进行一个完整、一致的描述,能够刻画各个分析对象所涉及的企业的各项数据以及数据之间联系的数据组织方式。其中较高层次指的是按照主题进行数据组织的方式,比面向应用的数据组织方式具有更高级别的数据抽象。

目前,数据仓库仍是采用关系数据库技术来实现的,即它的数据最终也用关系来表现,这里特别强调的是主题与面向主题这两个概念的逻辑意义。

在此以一家大型网上书店为例,来说明面向主题与传统的面向应用两者之间数据组织方式的差别,以便读者更好地理解主题这一抽象概念。该网上书店按照业务建立起了采购、库存、销售以及人事管理子系统,并按照各自的业务处理的要求,建立了数据库模式。● 采购子系统:◆采购单(采购单号,出版社号,总金额,日期,采购员)◆采购单细则(采购单号,书号,采购单价,数量,总价)◆书(书号,书名,作者,类别,出版社号)◆出版社(出版社号,出版社名,地址,电话)● 库存管理子系统:◆领书单(领书单号,领书人,日期)◆领书单细则(领书单号,书号,数量)◆进书单(进书单号,采购单号,进书人,收书人,日期)◆库存(书号,库房号,库存量,日期)◆库房(库房号,仓库管理员,地点,库存商品描述)● 销售子系统:◆会员(会员号,会员名,支付帐号,会员等级,邮箱,电话)◆销售(订单号,会员号,总金额,日期,收货人,收货地址,收货电话)◆销售细则(订单号,书号,数量,销售单价,总价)● 人事管理子系统:◆员工(员工号,姓名,性别,年龄,文化程度,部门号,职位号)◆部门(部门号,部门名称,部门主管,电话)◆职位(职位号,职位名称,职责描述)

按照面向主题的方式,数据的组织分为两个步骤:抽取主题以及确定每个主题所包含的数据内容。按照分析的需求抽取主题,每个主题有着各自独立的逻辑内涵,对应着一个分析对象。仍以上面网上书店为例,通过概括各个分析领域的分析对象,综合后得到各个主题。它所应有的主题包括书籍、出版社、会员等,这三个主题具体应包含如下内容。● 书籍:◆书籍固有信息包括书号,书名,作者,类别等。◆书籍采购信息包括书号,出版社号,总金额,采购单价,数量,采购日期等。◆书籍销售信息包括书号,会员号,销售单价,销售日期,销售量等。◆书籍库存信息包括书号,库房号,库存量,日期等。● 出版社:◆出版社固有信息包括出版社号,出版社名,地址,电话等。◆供应书籍信息包括出版社号,书号,采购单价,采购日期,数量等。● 会员:◆会员固有信息包括会员号,会员名,支付帐号,会员等级,邮箱,电话等。◆会员购书信息包括会员号,书号,销售单价,购买日期,购买量等。

现在以“书籍”这一主题为例,可以看到关于书籍的各种信息都已综合在“书籍”主题中了。它主要描述的内容包括两方面:一,包含了书籍的固有信息,如书号、书名、作者以及类别等等书籍的描述信息;二,“书籍”主题中也包含有书籍的流动信息,如描述了某书籍采购信息、书籍销售信息以及书籍库存信息等。与网上书店原有数据库的数据模式相比,可以看出以下两点:一方面,在从面向应用到面向主题的转变过程中,丢弃了原来不必要的、不适于分析的信息,如有关采购单信息、领书单等内容就不再出现在主题中;另一方面,在原有的数据库模式中,关于书籍的信息是分散在各个子系统中的,根本没有形成一个关于书籍的完整的一致性描述,如书籍的采购信息存在于采购子系统中,书籍的销售信息则存在于销售子系统中,书籍库存信息却又存在于库存管理子系统中。而面向主题的数据组织方式就是强调要形成关于书籍的一致的信息集合,以便在此基础上针对“书籍”这一分析对象进行分析处理。

不同的主题之间也会有重叠的部分,这些重叠的部分往往是前面所说的第二方面的内容,如“书籍”主题的书籍采购信息同“出版社”主题的供应书籍信息都来自采购子系统,它们是相同的,这表现了“出版社”和“书籍”这两个主题之间的联系;“书籍”主题的书籍销售信息则同“会员”主题中的会员购书信息都来源于销售子系统,这表现的是“书籍”和“会员”之间的联系。有两点特别需要注意的地方:第一,主题之间的重叠并不是同一数据内容的重复物理存储,而是逻辑上的重叠;第二,主题之间并不是两两重叠的,如“出版社”和“会员”两个主题间一般是没有重叠内容的,这表明了“出版社”和“会员”之间是不直接发生联系的,它们之间的间接联系是通过“书籍”这一主题来体现的。

不同企业的主题也会不同,例如,对一家制造企业来说,销售、发货和存货都是非常重要的主题,而对于一家零售商来说,在付款柜台处的销售才是非常重要的主题。

主题只是一个逻辑的概念,它依然是基于关系数据库来实现的。在具体现实中,可将一个主题划分为多个表。但是数据仓库中的数据已经经过了一定程度的综合,而不再是业务处理的流水帐。如书籍表中一条记录是某段时期内该本书采购、销售情况的总和。(2)数据仓库的数据是集成的

数据仓库中的数据是抽取自原有的、分散的数据库中的数据。分析型数据与操作型数据之间存在着很大的差别:第一,数据仓库的每个主题所对应的原数据是分散在不同数据库中的,且是与不同的应用逻辑捆绑在一起的,不可避免地会出现许多重复和不一致的地方;第二,数据仓库中的综合数据不是对原有数据的简单复制,因此,数据仓库建设中最关键、最复杂的一步就是必须在数据进入数据仓库前,消除数据中不一致及错误的地方,对数据进行统一,以保证数据的质量。这要完成两项工作:统一原数据中所有矛盾之处,以及进行数据综合和计算。(3)数据仓库的数据是不可更新的

数据仓库中的数据在通常情况下是不会进行修改操作的,它所涉及的主要数据操作是数据查询,供企业决策分析之用。数据仓库中的数据并非是简单的联机处理的数据,而是不同时点的数据库快照的集合,和基于这些快照来统计、综合以及重组的导出数据,反映的是一段相当长的时间内历史数据的内容。存放在数据仓库中的数据是之前数据库中通过联机处理的数据集成后输入进去的,它是有存储期限的,一旦超过这个存储期限,便从当前的数据仓库中将这些数据删去。数据仓库管理系统DWMS相比DBMS而言要简单得多,因为数据仓库中通常只对数据查询进行操作。在数据仓库的管理中,几乎可以将DBMS中许多像完整性保护、并发控制这样的技术难点省去,但是数据仓库对数据查询的要求却比DBMS要高得多。因为数据仓库所涉及的主要数据操作就是数据查询,且其查询数据量往往很大,因此就要求运用各种各样繁复的索引技术。另外,由于企业的高层管理者是数据仓库服务主要面向的客户,因而对数据查询界面的友好性以及数据表示提出了更高的要求。(4)数据仓库数据是随时间不断变化的

对应用而言,数据仓库中的数据是不可更新的,但并不意味着数据进入到数据仓库以后就永远不变,而是数据仓库的用户在进行分析处理时没有进行数据更新操作。数据仓库的这一特征主要有以下三方面的表现。

首先,随着时间的改变,新的数据内容将被增加到数据仓库里。数据仓库系统将捕捉OLTP数据库中变化的数据,生成OLTP数据库快照,数据经过统一集成后不断地追加到数据仓库中;捕捉到的新的变化数据以新的数据库快照形式增加到数据仓库中,而非对先前的数据库快照进行修改,先前已经获取的数据库快照是不再变化的。

其次,数据仓库会根据时间的变化将旧的数据内容逐渐删除。数据仓库中的数据并非永远存在于数据仓库中,与数据库中的数据一样,它也有一定的存储期限,当数据超过该期限时,过期的数据将会被自动删去。与数据库不同的是,数据仓库内的数据时限要长得多。为了适应DSS进行趋势分析的需求,数据在数据仓库中一般需要保存较长时间(如5~10年),而在操作型环境中,数据一般只保存60~90天。

最后,数据仓库中含有许多与时间相关的综合数据,随着时间的不断变化,这些数据都需要重新进行综合。如经常需要根据时间段来综合数据,或是间隔一段时间片就对数据展开抽样等。为此,为了标明数据的历史时期,数据仓库数据的码键都要包含时间项。

3.数据集市

数据仓库的工作范围和成本通常是巨大的。信息技术部门必须对所有的用户站在全企业的角度对待任何一次决策分析,这样会以巨大的金钱与时间为代价,这是许多企业不愿意或者不能够承担的。为了应对这种情况,一种提供更紧密集成的、拥有完整图形接口并且以价格优势吸引人的工具——数据集市就应运而生了。

数据集市(Data Marts)是一种更小、更集中的,具有特定应用的,部门级的数据仓库,可以按业务的分类来组织数据集市。数据集市一般针对具有战略意义的应用或者是具体部门级的应用,包含的是有关该特定业务领域的数据,如人力资源、财务、销售、市场等。数据集市非常灵活,不同的数据集市可以分布在不同的物理平台上,也可以逻辑地分布于同一物理平台上。因此,数据集市可以独立地实施,企业人员也可以快速获取信息。由于数据集市的结构简单,即使当其数据增长时,管理也较容易。当数据集市中加入了越来越多的主题时,就应将这些数据集市加以集成,最终建立起一种结构,即构成企业级数据仓库的数据。因此,可以把数据仓库作为一组数据集市来实施,每次实施一个。但是,在实施之前,应该有全局的观点,先使不同的数据集市中的数据内容有统一的数据类型、字段长度、精度和语义,这样,就可以使数据集市在扩展后集成为全企业级的数据仓库了。如果采用这种方法来实施,数据集市就是整个数据仓库系统的逻辑子集。

数据集市的特性主要有:①规模小;②特定的应用;③面向部门;④由业务部门定义、设计、开发以及管理和维护;⑤快速实现;⑥价格低廉;⑦投资快速回收;⑧工具集紧密集成;⑨更详细的、预先存在的数据仓库的摘要子集;⑩可升级到完整的数据仓库。

4.数据粒度与分割

数据仓库极为重要概念之一是粒度。粒度指的是数据仓库中数据单位所保存数据的细化或者综合程度的级别。数据的粒度是数据仓库设计的一个主要方面。它深刻影响着存放在数据仓库中的数据量的大小和数据仓库可以回答的查询类型。越小的粒度其数据的细节反映程度越高,综合程度越低,这样就能回答越多的查询种类。相反,越大的粒度其数据的细节反映程度越低,综合程度就越高,只能回答综合性的问题。粒度并不是越大或者越小就好,针对不同类型的问题,对粒度大小的要求也不同。如果数据粒度设计得不合理,就会造成对大量细节数据进行综合并计算答案,使得效率变得十分低下;或者有时需要细节数据时却又不能满足。所以,要在查询效率和回答细节问题能力之间做好平衡。

因此,多重粒度在数据仓库中是不可避免的,应根据查询的需求合理地设计数据的粒度。数据仓库主要是面向DSS分析的,只有极少数的查询涉及到细节,其他绝大部分查询都是基于一定程度的综合数据之上。故而为了大幅度提高绝大多数查询性能,应该把大粒度数据存储在快速设备(如磁盘)上,而把小粒度数据存储在低速设备(如磁带)上,这样即使需要对细节进行查询也能够满足。

数据仓库中的另一重要概念是分割。它是指把数据分散到不同的物理单元,从而可以分别处理,来提高数据处理的效率。通常把数据分割之后的数据单元称为分片。在实际分析处理时,对于存在某种相关性的数据集合的分析是极其常见的,例如对某个地区、某个时间或时段,又或者特定业务范围的数据的分析等。毫无疑问,将这些具有某种相关性的数据组织在一起将会大大提高效率,因此,需要对数据进行分割。

数据分割使数据仓库的开发人员和用户有了更大的灵活性,可以按照实际情况来确定分割的标准。通常可以根据地域、日期或业务范围等指标来进行分割,也可以根据多个分割标准的组合来加以分割。一般分割标准都要包含日期项,这样就能使分割十分自然且均匀。小单元内的数据在分割之后,就会变得相对独立,加快处理速度。数据分割使数据的索引、重组、重构、恢复、监控和顺序扫描变得更简单。

5.元数据

与传统数据库中的数据字典类似,元数据(metadata)是数据仓库的一部分不可或缺的重要数据。它是“关于数据的数据”,描述的是数据仓库中数据的结构、内容、码以及索引等。在数据仓库中,元数据有着比数据字典更加丰富和复杂的内容,主要有两种元数据:第一种元数据包含了所有原数据项名、属性以及它在数据仓库中的转换,它是为了从操作型环境向数据仓库环境转换而建立的;第二种元数据称为DSS元数据,是在数据仓库中用来在终端用户的多维商业模型以及前端工具间建立映射,一般是为了开发出更加先进的决策支持工具而创建的。

元数据在数据仓库的建造以及运行中的作用极为重要,它描述了数据仓库中的各个对象,是数据仓库的核心,遍及数据仓库的各个方面。数据仓库中的元数据的主要作用有:定义数据仓库中有什么;指明数据仓库中信息的内容及位置;刻画数据的抽取和转换规则;存储和数据仓库主题相关的各种商业信息。元数据是整个数据仓库运行的基础,如数据的修改、跟踪、抽取、装入和综合等都是依赖于元数据的。故而,有效管理数据仓库的一个重要前提就是拥有描述能力强、内容完善的元数据。元数据可分为四类:关于数据源的元数据、关于数据模型的元数据、关于数据仓库映射的元数据以及关于数据仓库使用的元数据。

表2.1所示为一个元数据的例子,它定义的是数据仓库中的一个表。表2.1 元数据例表

6.数据模型

不同于数据库的是,数据的多维视图是数据仓库中存储的数据模型,它对前端工具、数据仓库的设计和OLAP的查询引擎有直接的影响。

在多维数据模型中,有一部分由一组提供测量值上下文关系的“维”来决定的数据测量值(如销售量、产量、利润等)。以销售量为例,它与销售时间、销售区域和产品名称相关,由这些相关的维惟一地决定了这个销售测量值(如2013年奥迪在中国的销售量为50万)。因此,将数据测量值存放在由层次的维构成的多维空间所构成的图就是多维数据视图。在多维数据模型中,还可以对一个或多个维做集合运算,例如,按省份和季度对销量进行计算和排序,可以看出不同省份、不同季度的销售情况。一般情况下,时间维对决策中的许多分析都很重要,它是一个具有特殊意义的维度。

可以使用不同的存储机制以及表示模式来实现逻辑上的多维数据模型。一般使用的是星型模型、雪花模型、星网模型和第三范式等多维数据数据模型。(1)星型模型

星型模型是大部分数据仓库经常采用的一种模型。事实表是星型模式的核心,其他的维表则围绕这个核心表呈现星型分布。维表只与事实表关联,与其他维表则没有任何联系,每个维表只能有一个主码,且该主码同时作为与事实表连接的外码被放在事实表中。事实表中存放了大量的事实数据,且非规范化程度非常高,如在相同的表中出现多个时期的数据。描述性数据存放在维表中。图2.3所示是一个星型模式实例。图2.3 星型模型实例

事实表中有大量的记录,而维表中则只有较少的记录。由于针对各个维作了大量的预处理(按照维进行预先统计、分类和排序等),星型模型的数据存取速度较快。例如,预先根据汽车的型号、销售地区以及时间进行销售量的统计,在制作报表时,速度就会加快。

与完全规范化的关系设计相比较,星型模型有着一些明显的差异,它使用大量的非规范化数据,以潜在的存储空间为代价来优化速度。因此星型模型存在很大的数据冗余,因此不适合用于数据量大的情况。此外,星型模型限制了事实表中数量属性的个数,当业务问题发生变化,原来的维不能满足要求时,就需要增加新的维,这种维的变化带来的数据变化是非常复杂且耗时的,因为事实表的主键是由所有维表的主键构成的。(2)雪花模型

通过将星型模型的维表更进一步地层次化便得到了雪花模型,将原来的各维表扩展成小的事实表,从而产生一些局部的“层次”区域。它的优点是使得数据的存储量极大限度地降低了,同时为改善了查询性能,它还将较小的维表联合在了一起。

雪花模型的这种方式使系统更进一步专业化和实用化,同时也加大了一些查询的复杂性和用户必须处理的表的数量,而使系统的通用程度下降。数据仓库利用前端工具把用户的需求转变成雪花模型的物理模式,从而完成对数据的查询。

在上面的星型模型中,分别对“产品表”“日期表”“地区表”进行扩展,形成雪花模型数据,如图2.4所示。图2.4 雪花模型实例(3)星网模型

将多个星型模型连接起来形成的网状结构就是星网模型。通过相同的维(如时间维),多个星网模型可以连接多个事实表。(4)第三范式

范式是符合某一种级别的关系模式的集合,是关系型数据库的构造过程中必须遵循的规则。目前关系型数据库主要有6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)以及第六范式(6NF)。各种范式之间的联系是:第二范式是在第一范式的基础上建立起来的,比第一范式满足更多的条件,第三范式则是在第二范式的基础上满足更多的条件建立的,以此类推便得到各类范式之间的关系。一般情况下,数据库要求满足第三范式就可以了。

第三范式(3NF)指的是这样一种关系,即关系模式中的所有非主属性对任何候选关键字都不存在传递依赖。也就是说,第三范式要求一个数据库表不包含已在其他表中包含的非关键字信息。例如:关系Student(Sno,Sname,Dno,Dname,Location),关系中的各个属性分别表示学号、姓名、系院号、系院名以及系院地址。其中Sno为关键字,其余各个非主属性完全依赖于Sno这一关键字,所以此关系属于第二范式。关系Student中,对属性Dno,Dname以及Location进行存储、插入、删除以及修改操作时会出现重复的情况,所以此关系存在大量的冗余。造成冗余的原因是此关系中存在传递依赖,即Sno→Dno,Dno→Location,而由于没有Dno→Sno,所以Sno对Location的决定是通过传递依赖实现的,换句话说,Sno不直接决定非主属性Location。要使每个关系模式中不存在传递依赖,则可以将关系Student分为;两个关系:S(Sno,Sname,Dno)和D(Dno,Dname,Location),这两个关系属于第三范式。2.4.2 数据仓库体系结构

数据仓库的不同部分组合在一起就组成了数据仓库的体系结构。体系结构提供了设计开发和部署数据仓库的整体框架结构。本节主要介绍了数据仓库的数据组织结构、系统结构以及运行结构等内容。

1.数据仓库的数据组织结构

图2.5所示是一个经典的数据仓库的数据组织结构图。图2.5 数据仓库数据组织结构图

数据在数据仓库中分成早期细节级、当前细节级、轻度综合级以及高度综合级四个级别。一般送入早期细节级的数据都是老化的数据,被综合之后的源数据,先要进入到当前细节级,接着根据具体需要选择进一步地综合从而进入轻度综合级甚至高度综合级。

2.数据仓库系统结构

数据仓库系统分为三部分,分别是数据仓库管理、数据仓库以及分析工具。数据仓库结构如图2.6所示。图2.6 数据仓库系统结构图

数据仓库从各种数据源中获取数据。数据源可以是企业内部原有的关系数据库,也可以是企业外部的第三方市场调查报告或者各种文档提供的数据。当明确数据仓库信息是什么需求之后,先要对数据进行建模,接着是确定从源数据到数据仓库的ETL过程,最后进行维数划分和数据仓库的物理存储结构的确定。依靠数据仓库管理系统(DWMS)来完成仓库的管理工作,包括对数据的安全、备份、归档、维护和恢复等。数据仓库管理系统由定义部件、数据获取部件、管理部件、目录部件(元数据)、DBMS部件组成。

由于数据仓库的数据量很大,为了能够从数据仓库中获得能够辅助决策的信息,完成决策支持系统的多项要求,一套具有强大功能的分析工具对于数据仓库来说必不可少。目前分析工具集主要包括两类:查询工具以及挖掘工具。数据仓库的查询通常是指对分析要求的查询,一般包含可视化工具和多维分析(OLAP)工具两种。

3.数据仓库运行结构

数据仓库应用的运行结构是经典的客户/服务器(C/S)形式。数据仓库采用的是服务器结构的形式,服务器端需要完成多种辅助决策的SQL查询、复杂的计算以及各类综合功能等。客户端完成的工作主要包括:格式化查询、客户交互、结果显示以及报表生成等。现在,在客户与数据仓库服务器之间增加一个多维数据分析(OLAP)服务器的三层C/S结构形式越来越普遍,如图2.7所示。图2.7 数据仓库应用的三层C/S结构

这种三层结构形式使数据仓库应用工作效率更高,位于客户端和数据仓库服务器之间的OLAP服务器对原客户端和数据仓库服务器的部分工作进行了集中以及简化,使得决策支持的服务工作被加强与规范化,减少了系统数据的传输量。2.4.3 数据仓库设计与实施

面向主题的、集成的、不可更新的以及随时间的变化不断变化是数据仓库的特点,这些特点导致传统的数据库开发所使用的设计方法并不适用于数据仓库的系统设计。不同于传统数据库开发的是:数据仓库系统的开发者在最初并不能够确切了解到用户的明确而详细的需求,因为数据仓库系统的原始需求是不明确的,也会不断变化与增加,用户也只能提供部分需求或者是需求的大方向,对将来的需求更是无法确切地预料。为此,运用原型法对数据仓库进行开发是一种合适的方法。原型法是一种先从构建简单的基本框架入手,然后再不断丰富完善整个系统的一种软件开发方法。然而,数据仓库的设计并不等同于寻常意义上的原型法,而通常是由数据来驱动数据仓库的设计。数据仓库的开发主要是在原有的数据库系统基础上开展的,它的目的是对已有的数据库中的数据资源进行有效地抽取、综合、集成和挖掘。原型法与系统生命周期法的主要区别在于数据仓库的开发是一个不断循环、反馈,从而使系统不断增长和完善的过程。图2.8形象地说明了构建数据仓库的这个过程。

虽然如此,数据仓库的设计并非毫无步骤可言,其步骤如图2.9所示。图2.8 数据仓库构建过程图图2.9 数据仓库设计的步骤

需要说明的是,数据仓库设计的步骤并不像上图描述的那么绝对,决策人员与开发者在数据仓库的开发过程中要至始至终共同参与和密切协作,始终以为企业开发数据仓库为目的,保持灵活的头脑,合理安排工作。

下面分别对图2.9所示的六个主要设计步骤进行介绍。

1.概念模型设计

概念模型是概念型工具,它是连接主观与客观之间的桥梁,是为一定的目标设计系统以及收集信息而服务的。在原有数据库的基础上建立一个较为稳固的概念模型是概念模型设计阶段希望获得的结果。通过集成和重组原有数据库系统中的数据,最终形成的数据集合也就是数据仓库。因此在数据仓库的概念模型设计过程中,如何进行数据仓库系统的概念模型设计并不是首要任务,而是应该先分析和理解原有数据库系统,了解在原数据库系统中有什么、数据如何组织及分布等。首先,要对现有数据库中的内容进行一个全面而清晰的了解,这一过程是通过查看原来数据库的设计文档和数据字典中的数据库关系模式来实现的;其次,数据仓库是面向全局建立的概念模型,它提供了一个统一的概念视图以集成来自各个面向应用的数据库的数据。概念模型的设计主要是在概念层次上进行的,所以在进行概念模型建立时,具体的技术条件限制并不在考虑范围内。

概念模型设计所包含的工作主要是确定系统边界和系统所包含的主题域。

2.技术准备工作

管理数据仓库的技术要求与操作型环境中的要求有很大区别,而且两者考虑的方面也不同。通常情况下,都是从操作型数据中将分析型数据分离开,把它们放于数据仓库之中。技术评估和技术环境准备是技术准备阶段的主要工作。这一阶段的主要成果应有:软硬件配置方案、技术评估报告以及系统(软、硬件)总体设计方案。

3.逻辑模型设计

逻辑模型设计阶段主要进行的工作有:分析主题域,同时确定当前需要装载的主题;确定粒度层次划分以及数据分割策略;定义关系模式和记录系统。通过定义每一个当前要装载的主题的逻辑来实现逻辑模型设计的成果,且在元数据中记录相关内容,其中包括:适当的粒度划分以及表划分、定义合适的数据来源、合理的数据分割策略等。

4.物理模型设计

物理模型设计的主要工作是对数据的存储结构和存放位置进行确定,并明确索引策略及存储分配。要确保数据仓库物理模型的实现,对设计人员应有以下几方面的要求。(1)能够对所选用的数据库管理系统有全面的了解,确定数据的存储结构与存取方法。(2)能够对影响系统时间和空间效率的平衡和优化的重要依据有所了解,诸如数据使用频度、使用方法、数据规模、数据环境和响应时间要求等。(3)确定索引策略,索引一旦建立就几乎不需要维护,但是在建立专用的、复杂的索引时却要付出一定的代价。(4)确定存储分配及数据存放位置,对外部存储设备的特性(如分块原则、块大小的规定、设备的I/O特性等)有所了解。

5.数据仓库生成

在两个环境不相同的记录系统之间建立一个接口,通过这个接口,才能将原数据库中的数据装载到数据仓库环境中。该接口应具备的功能包括:有效扫描现有记录系统,从面向应用和操作的环境中生成完整的数据,基于时间将数据进行转换、清洗、集成及更新数据。在接口设计完成之后,要通过运行接口程序,将数据装入到数据仓库中去。

6.数据仓库使用和维护

在数据仓库建立完成,数据被加载到数据仓库之后,还需要对数据仓库进行后续的使用进行管理和维护。一方面,要在数据仓库中建立起DSS应用以使数据仓库中的数据能够服务于决策分析;一方面,开发人员可以根据用户的使用情况以及反馈得到的新需求,对系统作进一步的完善;另一方面,要对数据仓库中的一些日常活动进行管理,例如对粒度级别进行调整、管理元数据、对数据仓库当前的具体数据进行刷新、将过时的数据转变为历史数据、不再使用的数据清除掉等。2.4.4 数据抽取、转换和装载

数据仓库中的数据来自多种业务数据源。不可避免地,不同原始数据库中的数据来源、格式是不一样的,因而在系统实施、数据整合过程中会出现一系列问题,必须经过抽取、转换和装载的过程,才能把数据库中的数据真正存储到数据仓库中去,这个过程就是ETL过程。ETL过程将对源系统中的相关数据进行改造,使它们变成有用的信息存储在数据仓库中。不能对源数据进行正确地抽取、清洗和用正确的格式进行整合,就没有数据仓库中的战略信息,也就不能进行数据仓库的查询处理功能。

1.ETL概述

ETL是用来实现异构多数据源的数据集成的工具,是数据仓库、数据挖掘和商业智能等技术的基石。

ETL工具的功能包括:● 数据的抽取。将数据从不同的网络、不同的操作平台、不同的数

据库及数据格式、不同的应用中抽取出来。● 数据的转换。数据转换(数据的合并、汇总、过滤、转换等)、

重新格式化和计算数据、重新构建关键数据以及总结与定位数据。● 数据的装载。将数据跨网络、操作平台装载到目标数据库中。

ETL的每一个部分都要达到一个重要的目标,每个功能都非常重要。由于源系统的性质,这对ETL提供的功能也很具有挑战性。源系统种类繁多,彼此差异较大,通常ETL需要应对多个平台上的操作系统,而且很多源系统都是采用过时技术的陈旧应用系统。对数据仓库而言,至关重要的是历史数据,这些数据往往是不被保存在操作型系统中的。很多旧系统中的数据质量也各不相同,需要花费大量的时间进行处理。源系统之间的数据普遍缺乏一致性,随着时间的变化,数据结构也可能会发生变化。

在整个项目中,ETL功能设计、测试和部署不同处理过程会占用很大一部分工作量。源系统的性质和复杂程度使得数据抽取本身很复杂,源系统的原数据包含源系统中每一个数据库和每一个数据结构的信息。在数据转换过程中,要应用多种形式的转换技术,必须重新定义内部数据结构,对数据重新排序,应用多种形式的转换技术,给缺失值增加新的默认值,设计性能优化所需要的所有聚集。最初的装载工作可能会往数据仓库中存入数以百万计的数据行,有时可能会花两周甚至更多的时间来完成最初的物理装载。总之,数据的抽取、转换、装载都是费劲且耗时的工作。

ETL过程的主要步骤如图2.10所示。图2.10 ETL处理过程的主要步骤

2.数据抽取

数据抽取就是一个从数据源中抽取数据的过程。具体来说,就是搜索整个数据源,使用某些标准选择合乎要求的数据,并把这些数据传送到目标文件中。对于数据仓库来说,必须根据增量装载工作和初始完成装载的变化来抽取数据。对于操作型系统来说,则需要一次性抽取和数据转换。这两个因素增加了数据抽取工作的复杂性,而且,也促使在内部编写代码和脚本的基础上,使用第三方数据抽取工具。使用第三方工具往往会比内部编程更贵,但是它们记录了自己的元数据,另一方面,内部编程增加了维护的成本,当源系统变化时,也很难维护。而第三方的工具则提供内在的灵活性,只需要改变它的输入参数就可以了。

数据仓库的成功首先取决于有效的数据抽取,所以需要对数据仓库的数据抽取策略的制定给予特别关注。数据抽取的要点包括:确认数据的源系统及结构;针对每个数据源定义抽取过程(人工抽取还是基于工具抽取),确定数据抽取的频率,表示抽取过程进程的时间窗口;决定抽取任务的顺序;决定如何处理无法抽取的输入记录。

通常,源系统的数据是以两种方式来存放的:当前值和周期性的状态。源系统中的大多数数据都是当前值类型,这里存储的属性值代表的是当前时刻的属性值,但这个值是暂时的,当事务发生时,这个值就会发生变化。周期性的状态指的是属性值存储的是每次发生变化时的状态。对于这个类型的操作型数据,进行数据抽取工作会相对容易很多,因为其变化的历史存储在源系统本身当中。

从源操作系统中抽取的数据主要有两种类型:静态数据和修正数据。静态数据是在一个给定时刻捕获的数据,就像是相关源数据在某个特定时刻的快照。对于当前数据或者暂时的数据来说,这个捕获过程包括所有需要的暂时数据。对于周期性数据来说,这一数据捕获包括每一个源操作型系统中可以获得的每个时间点的每一个状态或者事件。在数据仓库的初始装载时一般使用静态数据捕获。修正数据也称为追加的数据捕获,是最后一次捕获数据后的修正。修正数据可以是立刻进行的,也可以是延缓的。在立即型的数据捕获中,有三种数据抽取的方法:通过交易日志捕获、从数据库触发器中捕获或者从源应用程序中捕获。延缓的数据抽取有两种方法:基于日期和时间标记的捕获和通过文件的比较来捕获。

3.数据转换

抽取后的数据是没有经过加工的,这些数据的质量并没有像数据仓库要求的那样好,是不能直接应用于数据仓库的,必须将所有抽取的数据转换为数据仓库可以使用的数据。数据转换的一个重要任务就是提高数据质量,包括补充已抽取数据中的缺失值,去除脏数据,修正错误格式等。

数据转换功能包含一些基本的任务:选择、分离/合并、转化、汇总和丰富。转换功能主要完成格式修正、字段的解码、计算值和导出值、单个字段的分离、信息的合并、特征集合转化、度量单位的转化、日期/时间转化、汇总、键的重新构造等工作。

由于数据转换的复杂性和涉及范围广,仅靠手工操作是难以完成的,因此,使用转换工具是一种有效的方法。使用转换工具的主要优点就是在数据转换过程中,转换参数和规则都会作为元数据被工具存储起来,这些元数据就会成为数据仓库整个元数据集合的一部分,可以被其他部分共享。尽管转换工具的理想目标是排除手工的方法,但是在实际工作中这却是不可能实现的,即使有最精良的转换工具组合,也要准备好使用内部开发的程序。使用转换工具和手工方法两者结合才是最好的办法。

4.数据装载

数据装载是指在将数据最终复制到数据仓库之前,把它们复制到一个中间位置。数据仓库的装载工作需要大量的时间,理想状况下,应在操作系统不忙时进行数据的复制,并确保了解自己的商务及其支持系统。确保已经完成了大量的更新,否则不应进行数据的移动。如果数据仓库中的数据来自多个相互关联的操作系统,就应该确保在这些系统同步工作时移动数据。

为了能够高效和及时地把数据装载到数据仓库中,一般都要利用选定的批量装载程序。批量装载程序一般应包括的功能有:按索引对文件进行排序、数据类型转换和操作以及数据统计。

5.ETL工具

ETL工具所要完成的工作主要包括三个方面。首先,在数据仓库和业务系统之间搭建起一座桥梁,确保新的业务数据能够源源不断地进入数据仓库。其次,用户的分析和应用能够反映最新的业务动态,虽然ETL在数据仓库架构的三部分中技术含量并不高,但其涉及到大量的业务逻辑和异构环境,因此在一般的数据仓库项目中,ETL部分往往会消耗最多的精力。最后,从整体角度来看,ETL的主要作用是为各种基于数据仓库的分析和应用提供统一的数据接口,屏蔽复杂的业务逻辑,而这正是构建数据仓库最重要的意义所在。ETL工具的正确选择,可以从多方面考虑,如ETL对平台的支持、对数据源的支持、数据转换功能、管理和调度功能、集成和开放性、对元数据管理等功能出发。

随着各种应用系统数据量的飞速增长,以及对业务可靠性等要求的不断提高,人们对数据抽取工具的要求也在不断提高。比如往往要求对几十,上百个GB的数据进行抽取、转换和装载工作,这种挑战毋庸置疑会要求抽取工具对高性能的硬件和主机提供更多支持。因此,从数据抽取工具支持的平台,可以判断出它能否胜任企业的环境,目前主流的平台包括SUN Solaris、HP-UX、IBM AIX、AS/400、OS/390、Sco UNIX、Linux和Windows等。

由于对数据抽取的要求越来越高以及专业ETL工具的不断涌现,ETL过程早已不再是一个简单的小程序就可以完成的。目前主流的工具都采用多线程、分布式、负载均衡、集中管理等高性能、高可靠性与易管理和扩展的多层体系架构。

专业的ETL厂商和主流工具主要有:OWB(Oracle Warehouse Builder)、ODI(Oracle Data Integrator)、Informatic PowerCenter(Informatica公司)、AICloudETL、DataStage(Ascential公司)、Repository Explorer、Beeload、Kettle、DataSpider、ETL Automation(NCR Teradata公司)、Data Integrator(Business Objects公司)和DecisionStream(Cognos公司)。

6.ETL展望

ETL有着广阔的发展空间,只有基于数据ETL,数据仓库、数据挖掘以及商业智能等技术才能更好地实现,从而为企业提供决策与预测的基本素材。伴随着现实需求的强劲推动,ETL逐渐成为当前信息技术最活跃的研究领域之一,呈现出通用化、高效化、智能化这三大发展趋势。

企业不管是进行当前事务处理,还是未来预测,其前提就是数据,而提供综合且高品质的数据正是ETL的目的,因此它必然要为众多的高层信息系统提供服务,成为企业各类应用的基础。只有具备良好通用性的ETL软件才能占领未来市场,为此,对未来的ETL软件提出以下几点要求:能够跨网络、跨平台使用;能够支持尽可能多的数据库管理系统(DBMS)、文件系统和数据采集、处理系统;具备良好的可扩展性,对于新的应用能够通过预订的应用程序接口(API)或标准化语言接口编程,以较小的代价实现互连。元数据的标准化、程序逻辑与数据的统一化等相关技术的发展,为ETI提高通用性提供了的动力。

由于针对的是海量数据,ETL对效率极为重视,未来的ETL工具将是高效的数据集成工具。高度的可伸缩性是其必备条件之一,不管是在昂贵的主机系统上,还是在工作站或PC机上,都能够运行ETL。为了能够真正避免重复集成,更加出色、高效地抽取、加载和清洗算法,增量的ETL算法将成为主流。此外,采用并行算法、集群计算、网络运算的ETL工具将领导潮流,为ETL提供廉价高效的计算资源,提高计算性价比。

高度的智能也是未来ETL必备的特征之一。此处将广泛应用专家系统、机器学习、神经网络、人工智能(AI)技术等领域的成果,由机器智能来完成数据源管理、ETL规则定制、数据质量保证等工作。这会在很大程度上减轻了用户的工作量,很多枯燥而繁重的数据集成工作将由ETL来完成。ETL工具的使用也会不断简化,通过运用智能工具,普通用户也能轻松而高效地完成数据的集成与清洗工作。

决定数据仓库能否获取高质量数据的核心是ETL工具,利用ETL工具能够解决各种应用数据零散分布、品质低下的现状,将各种异构信息根据决策需求集中到数据仓库中。待集成多数据源的异构性成为ETL最大的挑战,为了降低系统实现的难度,将数据转化的逻辑规范和物理实现分开管理,通常要把实施ETL过程划分为模式集成与数据集成两个阶段。2.4.5 联机分析处理

数据仓库系统包括数据仓库层、工具层和它们之间的相互关系。数据仓库系统是由多种技术组成的综合体,主要包括数据仓库、数据仓库管理系统以及数据仓库工具这三个部分。在整个系统中,数据仓库是信息挖掘的基础,处于核心地位;数据仓库管理系统则是整个系统的引擎,承担管理整个系统运转的责任;而整个系统发挥作用的关键是数据仓库工具,数据仓库唯有采用高效的工具才可以真正将其数据仓库的作用发挥出来。

数据仓库的目标决定了一般的查询工具无法满足数据仓库真正的需求,它需要拥有分析功能更加强大的工具。此处的查询,并不只是对记录级数据的查询(可能会存在此类查询,但绝不会多),更多的是对分析结果(发展趋势或模式总结)的查询,因此对更加友好的表达方式提出要求。例如,为了使用户能更方便、更清晰、更直观地了解复杂的查询结果而采用各种图形和报表工具。数据仓库中最主要的工具是分析型工具。用户或许有各种各样的方式从数据仓库采掘信息,然而大致上都可以分为验证型(verification)和发掘型(discovery)这两种模式。验证型指的是用户利用各种工具通过反复的、递归的检索查询,对自己先前提出的假设进行验证或是否定。多维分析工具是主要的验证型工具。联机分析处理(OLAP)就需要利用多维分析工具。与验证型的工具不同,发掘型的工具并不需要事先提出假设,而是直接从海量数据中发现数据模式,从而预测趋势和行为。发掘型的工具主要是指数据挖掘(Data Mining)。

接下来,将介绍OLAP的相关知识,数据挖掘的相关知识将在第6章进行详细地介绍。

1.OLAP的基本概念

OLAP是联机分析处理(On-Line Analytical Processing)的简称,是由关系数据库之父E.F.Codd于1993年提出的。随着市场竞争的日趋激烈,企业更加注重决策的即时性和准确性,E.F.Codd认为终端用户对数据库查询分析的需求早已不满足于联机事务处理(OLTP),用户分析的需求也不满足于SQL对大数据库的简单查询。由于关系数据库不能进行大量计算,所以查询的结果并不能满足决策者提出的需求,导致用户的决策分析无法得到想要的结果。

OLAP委员会对联机分析处理的定义为:从原始数据中转化出来的、能够真实反映企业多维特性,并能够真正为用户所理解的数据称为信息数据。联机分析处理是能够获得对数据更深入了解的一类软件技术,能使分析人员、管理人员或执行人员对信息数据从多种角度进行快速、交互、一致地存取。目前所指的联机分析处理,主要是指对数据的一系列交互查询的过程,这些查询过程要求对数据进行多层次、多阶段的分析处理,以获得高度归纳的信息。从作用上来说,联机分析处理是一种快速软件技术,能够实现多维信息共享,针对特定问题的联机数据访问和分析。OLAP也可以说是多维数据分析工具的集合,其目标是满足多维环境下,对特定的查询和报表需求或决策支持,其中“维”是它的技术核心。

OLAP技术的主要特点有以下两个:一是在线性(On-line),表现为能快速响应和交互操作用户请求;二是多维分析(Multi-Analysis),即是OLAP技术的核心所在。

多维分析是指采用切片、切块、旋转等各种分析动作,对以多维形式组织起来的数据进行剖析,使最终用户对数据库中的数据进行多角度、多侧面的观察,从而更深入地了解包含在数据中的信息和内涵。多维分析方式能够减少混淆及降低错误解释的出现,这是由它迎合了人的思维模式决定的。多维分析的基本动作主要有:切片、切块、上卷、下钻及旋转。(1)切片(Slice)

在多维数组中选定一个二维子集的动作叫做切片,即从多维数组(维1,维2,…,维n,变量)中选定两个维,维i和维j,在这两个维上选取某一区间或任意维成员,而将其余的维都取定一个维成员,得到的就是多维数组在维i和维j上的一个二维子集。这个二维子集就称为多维数组在维i和维j上的一个切片,表示为:(维i,维j,变量)。如图2.11所示,选定两个维(“贷款”维度和“经济性质”维度),而在“时间”维度上选定一个维成员(如“第1季度”),就得到了“贷款”和“经济性质”两个维上的一个切片。这个切片表示了在第一季度各经济性质和各贷款类别的贷款总额。图2.11 切片(2)切块(Dice)

与切片类似。在多维数组中选定一个三维子集的动作叫做切片,即选定多维数组(维1,维2,…,维n,变量)中的三个维,维i、维j和维r。在这三个维上选取某一区间或任意维成员,而将其余的维都取定一个维成员,则得到多维数组在维i、维j和维r上的一个三维子集,这个三维子集称为多维数组在维i、维j和维r上的一个切块,表示为:(维i,维j,维r,变量)。如图2.12所示,在“时间”维度和“贷款”维度上各选定两个维成员(如“第1季度”和“第2季度”,“正常”和“次级”),在“经济性质”维度选定三个维成员(“集体”“个人”和“其他”)就可以得到一个切块了。图2.12 切块(3)上卷(roll up)

在数据立方体中执行聚集操作,通过在维级别中上升或通过消除某个或某些维来观察更概括的数据。沿着时间维上卷,由“季节”上升到半年,如图2.13(a)所示,或者消除“经济性质”这一维度,如图2.13(b)所示,就得到更高层次的汇总数据。图2.13 上卷(4)下钻(Drill down)

通过在维级别中下降或通过引入某个或某些维来更细致地观察数据,与上卷正好相反。如图2.14所示,沿着时间维下钻,就得到了每个月的各经济性质各贷款类型的贷款更具体的信息。图2.14 下钻(5)旋转(Rotate)

旋转,即改变一个报告或页面显示的维方向。旋转有以下几种方式:交换行和列、把某一个行维移到列维中去、把页面显示中的一个维和页面外的维进行交换(令其成为新的行或列)。如图2.15所示,将“时间”维和“经济性质”维进行了变换。图2.15 旋转

2.OLAP特征及衡量标准

OLAP主要有以下四大特征:

多维概念视图是OLAP最显著的特征。在OLAP数据模型中,将多维信息抽象为一个立方体,其中包括维和度量。维是人们观察数据的特定角度,是考虑问题时的一类属性,而度量表示的是多维数组的取值。多维结构是OLAP的核心,在用户面前OLAP展现的是一幅幅的多维视图。

快速响应用户的分析需求是OLAP的第二大特征。一般认为在几秒内对用户的分析请求做出响应的OLAP系统才是正常的。如果响应时间超过30秒,用户可能就会不耐烦,导致失去分析主线索,从而影响分析质量。因此需要更多诸如大量的事先运算、专门的数据存储格式以及特别的硬件设计等技术上的支持。

OLAP的第三个特征是它的分析功能。与应用有关的任何逻辑分析和统计分析它都应该能处理。用户的数据分析不仅能在OLAP平台上进行,也可以连接到其他工具,如成本分析工具、时间序列分析工具、数据挖掘和意外报警等外部分析工具上。OLAP的基本分析操作有切片、切块、下钻、上卷及旋转。

OLAP的第四个特征是它的信息性。OLAP系统能够及时地获取并管理大容量信息,无论多大的数据量以及数据存储在什么地方。

E.F.Codd给出了十二条基本准则,以便对OLAP产品进行评价。● 透明性准则;● OLAP模型必须提供多维概念视图;● 存取能力准则;● 客户/服务器体系结构;● 稳定的报表性能;● 维的等同性准则;● 多用户支持能力准则;● 动态的稀疏矩阵处理准则;● 非受限制的跨维操作;● 灵活的报表生成;● 直观的数据操纵;● 不受限维与聚集层次。

3.OLAP服务器类型

根据存储器的数据存储格式,OLAP系统可以分为关系型OLAP(Relational OLAP,简称ROLAP)、多维型OLAP(Multi-Dimensional OLAP,简称MOLAP)以及混合型OLAP(Hybrid OLAP,简称HOLAP)三种。

关系数据库是关系型OLAP(ROLAP)的核心,ROLAP将用作分析的多维数据以及根据应用的需要有选择地定义一批实视图作为表存储在其中。只选择那些计算工作量比较大、应用频率比较高的查询作为实视图,而不是把每一个SQL查询都作为实视图保存。为提高查询效率,对具有针对性的OLAP服务器的查询而言,优先选择利用已经计算好的实视图来生成查询结果。这是一种介于关系后端服务器和用户前端工具之间的中间服务器,同时用作ROLAP存储器的RDBMS也针对OLAP作相应的优化。它比MOLAP技术具有更大的可规模性。例如Mircostrategy的DSS和Informix的Metacube都采用了ROLAP方法。

多维型OLAP(MOLAP)是在物理上以多维数组的形式将OLAP分析所用到的多维数据进行存储,然后会产生“立方体”的结构。用多维数组的下标值或下标的范围映射维的属性值,总结数据以多维数组的值的形式在数组的单元中存储。由于MOLAP从物理层起实现,存储结构是新的,因此又称为物理OLAP(Physical OLAP)。相比较而言,ROLAP的物理层仍采用关系数据库的存储结构,主要借助于一些中间软件或软件工具实现,因此也称为虚拟OLAP(Virtual OLAP)。

混合型OLAP(HOLAP)的提出是由于MOLAP和ROLAP的结构完全不同,各自的优点和缺点也不同,分析人员在设计OLAP结构时比较困难。HOLAP则结合了MOLAP和ROLAP两种结构的优点。HOLAP虽然还没有一个正式的定义,但能满足用户各种复杂的分析请求,HOLAP结构不是将MOLAP与ROLAP的结构简单组合,而是将这两种结构技术优点有机地结合了起来。例如微软的SQL Server7.0 OLAP服务就支持混合OLAP服务器。

4.OLAP的实施

OLAP要对来自基层的操作数据(由数据库或数据仓库提供)进行多维化或预综合处理,因此,它是三层客户/服务器结构的,这与传统OLTP软件的两层客户/服务器结构有所不同。

三层客户/服务器的结构示意图如图2.16所示。它的主要特点是把应用逻辑(或业务逻辑)、DBMS及GUI严格区分开。复杂的应用逻辑主要集中存放于应用服务器上,而不是分布于网络上众多的PC机上,其高效的数据存取由服务器提供,然后安排后台进行处理和报表的预处理。由三层客户/服务器结构示意图可看出,OLAP实施有两点非常关键:一是OLAP服务器的设计,即如何将来自多个不同数据源或数据仓库的数据进行组织;二是OLAP服务器与前端软件的沟通。多维数据分析就是连接OLAP服务器与前端软件的桥梁,因此,OLAP服务器的构建必须以多维方式进行。图2.16 OLAP的三层客户/服务器逻辑结构图

显然,OLAP服务器的构建基础是数据仓库或基层数据库,而OLAP的对象是面向分析和管理决策人员的。决策人员一般对综合性数据更为关注,使得在数据了解过程中视角能够更高层次以及更具体。因此,数据仓库中综合数据的组织以及前端用户的多维数据分析需求的满足成为OLAP服务器的设计重点。

市场中的多种OLAP软件工具和工具集都是以多维数据分析为目的,满足决策或多维环境的特殊的查询和报告需求,这是它们的追求。它们基本上是遵从三层结构的。

5.OLAP产品介绍及选择

按照数据存储格式,有三种类型的OLAP产品,即MOLAP、ROLAP和HOLAP。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载