天天看点

什么是大数据:数据再多也不怕,质量始终在线

作者:袁文泽博客

#头条创作挑战赛#袁文泽博客带你用大白话理解什么是数字化转型,为了方便阅读,请关注@袁文泽博客

前面聊到互联网技术可以帮助我们创造出数量巨大又丰富的数据,我们可以采用这些数据开展“数字化”业务。那么接下来,如何从这些数据中提炼出有价值的业务知识就成了一个需要解决的问题。

人们解读数据并从中提炼有用知识的技术叫作数据分析,数据分析指导人们生活实践的历史非常悠久。

在传统的数据分析活动中,数据的规模并不大,可以依靠人力简单计算来总结经验。然而,在当今信息爆炸的时代,数据的充足性大多可以保障,此时对海量数据的分析能力就显得格外重要了。试想,互联网每天有那么多数据被制造出来,就是全地球的人不吃不喝“光数数”,也分析不了那么多内容,于是就得依靠计算机自动地进行数据计算,让机器帮助我们进行数据的分析,这里就引出了本节的主角——大数据技术。

大数据技术所擅长的,就是从大量的数据中以非常高的效率挖掘出有用的业务知识。那么,大数据技术产生的背景是什么?它又是如何实现高性能的信息处理的呢?

规模的困境:效率决定一切

如果说互联网解决了数据的“开采”问题,则大数据解决了数据的“加工”问题。为了从数据中获得价值,我们不仅需要数据,还得有处理数据的能力。在数字化时代,数据很多,但是从数据中提炼有价值的知识却十分困难。一方面需要设计“精巧”的数据分析方法,另一方面也要有强大的执行这些数据分析方法的技术手段。而计算机就是技术手段的重要“物理载体”。

我们都知道,计算机的计算速度与人相比是快很多的,比如我们想用一张Excel表格统计出公司的利润率,基本上都是一秒钟出结果。既然计算机这么厉害,我们是不是就不必担心数据量太大而处理不了的情况了?显然,事情并没有这么简单。

尽管平时我们用计算机代替人做一些脑力工作的时候,计算机的运算能力和记忆力看起来已经很强大了,但其实和现在大多数的自动化或智能化业务所需要的数据规模相比,这个能力还远远不够。

家用计算机一般处理几十条或几百条数据也就到头了,而当数据规模真的很大的时候,如大到万级、百万级,甚至亿级,那么计算机可能比人还“傻”还“慢”。人算不出来的时候,至少还会估计个大概结果,但是计算机如果在某个“公式”处算不动了,就只会“卡”在那里,什么也做不了,甚至一着急单击“强制退出”按钮,就会把之前好不容易算好的数据结果也给“冲”掉了。这种糟心经历,相信很多人在尝试用Excel计算规模比较大的数据时都曾遇到过。

如今很多企业都有自己的业务信息系统,通过互联网,这些业务信息系统可以非常轻易地收集动辄“千万级别”的数据。例如每年的“双11”期间,任何一个电商平台的用户量都很可观。在这么大的客流中,考虑到每个人又积攒了几个月甚至一整年的购物清单,需要被计算的数据规模着实惊人!我们创造数据的速度有多快,我们分析这些数据的能力就需要有多强。

在数字化场景下,对大规模数据的处理是十分常见的。然而,在对大规模数据进行计算的时候,光用Excel这种基础软件是不行的,数据也不是存在电子表格里的,而是存在“数据库”中的。软件工程师需要自己开发代码来“运算”这些数据,在这个过程中,需要定制一些复杂的算法来探索数据中“隐含”的关键业务知识。

代码编写情况会极大地影响数据分析的效率。如果代码设计得比较优雅,从数据中挖掘知识的效率就会更高。反之,如果代码设计得非常笨拙,代码“跑”一遍的效率就会非常低,分析人员从数据中找规律的速度也就比较慢。

在实践中,通过数据分析找规律是非常耗费时间的。这是一个需要“耐心”探索的任务,数据分析人员需要根据每次“跑”代码的结果,不断地调整数据分析策略,进行非常多次的迭代尝试,最终才能获得比较“可靠”的业务知识,也就是应用效果好的技术模型。

比方说,影响用户购买某件产品的因素有10个,包括性别、年龄、地址、喜好、上次购买时间、是否为老用户、用户是否使用优惠券等,但是我们不知道究竟是哪几个因素发挥了作用。因此,我们需要采用组合因素验证的方法来分别进行计算。

在最复杂的情况下,我们可能需要做将近1000次实验才能得到比较好的统计分析结果。如果一次实验需要计算3天,那么我们需要用将近10年才能得到有价值的业务规律,真等到那个时候,估计连公司都没有了,更不要说业务了。

时间,永远是数字化转型中非常重要的关键变量。如果需要等待的时间太久,则即使在理论上技术方案有可行性,但在实用化落地上也是行不通的!

