大数据技术发展的过程
身为数据科学与大数据技术专业的学生,在学大数据技术的同时也应该了解大数据技术发展的历程,这样才能真正学好大数据的核心技术。
一、大数据技术的历史以及典型的技术
1.1
历史大数据技术(Big Data Technology)是一项基于数学、统计学、计算机等各类学科穿插融合而成的理论和方法,是这个高科技时代的产物,旨在为人类解决生活中的各种问题,例如出行、购物、文化、医疗、航天、甚至于军事和政治,主要还在于它可以为人类创造更大的价值。
大数据最早是由美国著名思想家、未来学家阿尔文·托夫勒于 1980 年 3 月在其著作《第三次浪潮》中提出, 他阐述了人们应该积极的响应未来而不是以过去的现实为基础。而最早对大数据技术应用的是来自于世界著名的管理咨询公司——麦肯锡公司(McKinsey),很长一段时间后由《自然》杂志在 2008 年 9 月推出大数据(Big Data)专刊,探讨科研形态的变化。此后,大数据技术便引起人类的注意,尤其在美国,其发展迅速特别是在商业界和科研上的应用,而最要的,还是因为一个人的成就,他便是维克托迈尔-舍恩伯格(Viktor Mayer-Schönberger)多年来,他潜心研究数据,他的代表作《大数据时代》开启了国外大数据研究的先河。而随着社会的发展,越来越的人关注它,大数据技术也越来越成熟,我国现也将其放在了重点上研究,而大数据也将为我国带来更多的价值。
1.2
典型的技术数据挖掘技术,要做大数据技术分析,首先考虑应该是“数据”两字。那么数据从何而来?这就需要我们自己去寻找数据,亦采集数据,而后还需要各种处理(此处不作深入说明,后文会有详细解说)。大数据技术最重要的一步便是“数据挖掘(Data Mining)”。而数据挖掘绝不是这四个字如此的简单,它集合了数据库、可视化、高性能计算等多个学科的技术,对于初学者来说是有一定难度的,但却是大数据技术的关键,因此,我们必须熟练掌握。数据挖掘是指在大量数据中找到有用或是我们所需要的那些数据,但是在大量的数据中,各种类型的数据混杂一起,这就需要我们先对数据进行判别和预处理,然后导入,经过多重分析,最终呈现结果。可视化技术,虽然他只是大数据技术中很小的一部分,但却是不可缺少的。我们将数据收集起来,经过加工,为的就是给人们呈现一种通俗易懂的状态,从中找到一些有用的知识,来帮助我们进行各类决策和预测。所以可视化可以说是从高端层面到低端的一个桥梁。这两项技术在我看来是相当重要的,它们是大数据技术的核心,是人类发展大数据技术不可缺少的。
1.2.1
大数据技术的流程要应用大数据技术,我们就必须先了解它的流程,我们可以将其技术一分为四:数据采集、数据导入处理与分析、数据挖掘、数据可视化。以淘宝为例,阿里的发展离不开淘宝,那么为什么会有这么多人参与淘宝呢?这不仅仅是因为社会发展所需,更是大数据时代的产物。我们仔细回想一下,当我们在网上买东西时,是不是经常会有许多的推荐的商品,而且还极有可能是我们喜欢的,奇怪了,网络怎么知道我喜欢什么呢?这便是大数据技术,当我们淘宝的时候,网站会记录我们所买的东西,久而久之,淘宝便能根据个人的喜好来给你推荐你喜欢的东西。他们便是将客户的数据收集起来后经过、挖掘、可视化,从中发现一些规律,进而推断出我们可能需要买什么东西。而对数据的挖掘,一直是一大难题,接下来,我们将对数据挖掘进行深入探讨。
1.2.2
基于多媒体数据的挖掘我们知道,生活中的大部分数据都是多媒体式的,即文本、图像、声音、视频、动画等不同类型的数据混杂一起,有着非常巨大的数据量,但许多人的研究方向主要集中在多媒体数据内容的信息检索上,是解决了一些问题,但却没有真正做到利用这些数据的价值,而要做到对多媒体数据挖掘,那是具有当大的难度的。我们最先想到的可能是分布处理,因为分步的话,相对来说较简单,如我们先对文字进行挖掘、然后图片、其次音频、最后对其视频,做到一步一步去简化它,但这样却很浪费时间,而且纷繁复杂。另一种方法,我们可以利用多媒体的数据库(MM-DBMS)来对其处理,而我们知道,多媒体数据类型结构多样,所以他的数据库必须是异构,这样才能满足对不同类型结构数据的存储,但人们发现这样看起来是简单了,但可实施性却不大,而且实时处理也做不到,可以说是举步维艰。我们目前能做到的,仅仅是对文本和图像的挖掘,而视频到现在为止还没有什么大的成果,有的仅是一些不成熟的技术,如:结构挖掘、运动挖掘、趋势挖掘;至于音频虽有发展,但却大多在国外如:美国 ScanSoft 公司的,AudioMining 开发系统,它能将音频信息转换为文字信息,然后进行挖掘,但它更多地用于音频检索。因此,对多媒体数据的挖掘还需进一步研究。下面我们仅阐述下多对媒体数据文本进行挖掘的流程。
1.2.3 文本挖掘
步骤一:对采集的文档进行预处理
1:去除格式标记(可通过<TITLE>、<BODY>、<A>等完成)
2:去取停用词和词干化(可通过 Porter Stemmer 算法完成)
3:中文分词:a 机械分词 b 基于统计分词 c 基于规则和基于统计相结合步骤二:文档的表示(此处只介绍向量空间模型)(其中:tf(ti,d)表示词 ti 出现在文档 d 中的频率;ti 为词表中的一个词;N 为词表的大小)
步骤三:文本分类(此处介绍决策树法)(E 为记录集,F 为属性集,createNode 为建立新结点,Classify 为叶结点)
步骤四:文本分类器学系、测试和评价
精确率:Precision=a/a+b 召回率: Recall=a/a+cF1(综合分类率)=2×Precision×Recall/Precision+Recall
步骤五:可视化
二、大数据生态圈大数据是一个很大的概念,而大数据技术也绝对不仅仅是一个技术这么简单。我们生活在数据的时代,那我们就可以利用这些数据,为我们的生活创造更加便利的条件,我们可以狭义的理解大数据为一些数量极大、数据类型极为复杂的数据集,我们要让这些数据给我们带来方便,那我们就要深入研究它们,接下来我们以 Hadooop 为例,介绍其生态圈。
2.1
Hadoop 生态圈我们要对海量数据进行研究,最先做到的就是要把这些数据存储下来,而通过 HDFS(Hadoop Distributed File System)就可完成对大量数据的存储。此系统有着很强大的功能,它有很高的容错性,很大的吞吐量,而且支持流计算,并可以自动产生副本,防止数据丢失等优点。但仅有储存还远远不够,我们要对这些数据进行整理得到我们想要的知识。我们通过 Hadoop 得到了数据并存储下来,但是要用一台机器去整理这些数据是不可能的,我们需要大量机器来帮助我们,可是我们还必须注意这些信息的的类型和它的时效性。比如一串数据,你用一台机器将其整理、计算、然后公布,花费了一周时间,可能这时候人们已经不去关注了,那么这些数据也就数去了价值,因此就有了 MapReduce 来辅助,对储存的数据进行分布式计算和任务处理,前者对提供文件的操作和储存等,后者则进行任务的分发、跟踪、执行等,一个在一个的基础上运作,两者相辅相成,HDFS 和 MR 共同组成了 Hadoop 的核心。
MapReduce 可以帮助我们搜集并分类,你可以把 Map 看做一个挑拣的机器,而 Reduce 则是一个整理的机器,当然这其中有着很多的细节。人们知道了方法,便可以自己去操作了,但其过程却繁杂,尤其算法复杂。所以有人希望能简化这其中的过程,又出现了 Pig 和 HivePig 是一种接近于脚本的方式去描述 MapReduce,而 Hive 则用 SQL(结构化查询操作),我们将这两种方式结合一起做成 MapReduce 程序,然后把数据丢给程序就可以了,让电脑自己去算。但社会在发展,人们越来越不满足这种速度,还是觉得 MapReduce 太慢,便诞生了 Impala,Presto,Drill 等 SQL 交互式引擎。这些软件的出现完全是追求一个字--快,Impala,Presto,Drill 等解决了中低速的处理要求,但我们希望更快,就出现了——Streaming,即流计算。它比起 MapReduce 的离线处理好了许多,因为它可以边浏览边处理,速度大大加快,方便快捷,但却有着很大的缺点,时间快了,但其识别信息的精准度却降低,很容易错失一些重要数据。为此,此处简单介绍两种流计算模型。
2.1.1
Storm 和 Spark StreamingStrom 处理的是每次传入的一个事件,它的延迟可以达到秒内,因为每个记录通过时都会被跟踪,所以能保证每个时间都能至少被处理一次,不丢失数据,但其缺点可能会重复更改。Spark Streaming 处理的则是一个事件流,因此,它的延迟较长些,但是它是用批级别来处理,可以保证每个数据都只被处理一次。适合有状态的计算,而且编程逻辑相对较容易。
三、大数据技术的优缺点和所存在的问题
3.1
数据采集数据采集的方法有着很多,生活中处处都是数据,如我们可以写爬虫,到一些网站上爬到自己想要的数据,但是这需要一定的编程水平才能做到,对于普通人还是有所限制的;再如,我们需要的大量的数据进行研究,我们可以通过一些开放的数据库来下载数据,但是开放的数据库基本上价值都不是很大。当然,其方法多种多样,可以根据不同的需求来采用不同方法。目前,我国对数据的开放程度还是较小的,一些有价值的数据得不到,但无论如何,我们必须在法律规定的范围内来获取数据。
3.2
数据预处理我收集到的数据为最原始的数据,其类容杂乱无章,这就需要我们对其进行各种处理,提高数据的质量,为下一步做好准备,接下来,我们简单介绍处理的步骤。
3.2.1
数据清理数据清理的目的是检查数据中的错误和不一致,我们通过填补缺失的数据、消除噪声数据等提高数据的质量。例如,在医疗数据库中,我们想要得到一些疾病的发病率,但有些疾病会因为人的年龄、身高、体重等各种因素而收到影响,这些信息又刚好涉及个人隐私,是无法得到的,这样就使部分属性空缺出来,造成数据的缺失;再比如,我们要做个调查统计,其中肯定会有一些数据的丢失、而且调查的时间、范围等都会造成数据偏差。所以,我们需要对这些数据进行加工。简单说几种方法,当缺少标号时,我们可以忽略元祖;当数据缺失太多时,我们可以进行填充,但这只适用于数据集小的。总而言之,对数据的清理决定了数据的准确性。
3.2.2
数据集成与转换我们获取的数据来自不同的数据源,在对其挖掘前,必须要合并,如若不适合挖掘,则需对其转换。首先我们说到集成,它是将多个来源不同的数据存放在一个统一的储存器中,但在其过程中由于对象、属性等不同,存在冗余问题,会浪费储存空间,降低数据可靠性,可但以利用相关分析对其进行消除。数据转换涉及到的工作量更大些,我们要对数据进行平滑、聚集、数据概化、规范化、属性构造,来使数据和将来要建立的模型拟合的更好。而后还需要对数据规约、压缩;以及最后一步的分层与离散化。看似简单的基本的步骤却需要大量的人力物力来支持,对普通人来说还较为遥远。
3.3
数据可视化数据可视化是指将大型数据用一种图片或其他的形式将其想要表达的意思简单化,即很美观又很容易的将其中的信息呈现,在如今的时代,我们对程序员的要求不仅要要求其功能,还要美观,所以,把握这两者之间的要求对许多人来说较困难。目前数据可视化的方法很多很多,而且,数据可视化对其技术的掌握程度要求较高,这都需要大量的高端人才来实现,而我国目前这方面的技术还相当薄弱,所以要想发展大数据技术我们必须要有充足的人力物力。
四、案例分析
沃尔玛的搜索,沃尔玛是美国的零售的巨头,也是最早运用大数据的零售企业。沃尔玛通过大数据提前预知顾客明天会做什么,而提前准备。我们以蛋挞和飓风用品摆在一起为例,沃尔玛注意到,每当台风季节来临之前,手电筒和蛋挞的销量会大大增加;因此,他们对交易记录这个庞大的数据库进行分析,总结出了这个结论,从而增加自己的销量。
另一个:在美国,东中海岸时差两小时,东海岸的沃尔玛超市早上营业两小时后中海岸才开始营业,他们会在中海岸营业前将东海岸的销售情况报告给中海岸,中海岸根据这个数据来设置超的物品放置方案。而沃尔玛最初使用的,便是 Hadoop。Hadoop 适用于海量数据的数据集,存储和处理数据的能力也是非常强大的,而面对沃尔玛的各类数据,Hadoop 又有很高的扩展性。其次,对数据的时效性也有要求,Hadoop 能够在节点之间动态的移动,处理速度飞快,最重要的一点,其成本低。这充分地说明了大数据技术给沃尔玛带来的好处。目前,Hadooop 被广泛的运用于商业、政府等数据处理工作。梅西百货的定时定价机制,梅西百货是美国著名的百货公司,正是对大数据的应用使的他们能够在不断发展的当今社会独树一帜。梅西百货也是在基于 Hadoop 的基础上对 SAS 加以利用,从而提高自己的自身分析能力。运用 SAS Enterprise Miner 梅西百货可以根据自己的需求和库存量对上千万种货物的价格进行实时调整,并对其分类,还可以自动生成报表,节省了大量的时间和金钱,增加了自己的销量,提升了自身的竞争力。再一次证明,在这个大数据时代背景下,我们必须努力提升自己才能不被淘汰。
最后罗嗦几句,身为普通本科这个专业的学生,如果是对大数据技术非常感兴趣,鼓励去考研,因为目前大部分的高校都已经开设此专业,相对于 985、211 学校的学生来说,我们普通院校在这方面是没有竞争优势的,所以我认为要想学习大数据技术大学四年是远远不够的,还需深造,当然,是对于像我这种普通院校。(天才除外,哈哈)
版权声明: 本文为 InfoQ 作者【菜菜】的原创文章。
原文链接:【http://xie.infoq.cn/article/73701aa80e8e9334b9d5993c3】。文章转载请联系作者。
评论 (2 条评论)