大数据从小做起—中小企业的Big Data之道

ibm_smarter_business

 

很多普通中小企业,特别是中型的互联网和物联网企业,在大数据方面的应用场景也有很多。本文给准备利用大数据的中小企业提出了五点建议。

 

任何一个时代或者模式的兴起,都离不开与之相关的Killer App,比如,C/S时代的SAP ERP,互联网 1.0 时代的门户,以及互联网 2.0时代的搜索和SNS等,那么在当今云计算这个时代有那些Killer App呢?当然首先想到的肯定是以VMware 和Amazon EC2为代表的虚拟化和相关IaaS服务,除此之外,新近崛起的大数据绝对也是云计算的Killer App之一。不仅类似百度、阿里,以及腾讯这样的互联网巨头有相关的应用需求,而且根据笔者平时与客户的接触,发现有很多普通中小企业,特别是中型的互联网和物联网企业,在大数据方面的场景也有很多。本文将首先给大家介绍一下在笔者眼中的大数据,以及大数据的意义和特点,再介绍一下大数据的常见处理流程,之后将会和大家分享一下笔者如何帮助一些中小企业实施大数据相关的解决方案,也就是大数据如何从“小”做起。

 

什么是大数据?

过去计算机产生的数据较简单,基本上都是一笔笔事务,总量虽大,但整体增长幅度都还是可控的。比如传统的金融企业,经常使用几台大型机就能管理其所有的业务数据。而最近几年,由于以平板、智能手机和传感器为代表的智能设备越来越多,这些设备的生成的数据更是远远地超过我们的想象。据IDC的统计,全球数字信息在未来几年将呈现惊人增长,预计到2020年总量将是现在的44倍。据另外一份数据显示,全球 90% 的数据都是在过去两年中生成的,并且每年以50%的速度增长。每天,遍布世界各个角落的传感器、移动设备、在线交易和社交网络会产生PB级别的数据;每个月,全球网友会发布了10多 亿条 Twitter 信息和300多 亿条 Facebook 信息。那么这些大数据的存在有什么价值和意义呢?

大数据的价值

笔者个人和一些朋友一直觉得大数据就好比一口油井,因为里面蕴含着非常丰富的价值,如果企业能有效利用其内部存储的海量数据,那么将会改善其自身的产品和服务,从而提升客户和受众的体验,在大数据时代获取竞争优势。并且随着本身分析和挖掘技术不断的提升,可以在之前的基础上提供新的决策模式,从而支持管理者进行快速和精确地决策,这样能够超越对手,抢占市场先机。

以下的内容会通过几个行业来举例讲解一下大数据有哪些意义和作用?

  •    ●互联网企业
  • 有一些客户主要是做网络舆情或者网络广告方面的业务,他们每天都会处理和收集TB级别的日志或者网页信息,结构化和非结构化数据都有。他们就是通过分析这些数据来为其客户提供价值,比如分析一下一个男性护肤品广告是在世界杯期间投放好,还是在亚洲杯期间播出好?在电子商务方面,eBay是个很好的例子。其分析平台每天处理的数据量高达100PB,超过了纳斯达克交易所每天的数据处理量。为了准确分析用户的购物行为,eBay定义了超过500种类型的数据,对顾客的行为进行跟踪分析,并且通过这些分析促进eBay自身的业务创新和利润增长。
  •   ●智能电网
  • 我们有一个合作伙伴,他们是做智能电网相关的解决方案。对那些电网而言,如果无法准确预估实际电力的使用情况,将会使电网要求电厂发出过量的电力,虽然这些过量电力可以通过某种模式进行保存,但是大量的电力浪费已不可避免。而通过他们智能电网的解决方案,每隔一刻钟会采集一个省几千万用户的用电数据,之后他们会根据这些数据来精确分析用户的用电模型,最后通过这个用电模型来优化电力生产,从而有效地减少电力资源的浪费。
  •   ●车联网
  • 在车联网方面,有一家客户在一个城市有几十万台基于Android的终端,而这些终端每隔一段时间都会发送具体位置的GPS消息给后端的数据集群,接着这些集群会分析这些海量的GPS信息,分析出哪些路段在什么时候比较堵,之后将这些非常有价值的信息不断地推送给客户,从而帮助用户减少在路上所消耗的时间。
  •   ●医疗行业
  • 在医疗行业,大数据的用例有很多。首先,通过分析大量的病例信息,将有效地帮助医生治病;其次,假设在一个病人身体的多个节点加入探针设备,而且每个探针每天会采集GB级别关于人体细胞和血液运行状态的数据,之后计算集群可以根据这些数据来进行分析,这样能更精确地判断病因,从而让医生对病人进行更具针对性的治疗。
  •   ●机器学习
  • 在这方面,最出名的例子莫过于最近很流行的Siri,它后台有一个庞大的HBase集群来对类似语言这样的文本数据进行分析和管理,从而使Siri变成一位越来越老练的个人助手,为iPhone 4S的用户提供了日期提醒、天气预报和饭店建议等服务。除此之外,还有IBM的Watson,它通过一个基于Hadoop UIMA框架的集群来挖掘海量的文本信息来实现一定程度的人工智能,并在美国著名知识问答节目Jeopardy中战胜多位出色的人类选手。
  •   ●国家安全
  • 这方面最出名的例子,莫过于美国的联邦情报局(CIA)。在过去10年中,他们通过无人侦察机收集了大量阿富汗那边地理相关的视频资料,之后通过分析这些海量视频资料,来对极具危害性的恐怖组织团伙进行定位。

大数据的特点