也就是说,如果机器对数据的分析处理速度非常慢,那么分析人员就不能在有意义的时间范围内得到有用的知识。如果要耗费极大的时间代价才能发现一些微不足道的规律,那么这种模式是没有办法“敏捷”地支持业务创新工作的。

于是,为了很好地解决上面提及的问题,在大规模数据场景下,计算机在算数的时候依然能够“表现优秀”的技术能力,就成为数字化转型中十分重要的技术主题。工程师们发明了一系列的技术方案来解决这方面的问题,我们给其起了个统一的名字,就叫作大数据技术。

分布式策略:一起干活力量大

顾名思义,大数据就是面向大规模数据进行计算处理的应用技术,大数据技术的概念在过去十几年间的热度几乎没有下降。而最近,随着“公有云”“数据中台”等新潮词汇的大力宣传推广,大数据几乎成了大中型企业进行数字化转型的技术标配。

那么,大数据技术,是如何实现高效率的呢?这里面的基本原理又是什么?

计算机在分析处理数据的时候,由于硬件设备的中央处理器(CPU)和内存的容量是非常有限的,所以数据通常是一点一点地进行计算的。毕竟,饭要一口一口地吃才行。而当数据量大了,饭也就吃不完了!高配计算机可以一口气多吃点,而普通计算机本来就“笨”,再随着设备老化,“吃饭”的速度就会越来越慢。

于是,我们可以非常直接地想到使用高品质计算机来解决大数据计算的问题。然而在面对互联网场景下产生的如此惊人数量的数据时,这种高品质计算机需要达到超级计算机的性能才行。这里所说的超级计算机其实就是算力超级强大的单体计算机主机,比如大陆非常有名的“神威·太湖之光”和“天河二号”。那么问题来了,数字化这件事每个企业都得面对,各位老板们也要买超级计算机吗?

一台“天河二号”的造价是25亿元,每天光耗电费用就超过60万元。所以,看着研究成果还可以,但可能大部分企业真付不起这个钱!

那怎么办呢?既然买一台这么高精尖的计算机来处理大数据是不现实的,倒不如找多台普通的计算机一起干活比较靠谱。一个人胃口小一些没关系,大家一人一口总能吃完!多台普通计算机的成本肯定会比单台高性能计算机的成本低很多,这种技术策略使得处理海量数据成为一般企业“消费得起”的技术项目。

多台普通计算机代替一台“超级计算机”的方案,技术圈也有个比较专业的名字,叫作“分布式架构”。这些计算机在一起工作的时候,需要互相连成网络,实现信息的即时通信,从而达到工作任务的配合。看到了吧,互联网技术再次发挥了作用,只要有网络,就有了连接,就有了提供信息的渠道。

一个重要的事实再次印证了,无论是人还是机器,只要被连接在一起,就会产生更多的创意并提高效率!

“分布式架构”在现实场景中,具体是怎么解决大数据的“疑难杂症”的呢?

例如,分析某个区域一天之内发生的1亿笔在线支付交易记录,并使用某个计算机算法来自动找到其中所有的可能诈骗交易。在使用单台普通计算机计算的时候,处理这么多数据需要花费1个月,要是用超级计算机来计算,那么只要2分钟就可以。但是超级计算机我买不起,我只有普通计算机,也不想等太久,毕竟领导催得紧,我该怎么办?有同事出了个主意,找300多台计算机一起工作,每台计算机处理30多万条数据,只需要等2小时就好了。

用这种方法,每台计算机在自己的那份数据中把诈骗交易找到,然后汇总到某台计算机上,最后把结果一起输出,任务就完成了!

随着个人PC成本的逐渐降低,Google公司的工程师率先提出了上面这个“分布式架构”的具体实现方法,并提出了其中两个特别重要的技术架构:GFS(分布式的数据存储架构)和MapReduce(分布式的数据计算架构)。其中,GFS解决了大规模数据的存储问题,而MapReduce解决了大规模数据的计算问题。

关于“分布式”理念的提出和技术实现这里还有一个小插曲:Google在提出“分布式”技术时只公开了理论上的方法,这个方法后来被一个名为Doug Cutting的软件工程师“苦哈哈”地用了2年业余时间把代码实现了,并非常“善良地”公开给所有的程序员免费使用,这些“免费”的代码也就是非常知名的Hadoop项目。Doug Cutting成全了自己的“情怀”,坑了Google,因为盈利点没了!

Hadoop项目提供了大量可以简单调用的应用程序接口,程序员们在设计并实现软件应用的时候,如果需要使用多台计算机的大数据存储能力或大数据计算能力,就不用自己再重复“造轮子”实现这些基础功能了。Hadoop让“高大上”的大数据技术走下“神坛”,走进各个软件公司的工作室。大数据因此变成了一种“即插即用”的亲民技术。

企业级架构:从“云”到中台

