首页 > 大数据 > 数据分析 > 强琦:大数据探索-阿里巴巴数据交换平台
【CSDN现场报道】中国IT界技术盛会——Hadoop与大数据技术大会(Hadoop&BigData Technology Conference 2012,HBTC 2012)于2012年11月30日-12月1日在北京新云南皇冠假日酒店隆重召开。本次大会以“大数据共享与开放技术”为主题,聚焦于Hadoop与大数据,力邀数十位国内外Hadoop及大数据技术应用的产学界人士和实践企业,探讨大数据技术生态系统的现状和发展趋势,并围绕Hadoop与大数据热点技术和应用实践进行深入解析。

图:阿里巴巴集团数据交换平台资深专家 强琦

图:阿里巴巴的数据交换平台架构
大家下午好!阿里巴巴数据交换平台也是刚刚起步,也是抱着向大家学习的态度来进行这次交流。大家用的技术大同小异,还好的是,今天讲的关键技术,跟大家还不太一样,可以补充一下。
大数据和云计算,它们之间的一个关系,比如说相同点和它们之间的一个相辅相成的作用,这个我们不必再重复了,本身就是一个好机会,这两个到底是什么区别?毕竟这两个词,大家分别出现了,前面这三个,已经提到了很多,其实就不用再说了,其中关于这块,可能要补充一点,之前我们所说的大数据,是有压力的,但实际上对于云计算,之前的演讲者说过,有很多数据,但是它的价值质量是要评估的,因为有很不好的数据,脏数据会有很多系统弄的很狼狈,领域不多说了。
大数据生态系统里面,我想提到几点,第一点就是使用大数据产品的人,用大数据平台开发的力量,最后使用的,受众玩的这个,另外一个就是开发者,在大数据平台上进行开发的人,还有一类,比如说自己定位的,定位的一个大数据的一个平台,本身不参与,我们本身不去玩这个数据本身,金融衍生产品是由开发者做的。我们个人认为,生态系统可能存在多个角色,后两个,从目前来看,我们主要定位为开发平台,因为阿里巴巴本身沉淀着大量的具有高价值的数据,我们同时可以打开它。大数据的场景,技术我后面会着重分析一下。
这里面我提到了一个,要去跟大家分享一下,大数据跟云计算之间的利益关系,主要是区别,云计算来说,个人认为可以有不同的观点,本身是以计算为中心,怎么理解这个事情,更像是一个,函数是编程,重点是一个方程,计算能力,按照方向,云计算是一个纵向,你提供一个计算能力,这个输入丢进去,对于用户来说,这更像是一个方程,强调的是计算能力,数据只是他的操作对象云计算是具有一些工具性的,大数据不一样,完全是以中心式数据,数据的生命周期是数据本身,跟计算没有关系,如果按照刚才所说的轴来说是横向关系,数据的纬度,把所有的东西打红了,是一个横向的关系。数据跟那个返过来,是数据作用于计算,数据本身具备可运营的,数据是可以分享的,可加,管理数据是大数据的重头,以及刚才大家提到的一些数据管理,数据质量,云计算里面的分布式计算的技术和处理技术是里面的其中一小部分,看到的大数据,对这块的重视是要逐步的加强,很简单,那边有同事在那边分析了,Facebook有很大的集群,要扩展,谁又做过说,这些里面到底有多少数据,有多少任务是可以用的,拿到的订单数据,去计算了,那个部门的人也计算出来一个,但是没有人知道,也没有人关心,为什么?我作为使用者来说,用这个跟我没有关系,能不能用,对于他来说没有驱动力 ,真正一个那么大的集群里面,有多少数据是可以用的,有多少交易是可以不用跑的,这些之间的关系到底是什么?有没有血缘的关系?怎么分享?谁来做?大家没有关心这个问题,但是我们从大数据,应该从一开始就应该关心这个问题,他就是以数据为纬度看待这个,中间结果以及输出结果。
大数据场景下,有这几类典型的场景,第一类叫数据服务,他的实效性是几秒的,什么意思呢?很简单,或者类似于TV这种东西,你需要返回这种东西,这种场景对于平台的要求,吞吐量是非常非常高的,这个很容易理解,成本要求非常低,为什么?因为你要承载的东西多,投入产出比较高,计算复杂度,不应该很大,PV不需要计算,比如你在附着一些计算,应该是比较简单的,那这些,其实对于CPU的压力还好,它的计算比较简单,其实是对数据展示的一个服务,典型的这类场景,是各位PV们,都是这类场景下做的。另外一类场景是业务,其实很简单,就是OUTP,对平台的吞吐,要求也是非常非常高的,成本相对要求是比较高的,你要做到毫秒级别,你要有所准备,SSD。主要是用来支撑业务,比如说淘宝,因为里有业务,数据库是必须按照他的方式切分的,业务他是表述成多个表,一定要有事物,这类场景就是一个很典型的TP。
再有一类,这一类,可能大家见到的不多,数据运用,实效应用跟上面一样,非常高,对平台的要求,是相对比较的,也有中等的,大家如果用过淘宝魔方的,大家可以看一下。这个是什么东西?这个参数是不可举的,有一类,背后调用的是数据应用,一类服务,我们内部有一个系统,这类系统区别于以往的传统LTP,有别于传统的LTP,这边有专门有一章折中这些的,要求很大,服务型是以EDhos的模式。
我后面主要介绍这一块。我先跳过第四种,直接到第五种,为什么叫深度分析?需要对数据进行深入的挖掘和分析,这个你少不了,他对实效性的要求是小时和天,对吞吐要求是非常高的,成本要求是非常低的,而且要做到超卖,三千台要卖到一万台,怎么卖?错峰,对用户来说需求是这样的,实际上做到计算是可以超卖的。包括这些,特定的场景就是数据深度的挖掘,后两种作为决策分析用的,比如说大家可以想到SaaS,上面所有的系统,给用户提供一站式的,一个路口的开发平台。
再返过来看第四种,数据分析,其实这两面叫做浅层分析,轻度于刚才所说的深度分析和第三种的数据应用。我个人认为,这是他们的应用场景,这些应用,他的实效性,要求在这个级别,后面我们会详细地提到。
后面会着重提到这个数据分析,他其实对数据的平台的吞吐的要求是相对比较小的,后面会解释到为什么?成本要求是相对于这两者间的,现在典型的数据场景,基本上会框在框框里面去,为什么要整理出这个场景来?你的各种技术,应用在不同的场景下,一定会有所差别,没有一套系统,可以把所有的产品吃透的,这个我个人认为是不可能的。
对刚才的场景是有一个补充的,包括数据服务这个场景下,其实也有不同的场景,都可以细分的,比如说如何写的比例?现在这个写比较多,读比较少,对写专门做了很多的优化,我相信,其实不同的场景下,都有不同的系统会诞生出来。对于业务来说,我已经说过的,就不再去重复了。
数据应用刚才提到的场景当中,应该是全内存,对成本相对比较敏感,数据结构应该是相对比较简单的,这边刚才已经提到了,这里面简单的介绍一下,跟大家分享一下大数据这里面用到的技术,多多少少,前面的嘉宾已经提到了,首先我要解决数据运输的问题,传统的业务都会写到DB里面,如果从DB里面时时把数据给搞出来,这里面我们会有一个相应的技术,其实之前,早上有一个,已经提到了,会伪装成这个,一有操作,会流出来,流到我们系统,包括对业务系统的日志,网页上的买点,不同计算系统当中的数量的同步。还有各式各样的队列系统。
接下来就是感觉比较熟悉的存储系统,有大空间的存储,快存储,小文件存储,K/V的存储,播放器背后的存储的技术。要支持事物的存储,可以有本地计算的一些存储系统,还有一些统一的结果层,对这么多系统觉得很苦恼,有一个统一的接口层,这个是最好的,计算来说,分布式计算的角度来说,有BSP模型,第一天有一个老师,BSP模型被狠批了一下,我觉得很好。MPI,OLTP、OLAP,ADHOC,业务用这么多系统,用不了,要有统一的结构层,把这些东西全部做到。第四块是分析可视化和数据可视化。
大体上分这么多,开发平台,我们希望提供一个统一的开发平台,只有一个入口,所有的人都在这上面做开发,所有的系统,都会支撑到统一的开发平台,这里面有调度,把一个数据做好了,让一个流计算,服务的在线系统热加在数据,肯定会通知的,另外一个就是元数据的管理,新的表以后,我们的数据开发又在统一的开发平台上,用户怎么知道多了一张新的表?打电话问业务方?不会的,这里面有很简单的回调,原数据都会统一开发到开发平台里面,对接开发平台的支撑系统,都会订阅开发平台的数据管理的消息,整个体系当中,任何数据的结构方有原数据的变化,都会反映在开发平台里面去,也就是说我们未来的数据开发者,你可能用的是很多业务线的数据,你不用关心业务线的人在哪里,不需要跟他们打交道。包括数据的建模,怎么建立模型,整个评估的过程,开发的过程,就会在这个平台上,整个提供的就是一个IDE,另外一个就是这个,市场,分成几种,一个是应用市场,大家可以在Facebook看到,微博上也有,我们希望在我们的ATP,是数据应用,开发数据应用,给别人去用,还有是数据市场,可以直接来用这个数据,另外可以提供市场机制。关于定价的问题,数据的定价比原来的定价都要复杂。
大数据最核心的,被大家忽视的就是数据的管理,接入的这么多数据,又有那么多的数据的使用者,原数据有变化,表的结构变化,表的关系有变化,逻辑关系的变化,影响到后面就是成片的影响,如何在第一时间预警数据的变化,对这个数据质量的监控,原数据的管理,逻辑顽烈性的监测,统一ODS层,包括数据的生命周期管理,内容我觉得有很多,数据管理的内容,是非常非常庞杂的,传统数据仓库里面也都有,另外一块很重要的就是开放,未来这块是面向开放,并不是想封闭的做,现在还远远到达不了要开放的程度,既然要做开放,我们第一天要准备什么事情?安全,安全里面有授权,有审计,计量,这块是非常复杂的,安全,计量很复杂,比如搜索引擎,数据从业务方导入,导入那怎么算钱,提供检索都要算钱,实际上这块是重复计费的,如果每个环节都要计费的,你要统一计费,要成本还是按照市场机制进价呢?还有就是监控。这个文章里面列了大量的技术,包括数字水印的技术,提的非常非常多,大家耐心把这个东西看完就很不错了,这是一个网址,这个文章写的相当的层面,有的地方写的有点过了。
下面我就会介绍一下阿里巴巴数据交换平台,以及关键技术实现。从现在看来,我们中国互联网这几大,不仅是中国,几大有名的互联网公司来说,从这几个纬度来看,数据的规模,其实我们现在也不小,谷歌和Facebook会更大,整个数据比较大,从结构化层面来说,阿里巴巴是做的比较好的,本身就是做生意的,数据的关联性,可以说Facebook是有很大的商业价值,所谓的个性化,最终是会落到交易上面的,全部的动作都会落在整个平台上的,整个阿里巴巴应该拥有的数据,一来数据量比较大,商业价值确实是,我们确实没有想明白,这个数据如何发挥巨大的价值,所以我们要在一个平台,开放出,让大家挖掘出数据的价值。
为什么是数据交换平台?强调交换两个字,这里面看两个悲剧,一个悲剧是只有平台没有数据,在中国的场景下,很难让别人说,OK,我提供一个,所谓的云数据仓库,别人把数据都丢进我的平台里面来,我们国家的贷款还是非常非常贵,很难想象,用户把一个GB级别的数据很难丢掉这个系统,还让出一个结果来,我觉得非常困难,那种商用模式,只有数据,没有平台,这个也是悲剧,对于我们来说,要有数据,必须也要有平台,必须要拿自己的数据,给大家用,大家玩的爽了,把数据也会交换到我们的平台上面,我们的数据相当于做一个引子,必须要有一个高价格的数据跟大家交换一些其他的散落在蓝海中间的数据,其实我们未来的一个定位和策略,大概是这样子的。我们会使得数据做加法或者乘法,这个数据单独使用,发挥的价值不大,但是把数据融合在一起,产生出巨大的价值。
数据作为一个资产的数据银行,我刚刚也提到,谁去Informatica数据,谁去做EPT玩的,金融无非就是钱生钱,数据产生更大的价值,谁去做OPP的开发者,相信有更多的人,开放出去就会有更多人玩这个东西,他们充当金融的作用,使得数据的作用倍增,我们作为一个平台,开发出自己的客户,生态体系的一个角色,是有一定关系的,有很多角色。最主要的是数据作为一个重要的资产,未来是像一个银行一样,银行对钱一样的玩这个数据,钱跟数据还不太一样,钱是可以做加减法,数据拷贝一份还可以再拷贝一份。这里是有一些不同点。
另外,我一直在强调的,开放的概念,未来我们是一定会走开放这条路子的。这是我们三个的重要的一个目标,我们不会去,为了做一个平台而做一个平台,我们一定会落地到具体的业务上面,也就是说我们必须要打通和整合整个阿里巴巴集团的所有的数据,提供全网的关于人的理解,个性化的一个服务,建立一个统一的大数据交换平台,这是三个重要的,到明年的三个重要的目标。
我们会去支撑到这几类,应用大的业务场景,信用体系,金融体系,社会化物流和管理SaaS。一些这种软件及服务的,企业内部的管理系统,向上支撑到这几家子公司。这是近期整个的架构,其实跟之前说的差不多,最上面,刚才说到的是开发者平台,跟开发者交互的,大家看到的未来,只有这一个,大家就看到这一个,底下的东西都是透明的,最左边的竖的是一个平台支撑,贯穿所有的子系统,刚才我已经提到了,监护系统,安全,安全包括了授权与健全,买了一个帐号,交给你的员工去用,你要授权给他,这也是可以的,这两个体系,这里面所有的子系统,都要接入计量体系,计量体系于我们有巨大未知的地方,怎么去计量?这个还是蛮复杂的。
监控和审计系统。这些无非就是为了保证我们客户的数据安全,我们现在自己都没法,我们现在完全以这个标准来走的,看看那里面的数据是看不到的,这里面包括数字水印技术,根本不知道数据的基本含义,也看不到这个数据,这肯定是要保证的。
最右边的这块是基础数据体系,上面还没有介绍,上面就是一个应用开发,决策分析,这是两个场景,应用开发做一个APP,还有一个决策分析,大部分人的数据仓库是用来支持决策的,是要反复试这个,另外两块是说的市场,刚才也提到了,数据地图也涉及到一点,原数据,别人在用这个开发平台,怎么知道你这里面有哪些表?数据、加工?哪些运算过的,别人已经处理过了,处理出来一个新的东西,怎么去看?这些都在数据地图里面,最右边是统一的基础性数据体系,这里面有数据中间,中间层,向上支持这个数据地图的,对于我们现在接的服务来说,刚才我提到的调度层,这里面有一个工作流,有资源的调度,有资源管理,这块跟这块不一样的,这个是真正做到数据质量和数据的生命周期和原数据的决策管理的一个决策,数据同步,刚才提到的有批量同步,区别的就是我们这里实施同步不会只进到当中,会进到我们的实施系统地区。
下面简单介绍一下我们这里面的一些关键技术,ODPS,今天重点在实时这块,我先跳过去,ODS也是一个重点,刚刚把那张图拎出来,关于时时性有一个重点,业务系统,OLTP,数据业务和数据前层分析。这里面要澄清几个概念,一类叫ADHOC,计算不可枚举,计算在query时发生。在线实时,这里的实时侧重的数据的实时计算。不是数据的实时计算。
还有stream Computing,计算可枚举,计算在数据发生变化时发生。离线实时,这里的实时侧重于实时数据的处理。Continuous,计算可加,这也是去年在大会上最后提到的一个概念,大数据集的在线复杂实时计算,整体。
刚才其实也提到了,数据服务其实是存储,但是轻计算,业务系统是支持增删改查和技术,这个阶段跟那个阶段满足什么样的约束。我们在说的数据应用,刚刚其实说了,对它的要求,决定他必须要用SQL,这些都是只读产品,因为你想,又要求低成本计算,又要求实时性,必须要借助磁盘的顺序,要做的磁盘的顺序IO,就不能有OLTP的引擎,这种都不能把磁盘的整个IO发挥到极限,还有就是复杂计算。这是下面这块,复杂计算,从整体来说,分为SQL解析,成本计化器。
我引入了一个深入分析,不具体说了。深度分析以吞吐见长,有一个有效的容错机制,使其可以得以线性扩展,错峰超卖成为可能性,以规模取胜,数据的传递以跨进程方式成立。浅度分析,数据只度,非OLTP,所以可对数据结构做紧凑的设计,以对特定的查询优化。吞吐要求不高,这类应用面向的是运营,时效性要求在秒到分钟级,列存储,数据量巨大,要求低成本存储方案,非原始数据ODS。一般为加工过的宽表。包括这个数据我可以做到非常紧凑的设计,因为我预先知道了他的大小,每类数据在哪里,可以对特定做优化,吞吐要求不高,我们在支撑量的应用,一天也就是几十个,做双11,了不起几百个。吞吐要求不高,这就是为什么要求他的成本要非常低,一天要跑几十次,几百次,就给他整这个会置疑。这是我们自己开发的数据浅能分析的框架的平台,可以有一个指标,这个任务所涉及到的侯选数据集大小和你全部的数据全集的比例,很简单,如果这个比例接近于一,就用这个做,所以肯定是以顺序IO的吞吐支撑,别的没有渠道,如果这个比例相对比较小,大家可以想想,我后面所说的数据集,占全集很少,那就一定借助全力。这就是一些数字。
所以,知识很多了,这些索引都可以进行搜索,包括压缩的算法,架构也都差不多,基本上结果,管运算的,会查一个原信息表,做一个负载力量的,再去做一个迭代计算。上面的客户端是直接可以连这个了。这是我们的一个缓存策略,跟我们的存储引擎有点像,我们引入了不同的一个区域,针对不同的这种数据。
我们有一些业务特点,决定了ABC三个标,要么一起上线,要么都不要上线。启动成功上线了,B失败了,会出现不一致的情况,有这种业务,要求几张表,要么同时上线,要么同时下线,这给我们的离线调动带来一些麻烦,指定任何一个分区的大小,可以去指定。
我们把存储引擎的性能,成本,要加强了,价格上,成本和计算器剥离出来,还有这种支持类似于这样子的,或者劣存储引擎列进去。
云计算看起来很好做,但是实际上很困难,有几个点很可控,数据到达的实际不可控,相关数据的顺序,在实际业务中,这个就有可能不会出现,就有可能违反,数据有残缺,造成了整个云计算非常复杂。
这次淘宝双11,那天有一百多亿的数据,流交应,这是云计算平台的架构,未来这块不用管集群,也类似一个云计算,会找到一个翻译器,会根据一个中间层,这个会转化成Sdom,我们本身是一个安全,这两块,是要做授权和流浪的监控的,本身自己是可以做到一个数据的任务自动牵引。因为这里面,如果有状态的节点,必须要支持这个,否则数据会丢掉。
这要创建一个流,原来做过数据仓库,这里面会引入一个windows概念,两个层面,一个是时间,一个是数量,两秒钟有限的操作。
有一个过程可以指定,还有一个聚合,但是我们跟批量系统不太一样的,不同的会合并,不同的会翻译成这个东西,由翻译器做这些,引擎都可以放进去,我们有很多的ETL的组件。
我们怎么做到持续,时时数据的一个实时处理,这个场景必须做到紧凑的数据,才可以解这个问题。实际上我跟大家简单提一下,并不做这个数据,你做这个就要随时准备着增该,把时时的东西,从右边到小型当中去,当我们右边的服务上去以后,积攒到一定量的时候,会处罚一个调度,会把右边,已经在右边服务的那些东西,会执行一个离线的,原来的数据,标成更紧的数据集,用流动的方法到左边去,总体上达到整个时时的数据计算。这里面有更重要的概念,集群都不够用了,有些数据,第二天服务是没有办法提供的,通过这样的方法,可以做的。对极限的要求降低了,压力也会降很多。
这两天看到消息,跟一个开放体系,怎么去整合,怎么去交互的问题。我们现在已经有的一些自己内部的APP,完全以第三方的形式要求开发的,个性化和金融的。
更多精彩内容,请关注新浪微博:@CSDN云计算,图文直播专题 Hadoop与大数据技术大会HBTC 2012
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24173701/viewspace-1118432/ ,如需转载,请注明出处,否则将追究法律责任。