我接触过很多客户,去之前得到的需求都是:希望了解Hadoop或者内存数据库。但是去了之后都发觉,他们其实不知道Hadoop或者内存数据库可以帮他们达到哪些目的,希望我们可以告诉他们。但很坦率的说,这个不是我们这些搞IT基础架构的人该做的事情。我们已经“超前”的储备好了这类技术手段了,怎么用这类技术真的是应该懂业务的人去想,而不是我们了。
所以,在这里我想呼吁IT行业里,处在金字塔顶的专业咨询师、数据分析人员、数据科学家们,现在是时候走出原先的框架看看新技术新架构下有些新商机了。不要总是桎梏于传统的思路和方法,让新的大数据思想来做“削足适履”的事情了。真心希望你们可以利用专业知识和行业经验,帮着那些”求大数据若渴“的行业用户们好好定位下对他们真正有价值的新应用场景,设计更多的有意义的分布式算法和机器学习模型,真正帮助他们解决大数据应用之惑。
困惑之二:不同的大数据方案之间有什么不一样,我该用哪些?
首先,客户必须把前一个问题想清楚,明确自己要做什么事,实现什么功能。然后,我们就可以把这个需求分解成小的需求:
- 要处理几种数据类型?
- 要处理多大的数据量?
- 要处理的多快?
这三个要求有比较明确答案之后。这张图表以数据处理的时效性和数据量为两个维度,把传统的RDBMS和Hadoop、MPP、内存数据库等各类大数据方案做分类。这个分类针对的还是各种类别里比较典型的方案。现在实际情况,特别是MPP和Hadoop,各个发行版的特色功能都不尽相同,所以处理的场景也会各有不同方向的延伸。
大数据时代,一种架构包打天下的局面是不大可能出现的。未来的企业大数据整体方案,肯定是多种数据库方案结构并存的。企业数据在各个不同方案架构之间可以联合互通,根据分析场景的不同分析工具运作在不同的数据库架构上。

