大数据(big data)
什么是大数据
大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。大数据技术,是指从各种各样类型的数据中,快速获得有价值信息的能力。适用于大数据的技术,包括大规模并行处理(MPP)数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台,互联网,和可扩展的存储系统。
大数据的特点[1]
具体来说,大数据具有4个基本特征:
一是数据体量巨大。百度资料表明,其新首页导航每天需要提供的数据超过1.5PB(1PB=1024TB),这些数据如果打印出来将超过5千亿张A4纸。有资料证实,到目前为止,人类生产的所有印刷材料的数据量仅为200PB。
二是数据类型多样。现在的数据类型不仅是文本形式,更多的是图片、视频、音频、地理位置信息等多类型的数据,个性化数据占绝对多数。
三是处理速度快。数据处理遵循“1秒定律”,可从各种类型的数据中快速获得高价值的信息。
四是价值密度低。以视频为例,一小时的视频,在不间断的监控过程中,可能有用的数据仅仅只有一两秒。
大数据的作用[2]
第一,对大数据的处理分析正成为新一代信息技术融合应用的结点。移动互联网、物联网、社交网络、数字家庭、电子商务等是新一代信息技术的应用形态,这些应用不断产生大数据。云计算为这些海量、多样化的大数据提供存储和运算平台。通过对不同来源数据的管理、处理、分析与优化,将结果反馈到上述应用中,将创造出巨大的经济和社会价值。
大数据具有催生社会变革的能量。但释放这种能量,需要严谨的数据治理、富有洞见的数据分析和激发管理创新的环境(Ramayya Krishnan,卡内基·梅隆大学海因兹学院院长)。
第二,大数据是信息产业持续高速增长的新引擎。面向大数据市场的新技术、新产品、新服务、新业态会不断涌现。在硬件与集成设备领域,大数据将对芯片、存储产业产生重要影响,还将催生一体化数据存储处理服务器、内存计算等市场。在软件与服务领域,大数据将引发数据快速处理分析、数据挖掘技术和软件产品的发展。
第三,大数据利用将成为提高核心竞争力的关键因素。各行各业的决策正在从“业务驱动” 转变“数据驱动”。
对大数据的分析可以使零售商实时掌握市场动态并迅速做出应对;可以为商家制定更加精准有效的营销策略提供决策支持;可以帮助企业为消费者提供更加及时和个性化的服务;在医疗领域,可提高诊断准确性和药物有效性;在公共事业领域,大数据也开始发挥促进经济发展、维护社会稳定等方面的重要作用。
第四,大数据时代科学研究的方法手段将发生重大改变。例如,抽样调查是社会科学的基本研究方法。在大数据时代,可通过实时监测、跟踪研究对象在互联网上产生的海量行为数据,进行挖掘分析,揭示出规律性的东西,提出研究结论和对策。
大数据的技术
数据采集:ETL工具负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
数据存取:关系数据库、NOSQL、SQL等。
基础架构:云存储、分布式文件存储等。
数据处理:自然语言处理(NLP,Natural Language Processing)是研究人与计算机交互的语言问题的一门学科。处理自然语言的关键是要让计算机"理解"自然语言,所以自然语言处理又叫做自然语言理解(NLU,Natural Language Understanding),也称为计算语言学(Computational Linguistics。一方面它是语言信息处理的一个分支,另一方面它是人工智能(AI, Artificial Intelligence)的核心课题之一。
统计分析:假设检验、显著性检验、差异分析、相关分析、T检验、方差分析、卡方分析、偏相关分析、距离分析、回归分析、简单回归分析、多元回归分析、逐步回归、回归预测与残差分析、岭回归、logistic回归分析、曲线估计、因子分析、聚类分析、主成分分析、因子分析、快速聚类法与聚类法、判别分析、对应分析、多元对应分析(最优尺度分析)、bootstrap技术等等。
数据挖掘:分类 (Classification)、估计(Estimation)、预测(Prediction)、相关性分组或关联规则(AffinITy grouping or association rules)、聚类(Clustering)、描述和可视化、Description and Visualization)、复杂数据类型挖掘(Text, Web ,图形图像,视频,音频等)
模型预测:预测模型、机器学习、建模仿真。
结果呈现:云计算、标签云、关系图等。
大数据的分析
从所周知,大数据已经不简简单单是数据大的事实了,而最重要的现实是对大数据进行分析,只有通过分析才能获取很多智能的,深入的,有价值的信息。那么越来越多的应用涉及到大数据,而这些大数据的属性,包括数量,速度,多样性等等都是呈现了大数据不断增长的复杂性,所以大数据的分析方法在大数据领域就显得尤为重要,可以说是决定最终信息是否有价值的决定性因素。基于如此的认识,大数据分析普遍存在的方法理论有哪些呢?
1. 可视化分析。大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。
2. 数据挖掘算法。大数据分析的理论核心就是数据挖掘算法,各种数据挖掘的算法基于不同的数据类型和格式才能更加科学的呈现出数据本身具备的特点,也正是因为这些被全世界统计学家所公认的各种统计方法(可以称之为真理)才能深入数据内部,挖掘出公认的价值。另外一个方面也是因为有这些数据挖掘的算法才能更快速的处理大数据,如果一个算法得花上好几年才能得出结论,那大数据的价值也就无从说起了。
3. 预测性分析。大数据分析最终要的应用领域之一就是预测性分析,从大数据中挖掘出特点,通过科学的建立模型,之后便可以通过模型带入新的数据,从而预测未来的数据。
4. 语义引擎。非结构化数据的多元化给数据分析带来新的挑战,我们需要一套工具系统的去分析,提炼数据。语义引擎需要设计到有足够的人工智能以足以从数据中主动地提取信息。
5.数据质量和数据管理。大数据分析离不开数据质量和数据管理,高质量的数据和有效的数据管理,无论是在学术研究还是在商业应用领域,都能够保证分析结果的真实和有价值。
大数据分析的基础就是以上五个方面,当然更加深入大数据分析的话,还有很多很多更加有特点的、更加深入的、更加专业的大数据分析方法。
大数据的处理
1. 大数据处理之一:采集
大数据的采集是指利用多个数据库来接收发自客户端(Web、App或者传感器形式等)的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。
在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,比如火车票售票网站和淘宝,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑。并且如何在这些数据库之间进行负载均衡和分片的确是需要深入的思考和设计。
2. 大数据处理之二:导入/预处理
虽然采集端本身会有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。
导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百兆,甚至千兆级别。
3. 大数据处理之三:统计/分析
统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。
统计与分析这部分的主要特点和挑战是分析涉及的数据量大,其对系统资源,特别是I/O会有极大的占用。
4. 大数据处理之四:挖掘
与前面统计和分析过程不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测(Predict)的效果,从而实现一些高级别数据分析的需求。比较典型算法有用于聚类的Kmeans、用于统计学习的SVM和用于分类的NaiveBayes,主要使用的工具有Hadoop的Mahout等。该过程的特点和挑战主要是用于挖掘的算法很复杂,并且计算涉及的数据量和计算量都很大,常用数据挖掘算法都以单线程为主。
整个大数据处理的普遍流程至少应该满足这四个方面的步骤,才能算得上是一个比较完整的大数据处理。
大数据的常见误解
一、数据不等于信息
经常有人把数据和信息当作同义词来用。其实不然,数据指的是一个原始的数据点(无论是通过数字,文字,图片还是视频等等),信息则直接与内容挂钩,需要有资讯性(informative)。数据越多,不一定就能代表信息越多,更能不能代表信息就会成比例增多。有两个简单的例子:
备份。很多人如今已经会定期的对自己的硬盘进行备份。这个没什么好多解释的,每次备份都会创造出一组新的数据,但信息并没有增多。
多个社交网站上的信息。我们当中的很多人在多个社交网站上活跃,随着我们上的社交网站越多,我们获得的数据就会成比例的增多,我们获得的信息虽然也会增多,但却不会成比例的增多。不单单因为我们会互相转发好友的微博(或者其他社交网站上的内容),更因为很多内容会十分类似,有些微博虽然具体文字不同,但表达的内容十分相似。
二、信息不等于智慧(Insight)
现在我们去除了数据中所有重复的部分,也整合了内容类似的数据,现在我们剩下的全是信息了,这对我们就一定有用吗?不一定,信息要能转化成智慧,至少要满足一下三个标准:
可破译性。这可能是个大数据时代特有的问题,越来越多的企业每天都会生产出大量的数据,却还没想好怎么用,因此,他们就将这些数据暂时非结构化(unstructured)的存储起来。这些非结构化的数据却不一定可破译。比如说,你记录了某客户在你网站上三次翻页的时间间隔:3秒,2秒,17秒,却忘记标注这三个时间到底代表了什么,这些数据是信息(非重复性),却不可破译,因此不可能成为智慧。
关联性。无关的信息,至多只是噪音。
新颖性。这里的新颖性很多时候无法仅仅根据我们手上的数据和信息进行判断。举个例子,某电子商务公司通过一组数据/信息,分析出了客户愿意为当天送货的产品多支付10块钱,然后又通过另一组完全独立的数据/信息得到了同样的内容,这样的情况下,后者就不具备新颖性。不幸的是,很多时候,我们只有在处理了大量的数据和信息以后,才能判断它们的新颖性。
大数据时代存储所面对的问题
随着大数据应用的爆发性增长,它已经衍生出了自己独特的架构,而且也直接推动了存储、网络以及计算技术的发展。毕竟处理大数据这种特殊的需求是一个新的挑战。硬件的发展最终还是由软件需求推动的,就这个例子来说,我们很明显的看到大数据分析应用需求正在影响着数据存储基础设施的发展。
从另一方面看,这一变化对存储厂商和其他IT基础设施厂商未尝不是一个机会。随着结构化数据和非结构化数据量的持续增长,以及分析数据来源的多样化,此前存储系统的设计已经无法满足大数据应用的需要。存储厂商已经意识到这一点,他们开始修改基于块和文件的存储系统的架构设计以适应这些新的要求。在这里,我们会讨论哪些与大数据存储基础设施相关的属性,看看它们如何迎接大数据的挑战。
容量问题
这里所说的“大容量”通常可达到PB级的数据规模,因此,海量数据存储系统也一定要有相应等级的扩展能力。与此同时,存储系统的扩展一定要简便,可以通过增加模块或磁盘柜来增加容量,甚至不需要停机。基于这样的需求,客户现在越来越青睐Scale-out架构的存储。Scale-out集群结构的特点是每个节点除了具有一定的存储容量之外,内部还具备数据处理能力以及互联设备,与传统存储系统的烟囱式架构完全不同,Scale-out架构可以实现无缝平滑的扩展,避免存储孤岛。
“大数据”应用除了数据规模巨大之外,还意味着拥有庞大的文件数量。因此如何管理文件系统层累积的元数据是一个难题,处理不当的话会影响到系统的扩展能力和性能,而传统的NAS系统就存在这一瓶颈。所幸的是,基于对象的存储架构就不存在这个问题,它可以在一个系统中管理十亿级别的文件数量,而且还不会像传统存储一样遭遇元数据管理的困扰。基于对象的存储系统还具有广域扩展能力,可以在多个不同的地点部署并组成一个跨区域的大型存储基础架构。
安全问题
某些特殊行业的应用,比如金融数据、医疗信息以及政府情报等都有自己的安全标准和保密性需求。虽然对于IT管理者来说这些并没有什么不同,而且都是必须遵从的,但是,大数据分析往往需要多类数据相互参考,而在过去并不会有这种数据混合访问的情况,因此大数据应用也催生出一些新的、需要考虑的安全性问题。
延迟问题
“大数据”应用还存在实时性的问题。特别是涉及到与网上交易或者金融类相关的应用。举个例子来说,网络成衣销售行业的在线广告推广服务需要实时的对客户的浏览记录进行分析,并准确的进行广告投放。这就要求存储系统在必须能够支持上述特性同时保持较高的响应速度,因为响应延迟的结果是系统会推送“过期”的广告内容给客户。这种场景下,Scale-out架构的存储系统就可以发挥出优势,因为它的每一个节点都具有处理和互联组件,在增加容量的同时处理能力也可以同步增长。而基于对象的存储系统则能够支持并发的数据流,从而进一步提高数据吞吐量。
有很多“大数据”应用环境需要较高的IOPS性能(IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能),比如HPC高性能计算。此外,服务器虚拟化的普及也导致了对高IOPS的需求,正如它改变了传统IT环境一样。为了迎接这些挑战,各种模式的固态存储设备应运而生,小到简单的在服务器内部做高速缓存,大到全固态介质的可扩展存储系统等等都在蓬勃发展。
并发访问一旦企业认识到大数据分析应用的潜在价值,他们就会将更多的数据集纳入系统进行比较,同时让更多的人分享并使用这些数据。为了创造更多的商业价值,企业往往会综合分析那些来自不同平台下的多种数据对象。包括全局文件系统在内的存储基础设施就能够帮助用户解决数据访问的问题,全局文件系统允许多个主机上的多个用户并发访问文件数据,而这些数据则可能存储在多个地点的多种不同类型的存储设备上。
成本问题
“大”,也可能意味着代价不菲。而对于那些正在使用大数据环境的企业来说,成本控制是关键的问题。想控制成本,就意味着我们要让每一台设备都实现更高的“效率”,同时还要减少那些昂贵的部件。目前,像重复数据删除等技术已经进入到主存储市场,而且现在还可以处理更多的数据类型,这都可以为大数据存储应用带来更多的价值,提升存储效率。在数据量不断增长的环境中,通过减少后端存储的消耗,哪怕只是降低几个百分点,都能够获得明显的投资回报。此外,自动精简配置、快照和克隆技术的使用也可以提升存储的效率。
很多大数据存储系统都包括归档组件,尤其对那些需要分析历史数据或需要长期保存数据的机构来说,归档设备必不可少。从单位容量存储成本的角度看,磁带仍然是最经济的存储介质,事实上,在许多企业中,使用支持TB级大容量磁带的归档系统仍然是事实上的标准和惯例。
对成本控制影响最大的因素是那些商业化的硬件设备。因此,很多初次进入这一领域的用户以及那些应用规模最大的用户都会定制他们自己的“硬件平台”而不是用现成的商业产品,这一举措可以用来平衡他们在业务扩展过程中的成本控制战略。为了适应这一需求,现在越来越多的存储产品都提供纯软件的形式,可以直接安装在用户已有的、通用的或者现成的硬件设备上。此外,很多存储软件公司还在销售以软件产品为核心的软硬一体化装置,或者与硬件厂商结盟,推出合作型产品。
灵活性
大数据存储系统的基础设施规模通常都很大,因此必须经过仔细设计,才能保证存储系统的灵活性,使其能够随着应用分析软件一起扩容及扩展。在大数据存储环境中,已经没有必要再做数据迁移了,因为数据会同时保存在多个部署站点。一个大型的数据存储基础设施一旦开始投入使用,就很难再调整了,因此它必须能够适应各种不同的应用类型和数据场景。
数据的积累
许多大数据应用都会涉及到法规遵从问题,这些法规通常要求数据要保存几年或者几十年。比如医疗信息通常是为了保证患者的生命安全,而财务信息通常要保存7年。而有些使用大数据存储的用户却希望数据能够保存更长的时间,因为任何数据都是历史记录的一部分,而且数据的分析大都是基于时间段进行的。要实现长期的数据保存,就要求存储厂商开发出能够持续进行数据一致性检测的功能以及其他保证长期高可用的特性。同时还要实现数据直接在原位更新的功能需求。
应用感知
最早一批使用大数据的用户已经开发出了一些针对应用的定制的基础设施,比如针对政府项目开发的系统,还有大型互联网服务商创造的专用服务器等。在主流存储系统领域,应用感知技术的使用越来越普遍,它也是改善系统效率和性能的重要手段,所以,应用感知技术也应该用在大数据存储环境里。
小用户怎么办?
依赖大数据的不仅仅是那些特殊的大型用户群体,作为一种商业需求,小型企业未来也一定会应用到大数据。我们看到,有些存储厂商已经在开发一些小型的“大数据”存储系统,主要吸引那些对成本比较敏感的用户。