前面讲了这么多,我们知道“分布式”其实就是多台计算机一起工作的数据处理技术方案。同时,我们可以把多台计算机,以及能够让这些计算机好好配合、协作工作的软件框架,统称为“云”。因此,“分布式计算”也叫作“云计算”,“分布式存储”也叫作“云存储”,“云计算”和“云存储”都是“云”的具体内容。

云=多台计算机+分布式的软件框架

这几年,“云”这个概念实在是太火了。数据上云,算法上云,应用上云,服务也上云,各个企业都争先恐后地采用基于云的技术架构。有了云,就有了能够运用大数据的神秘能力!

那么,企业该如何获得“云”的能力呢?有两种基本方法,一是自己构建“云”,二是租用“云”。

企业自己构建“云”就相当于自己花钱搭建一个机房,买很多台计算机摆上,连上网线,在每台计算机上面都安装并配置好支持大数据应用的软件框架,比如前面提到的Hadoop。

企业租用“云”,就是找一个合格的第三方公司,让这个第三方公司来完成构建“云”的麻烦事儿,并且承包运作具有强大“云”能力的机房。此时,这些需要获得大数据技术能力的企业可以花钱租用这个第三方公司对外提供的“云”服务。如果这个第三方公司把某一固定数量的大数据资源提供给一家企业使用,那么这个“云”就是“私有云”;如果把同一数量的大数据资源开放共享给多家企业使用,各家企业按需付费,那么这个“云”就是“公有云”。

一般自己建“云”的企业都是那些财大气粗的大企业。毕竟,购买一堆普通计算机的成本也不是一个“小数目”。这些企业还有一个特点,就是特别重视数据安全和数据价值,不希望自己的数据被“偷”,或者自己的数据被别人莫名其妙地用了,从而陷入“信息安全”方面的坑里。例如银行机构,基本上都会自己盖园区、造机房。

什么是大数据:数据再多也不怕,质量始终在线

图片来自网络

当然,对于业务不是太敏感的企业,自己“烧钱”建设“云”未免过于奢侈了,所以通常优先考虑“租用云”的解决方案,并且大多租用“公有云”。咱买不起房,还租不起房吗?租房不用花钱买地、不用装修、不用修缮,直接住就行了,省钱又省心。机房有人看着,网络和程序有人维护,用多少计算机的计算和存储资源,就花多少钱,还不浪费!国外主要的“公有云”有亚马逊的AWS和微软的Azure,而国内比较主流的“公有云”既包括名字“响亮霸气”的阿里云、华为云,也有名字十分接地气的网易云和百度云。

由于可以对大数据技术能力进行租用,在涉及和大数据相关的“数字化”业务时,再也没有经济成本方面的门槛,任何中小企业都可以对大数据技术“跃跃欲试”了。

当然,除了“私有云”和“公有云”,企业对大数据技术还有一种更加省力的玩法,就是直接从具备大数据技术能力的第三方公司获取数据分析服务,而不必关心这些服务背后是怎么工作的。能够直接提供数据分析服务的第三方公司也叫作行业SaaS厂商。

什么是大数据:数据再多也不怕,质量始终在线

图片来源于网络

“云”只提供底层的大数据处理功能,而SaaS则是在“云”的基础之上,结合“中台”的业务数据和具体的计算分析引擎,提供的综合数据服务,可以对特定的领域和特定的行业提供企业级的数据支持。

我们都知道阿里巴巴是一家非常厉害的企业,其经营的淘宝平台上有成千上万个小商户在卖东西,阿里巴巴把这些商户的交易信息都收集起来,放在自己建设的“中台”上,又搭建了很多数据分析算法来分析“中台”上的数据。特定的算法加上这些算法处理的数据结果,就形成了有价值的SaaS数据服务。这就像一台提前把焦距和色彩都调好了的傻瓜相机一样,拍照的时候需要什么风景效果,直接“获取”就可以了。

不同的数据服务可以用来分析不同的业务知识,给其他中小企业进行业务赋能。例如,有的算法可以预测用户买哪种商品,有的算法可以评估产品的质量,有的算法可以进行商品比价和排序。如果一家企业想进行产品设计、客户管理或营销活动,则可以在自己设计的App或小程序中,调用这些数据服务,对正在开展的业务进行数字化升级。

“中台”就像航空母舰似的,它拥有足够多的数据“燃料”,企业如果挂靠在“中台”上,这些“燃料”就会成为企业业务增长的助推剂。

什么是大数据:数据再多也不怕,质量始终在线

图片来自网络

关于“中台”,后面的章节中会详细讨论,毕竟“中台”是在企业数字化过程中扮演的一个非常重要的角色,是衔接从业务到数据,再从数据到业务的重要“枢纽”。

该图是为企业提供云服务的大型数据中心一角,需要专门的工程技术人员来对这些服务器进行日常的监控和维护。将大数据基础能力外包给专业的第三方公司来做,是当前比较流行的做法。

继续阅读