图片来自 Nomura Research Institute
既然未来企业里面肯定会有多种数据源,多种数据库结构,那么是否可以建立一个中间的数据服务层,把应用和底层数据库架构隔离开呢?就好像你赶着上班,没时间买菜,于是就写个菜单交给钟点工,给他钱让他帮你买。你不用管她到底会去路边菜市场买还是超市买。这个想法看起来很美好,但我觉得在企业里实行的难度比较大,不是很现实。为什么这么说?这里只是说说我的一些看法。
看看对大数据应用最纯熟的互联网,他们的方式就是:简洁,直接。什么样的数据,用哪种方式存储效率最高,处理起来最快就用哪种方式。能直接在文件系统上做的就不放到数据库里。数据的分析也是如此,结构层次越少越好,数据访问越直接越好,能用编程语言直接解决的问题就坚决不采用数据仓库用SQL。该用SQL解决的问题也不去为了统一接口而再去跑一遍Java或Python。一切以高效直接为前提,充分贯彻“把支部建到连队里”的核心思想,发挥小快灵的优势。以Hadoop举例,很多互联网或者发行版都开始尝试放弃Map/Reduce直接对HDFS进行操作处理,其思想就是想更直接,更简洁。所以,前面所述的“建立一个数据服务层”还是传统企业的旧思路老方法,希望通过建立中间层减少开发移植难度,其实结果就是发挥不出大数据架构本身的性能和规模优势,限制住了技术架构本身的发展空间。之所以提这个话题,主要是想引出下一个行业对于大数据的困惑。
困惑之三:我们应该怎样从传统的关系型数据架构向大数据架构迁移。
这个问题,我觉得没有人可以给出完美的答案,因为现在的一些新企业,比如互联网,面对的就是混合数据大数据的环境,不存在迁移的问题。而且他们要处理的数据类型,应用场景也和传统企业不一样,只有一定的借鉴意义,完全复制是不明智的。传统的大型企业,现在国外大多数的企业自己在摸着石头过河,国内企业刚开个头。其实大家都在摸索过程中,前方基本没有指路的明灯,只有一点点星星之火可供参考。
谁能帮你呢?我觉得还是那些搞企业咨询的人士。至少他们可以看到很多国外类似企业的成功或者失败案例。但前提是他们真正站在中立的立场帮你从新的应用场景着手分析规划。
关于这个问题,我也分享个人的观点,仅供参考。
第一步:先把大数据存起来,用起来。现在看过很多传统企业请各类咨询人士做的大数据战略规划,我没资格评价这些规划的可行性和问题所在,但我觉得对于接受新生事物,首先要做的就是先尝个鲜,而不是知道它的未来会怎样。如果小试牛刀的结果不好,那么调整重头再来的成本也比较小。所以我的建议,首先找个方案,把你准备分析处理的数据用新的办法存起来,然后再试着在上面做些简单的查询,比较之类的应用,看看效果好不好,领导买不买单。如果效果好了,那么再试着在这上面实现新的业务应用场景,解决一部分业务人员的某些实际需求;效果好的话再试着做第二个应用,第三个分析。。。。。。慢慢的让越来越多人看到这些新数据新应用的价值。
第二步:考虑新的大数据平台和原有数据平台的互通,联合问题。这里有两个方面:
- 把旧的应用分析运行在新的大数据平台上。把数据从原先的RDBMS数据源抽取到新的大数据平台上,利用新的大数据分析方法实现传统的业务分析逻辑。这么做有可能会分析更多的数据产生更好的分析结果,也有可能会发现效率还不如原先的RDBMS方案。
- 把大数据平台上的数据抽取到旧有数据仓库中分析展现。这个方向主要还是为了保证旧有用户的SQL使用习惯,区别是抽入旧数据仓库的不是外部表,而是经过清洗整理的有价值的数据。
通过这两个方面的尝试,基本就可以把哪些应用可以迁移,哪些不可以迁移搞清楚了。为下一步打下扎实的基础。
第三步:数据源整合,分析应用场景定制。 有了前两步的基础,基本你就可以很清楚你能够处理哪些类型的数据,以及他们会为你带来哪些业务价值了。接下来就可以发动“总攻”了。
总攻第一步,就是整合数据源,把将会涉及到的各类型数据分类,用各自最合适的方法储存起来整理好。然后,把应用、展现工具根据所涉及数据源的不同,应用场景的差异,和不同的数据存储架构做耦合,定制化应用场景,使每个应用都可以充分利用到底层架构的性能和扩展能力。对于需要跨数据源的应用场景,选定中间处理层方案,保证中间处理层方案的定制化,不会因其存在影响底层架构的性能和上层分析应用的实现。
这样的步骤,没办法一下子让企业领导看到“未来10年以后的IT架构宏伟蓝图”,但可操作性比较强,而且一步不对修改调整的机会也比较大。这种思路属于互联网和新兴行业那种“小步快跑”的思维模式,先走几步看看,如果不行也有了宝贵的经验教训,花的代价也不算很大。
大致上来说,我所能感受到的,行业用户对于大数据的困惑就是以上所说的三个方面。之所以会有这些困惑,归根结底还是因为大数据的处理方式和以前的传统方式太不同了。
以Hadoop为代表的大数据处理体系,其实是采取了一种粗放的方式处理海量的数据,机器学习的原理很多时候也是依靠大量的样本而不是精确的逻辑。举个例子,我们常说的“清明时节雨纷纷”,根本没有逻辑和科学公式去推导出这个结论。之所以会有这个结论,是无数劳动人民通过多年观察,从“海量的”清明气候样本中发现,每到这几天总是下雨比较多。而为什么清明这几天会下雨,却没有人去仔细分析。大数据的处理方式类似,它依托前人留下的经验,历史数据,归纳总结,而不是去依赖一些复杂的公式演算。其所依仗的,就是“样本”多,而且能够通过技术手段快速高效的分析整理海量的样本。而之前因为没办法处理这么多样本,只能靠先进高精尖的数学模型。所以,想用好大数据,一是要调整思路,尽量用简单的方式去处理大量的数据;二是在某些情况下可能需要考虑通过多采样等方式把数据“变大”。
所以,企业要想用好大数据,在沙海里淘金,就应该大胆的抛弃掉原有的一套成熟的架构和方案。从零开始,真正的去思考这么多数据,这些个新方法对于企业能够有什么意义,产生什么价值。然后,就是把想法一个个在Hadoop,MPP等等架构上实现,落地,一旦发觉有问题了就马上调整,从头再来。而不是先像以前那样看看别的人都怎么做,然后做几十页“看上去很美“的PPT,画一个”未来十年“的美丽的大饼了事。要多向互联网和新兴行业学习,改变思路,挂钩业务,活在当下,小步快跑。
(文/吴之晶 英特尔(中国)有限公司售前和合作伙伴支持部企业解决方案业务拓展经理 责编/包研)