大数据,不仅有“大”这个特点,除此之外,它还有很多其他特色。在这方面,业界各个厂商都有自己独特的见解,但是总体而言,我觉得可以用“4V+1C”来概括,“4V+1C分别代表了Variety(多样化)、Volume(海量)、Velocity(快速)、Vitality(灵活)以及Complexity(复杂)这五个单词。

  1. Variety(多样化) 大数据一般包括以事务为代表的结构化数据、以网页为代表的半结构化数据和以视频和语音信息为代表的非结构化等多类数据,并且它们的处理和分析方式区别很大。
  2. Volume(海量)  通过各种智能设备产生了大量的数据,PB级别可谓是常态,笔者接触的一些客户每天处理的数据量都在几十GB、几百GB左右,估计国内大型互联网企业每天的数据量已经接近TB级别。
  3. Velocity(快速)  大数据要求快速处理,因为有些数据存在时效性。比如电商的数据,假如今天数据的分析结果要等到明天才能得到,那么将会使电商很难做类似补货这样的决策,从而导致这些数据失去了分析的意义。
  4. Vitality(灵活)  在互联网时代,和以往相比,企业的业务需求更新的频率加快了很多,那么相关大数据的分析和处理模型必须快速地适应新的业务需求。
  5. Complexity(复杂) 虽然传统的BI已经很复杂了,但是由于前面4个V的存在,使得针对大数据的处理和分析更艰巨,并且过去那套基于关系型数据库的BI开始有点不合时宜了,同时也需要根据不同的业务场景,采取不同的处理方式和工具。

大数据的常见处理流程

前面已经介绍了了处理大数据的必要性和特点,那么接着将谈到如何处理大数据,特别是常见的处理流程。具体的大数据处理方法其实有很多,但是根据长时间的实践,笔者总结了一个基本的大数据处理流程(图1),并且这个流程应该能够对大家理顺大数据的处理有所帮助。

大数据常见处理流程

图1. 大数据的常见处理流程

整个处理流程可以概括为四步,分别是采集、导入和预处理、统计和分析,以及挖掘

  • 1.采集
  • 大数据的采集是指利用多个数据库来接收发自客户端(Web、App或者传感器形式等)的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。
  • 在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,比如火车票售票网站和淘宝,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑。并且如何在这些数据库之间进行负载均衡和分片的确是需要深入的思考和设计。
  • 2.导入/预处理
  • 虽然采集端本身会有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。
  • 导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百兆,甚至千兆级别。
  • 3.统计/分析
  • 统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC 的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。
  • 统计与分析这部分的主要特点和挑战是分析涉及的数据量大,其对系统资源,特别是I/O会有极大的占用。
  • 4.挖掘
  • 与前面统计和分析过程不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测(Predict)的效果,从而实现一些高级别数据分析的需求。比较典型算法有用于聚类的K-Means、用于统计学习的SVM和用于分类的Naive Bayes,主要使用的工具有Hadoop的Mahout等。
  • 该过程的特点和挑战主要是用于挖掘的算法很复杂,并且计算涉及的数据量和计算量都很大,还有,常用数据挖掘算法都以单线程为主。

如何从“小”做起?

由于笔者平时与中小企业的接触非常频繁,虽然技术方案与实际的问题相关,但却很难在一篇文章当中详尽地道来。除了上述的基本处理流程之外,以下会将一些基本的从“小”做起的思路作阐述:

1. 认识自己的不足。主要是在技术、人力和财力等方面不仅无法与Google和Amazon这样的国外巨头比肩,而且与国内三大互联网BAT(百度、阿里巴巴和腾讯)也是无法比肩的,所以需要深刻认识;

2. 明确分析自己的需求。下面是几个常见的需求选项:

  •    ●数据类型,是结构化,半结构化,还是非结构化为主;
  •    ●数据大小,内部数据级别是TB级别、PB级别或者PB以上的级别;
  •    ●读写量级,比如每小时写入的数据达到GB级别,或者每天写入达到TB级别等;
  •    ●读写比例,是写为主,还是以读为主;
  •    ●并发数,大致的每秒并发数;
  •    ●一致性,只接受强一致性,或者可以接受最终一致性和弱一致性;
  •    ●延迟度,最高能容忍的延迟度是多少,是10毫秒,100毫秒,还是1秒;
  •    ●分析的复杂度,需不需要引入较复杂的数据挖掘算法等。

3. 要灵活使用现有的工具。首先,推荐使用一些开源,或者是价格可以承受的商业软件。虽然个人并不排斥自建,但是一定要有具体的商业价值,并且最好是在现有工具上的画龙点睛,而不是从头开始构建;其次,工具方面应与具体的场景相关,在不同的场景要使用不同的工具。

4. 尽量不要走平台思路,应以具体的应用和场景为主。因为建一个平台有很多附加的成本和设计,比如,Amazon的云平台是通过至少五年时间构建而成。特别是项目初期,不建议走平台这个方向,而是应脚踏实地以具体的商业场景为主。

5. 找准切入点。最好是找到一个技术难度小,并且有一定的商业价值的场景来做大数据技术落地的试点,并不断地进行测试和迭代来验证,而不是一味求复杂、求大,这样比较容易说服企业管理层来进行长期的投入和支持;

最后,想强调一下,“罗马不是一天建成的”。无论是Google的用于大数据处理的基础设施,还是国内淘宝的“云梯”都是一步步通过不断的积累和实践完成的,所以中小企业应该贯彻“大处着眼、小处着手”的方针来持续地验证和推进。

原载:CNW

关于作者:

吴朱华,曾在IBM中国研究院参与过多个云计算产品的开发工作,现在专注于YunTable(http://code.google.com/p/yuntable/)和YunEngine(http://yunengine.com/)的研发。

第一时间获取面向IT决策者的独家深度资讯,敬请关注IT经理网微信号:ctociocom

   

除非注明,本站文章均为原创或编译,未经许可严禁转载。

相关文章:


关于作者