阿里内部分享:大数据业务平台两年发展历程

      这篇文章来自一个公司内部的分享,是自己所服务的业务中数据平台的发展历程,已经讲了有几个月了,最近打算挑几个点拿出来用文章的形式写出来。是自己进入公司以来参与过或者接触过的数据型项目的情况。基本包含了业务数据分析的整个流程。这篇文章纯文字描述,没有任何图呵呵。所以看我需要耐心。

1、最早的数据分析可能就报表

目前很多数据分析后的结果,展示的形式很多,有各种图形以及报表,最早的应该是简单的几条数据,然后搞个web页面,展示一下数据。早期可能数据量也不大,随便搞个数据库,然后SQL搞一下,数据报表就出来了。但是数据量大起来怎么分析呢?数据分析完了怎么做传输呢?这么大的数据量怎么做到实时呢?分析的结果数据如果不是很大还行,如果分析的结果数据还是很大改怎么办呢?这些问题在这篇文章中都能找到答案,下面各个击破。

2、要做数据分析,首先要有数据

这个标题感觉有点废话,不过要做饭需要食材一样。有些数据时业务积累的,像交易订单的数据,每一笔交易都会有一笔订单,之后再对订单数据作分析。但是有些场景下,数据没法考业务积累,需要依赖于外部,这个时候外部如果有现成的数据最好了,直接join过来,但是有时候是需要自己获取的,例如搞个爬虫爬取网页的数据,有时候单台机器搞爬虫可能还爬不完,这个时候可能就开始考虑单机多线程爬取或者分布式多线程爬取数据,中间涉及到一个步骤,就是在线的业务数据,需要每天晚上导入到离线的系统中,之后才可以进行分析。

3、有了数据,咋分析呢

先将数据量小的情况下,可能一个复杂的SQL就可以搞出来,之后搞个web服务器,页面请求的时候,执行这个SQL,然后展示数据,好了,一个最简单的数据分析,严格意义上讲是统计的分析。这种情况下,分析的数据源小,分析的脚本就是在线执行的SQL,分析的结果不用传输,结果的展示就在页面上,整个流程一条龙。

4、数据量大了,无法在线分析了,咋办呢

这个时候,数据量已经大的无法用在线执行SQL的形式进行统计分析了。这个时候顺应时代的东西产生了(当然还有其他的,我就知道这个呵呵),数据离线数据工具hadoop出来了。这个时候,你的数据以文件的形式存在,可能各个属性是逗号分隔的,数据条数有十几个亿。这时候你可能需要构建一个hadoop集群,然后把自己的文件导入到集群上面去,上了集群之后,文件就是HDFS的格式了,然后如果要做统计分析,需要写mapreduce程序,所谓的mapreduce程序,就是实现map和reduce的接口,按照自己的业务逻辑写分析流程,之后把程序打成jar包上传到集群,之后开始执行。分析后的结果还是文件的形式产生。

5、分析个数据还要写java代码是不是效率低了点

这个确实是,mapreduce的程序,本身的可测性没有执行一个简单的单元测试来的爽,所以效率确实不高。这个时候,hive出现了,hive是一个数据仓库分析的语言,语法类似于数据库的SQL,但是有几个地方是不同的。有了hive之后,数据分析就好之前写SQL一样了,按照逻辑编写hive SQL,然后控制台执行。可能最大的感觉是,数据库的sql很快就能有结果,但是hive的,即使很小的一个数据分析,也需要几分钟时间。构建hive,需要在hadoop的集群上,原理很简单,就是把文件构建成表的形式(有一个数据库或者内存数据库维护表的schema信息),之后提交写好的hive sql的时候,hadoop集群里面的程序把hive脚本转换成对应的mapreduce程序执行。这个时候,做离线的数据分析简单写脚本就行了,不用再搞java代码,然后上传执行了。

6、数据产生的结果,怎么搞到线上提供服务的数据库中呢

这个时候分析的结果有了,可能是一个很宽很长的excel表格,需要导入到线上的数据库中,可能你想到了,如果我的数据库是mysql,我直接执行load 命令就搞进去了,哪有那么麻烦。但是数据源可能有多了,mysql/oracle/hbase/hdfs 按照笛卡尔积的形式,这样搞要搞死程序员了。这个时候datax(已经开源)出现了,能够实现异构数据源的导入和导出,采用插件的形式设计,能够支持未来的数据源。如果需要导数据,配置一下datax的xml文件或者在web页面上点击下就可以实现了。

7、离线分析有时间差,实时的话怎么搞呢

要构建实时的分析系统,其实在结果数据出来之前,架构和离线是截然不同的。数据时流动的,如果在大并发海量数据流动过程中,进行自己的业务分析呢?这里其实说简单也简单,说复杂也复杂。目前我接触过的,方案是这样的,业务数据在写入数据库的时候,这里的数据库mysql,在数据库的机器上安装一个程序,类似JMS的系统,用于监听binlog的变更,收到日志信息,将日志信息转换为具体的数据,然后以消息的形式发送出来。这个时候实现了解耦,这样的处理并不影响正常的业务流程。这个时候需要有个Storm集群,storm集群干啥事情呢?就一件事情,分析数据,这个集群来接收刚才提到的JMS系统发送出来的消息,然后按照指定的规则进行逻辑合并等计算,把计算的结果保存在数据库中,这样的话,流动的数据就可以过一遍筛子了。

8、分析的结果数据特别大,在线请求这些结果数据数据扛不住了,咋搞

一般的结果数据,数据量没有那么大,也就几十万的样子,这样的数据级别,对于mysql这样的数据库没有任何压力,但是这个数据量如果增加到千万或者亿级别,同时有复杂的SQL查询,这个时候mysql肯定就扛不住了。这个时候,可能需要构建索引(例如通过lucene来对于要检索的字段添加索引),或者用分布式的内存服务器来完成查询。总之,两套思路,一个是用文件索引的形式,说白来就是空间换时间,另外一种是用内存,就是用更快的存储来抗请求。

9、在线的数据库,除了mysql、oracle之外,还有其他选择不

其实目前大家的思维定势,往往第一个选择就是oracle或者mysql,其实完全可以根据场景来进行选择,mysql和oracle是传统的关系型数据库,目前nosql类的数据库也很多,例如HBase就是其中一个重要的代表。如果数据离散分布比较强,且根据特定的key来查询,这个时候HBase其实是一个不错的选择。

10、空间的数据怎么分析

上面的分析大都是统计维度的,其实最简单的描述就是求和或者平均值等,这个时候问题来了,大数据量的空间数据如何分析呢?对于我们电子商务而言,空间数据可能就是海量的收货地址数据了。需要做分析,第一步就是先要把经纬度添加到数据中(如果添加经纬度,这个可以搞http的请求来通过地图服务提供商来或者,或者是根据测绘公司的基础数据来进行文本切割分析),之后空间数据是二维的,但是我们常见的代数是一维的,这个时候一个重要的算法出现了,geohash算法,一种将经纬度数据转换为一个可比较,可排序的字符串的算法。然后,这样就可以再空间距离方面进行分析了,例如远近,例如方圆周边等数据的分析。

11、上面这些仅仅是统计,如果想搞算法或者挖掘之类的,怎么搞呢

上述的分析,大多数是统计分析,这个时候如果想高一点高级的,例如添加一个算法,咋搞呢?其他复杂的算法我没咋接触过。将拿一个我练过手的算法来讲吧。逻辑回归,如果样本数据量不是很大,可以采用weka来做了个回归,获得一个表达式,然后在线上系统中应用这个表达式,这种类似的表达式获取对于实时性要求不是很高,所以公式每天跑一次就行了。如果数据量比较大,单机的weka无法满足需求了,可以将weka的jar包集成在系统中分析,当然也可以通过hadoop中的mahout来进行离线分析,获取这个表达式。

12、我就是想离线分析数据,但是受不了hive或者hadoop的速度,咋搞

其实搞过一段时间hadoop的人肯定有一点不爽,就是离线分析的速度太慢了,可能需要等很久,这个时候spark出现了,他和hadoop类似,不过由于是内存中计算,所以速度快了很多,底层可以介入HDFS的文件系统,具体我没有使用过,但是公司内部一个团队目前已经用spark来进行分析了。

13、这就是搞大数据了?

有了这些工具就是搞大数据了?答案肯定不是,这个仅仅是工具罢了。真正搞大数据的可能在于思维的变化,用数据来思考,用数据来做决定。目前的无线和大数据啥关系?我觉得无线的终端是数据的来源和消费端,中间需要大数据的分析,两者密不可分啊。

至此,我的疑问OK了,这些问题摸索差不多用了两年左右的时间,最终获取的,可能就是大数据分析的解决方案了。

原文发布时间为:2013-11-25


时间: 2024-08-30 12:00:49

阿里内部分享:大数据业务平台两年发展历程的相关文章

阿里云携大数据计算平台MaxCompute欧洲开服

参考消息网6月19日报道 英媒称,阿里巴巴旗下的云计算部门阿里云将于2017年下半年将其"MaxCompute"大数据服务带入欧洲. 据英国科技经济类网站硅谷网6月15日报道,当地时间6月15日,阿里云在巴黎VivaTech国际科技创新大会上宣布大数据计算产品"MaxCompute"将于年内在欧洲市场开服,该技术涵盖处理分析.机器学习等一系列完善的数据智能服务.这也是中国类似技术的首次出海,以满足当地众多企业日益增长的数字化转型需求. 报道称,该平台允许客户存储和处

【先锋】思明软件大数据技术平台打造历程和Impala实战分享

在采访思明数据刘诚忠的过程中,他表示当下大数据领域企业级市场靠技术垄断获取高额利润的玩法已经过时了,技术的成本会不断降低,这是大势所趋,这个市场的巨头会出现在技术很好,但服务更好的公司里.而站在用户的角度,用户们首先关心的是如何让数据发挥价值,然后才是这套解决方案依赖何种技术,是否能快速应用,是否能适应后面可能的扩展,相对技术来说第一点是更难的. 事实上今天的企业客户,特别在大数据技术领域,更需要的是长期的合作伙伴.他们不只需要购买技术密集的产品,还需要和大数据的技术专家一起研究如何让数据发挥出

阿里巴巴大数据计算平台MaxCompute(原名ODPS)全套攻略(持续更新20171122)

  概况介绍 大数据计算服务(MaxCompute,原名ODPS,产品地址:https://www.aliyun.com/product/odps)是一种快速.完全托管的TB/PB级数据仓库解决方案.MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全.本文收录了大量的MaxCompute产品介绍.技术介绍,帮助您快速了解MaxCompute/ODPS. MaxCompute 2.0:阿里巴巴的大数

【ATF】林伟:大数据计算平台的研究与实践

  2016 ATF阿里技术论坛于4月15日在清华大学举办,主旨是阐述阿里对世界创新做出的贡献.阿里巴巴集团技术委员会主席王坚,阿里巴巴集团首席技术官(CTO)张建锋(花名:行癫),阿里巴巴集团首席风险官(CRO)刘振飞(花名:振飞),蚂蚁金服首席技术官(CTO)程立(花名:鲁肃)以及来自阿里巴巴集团各部门多位技术大咖齐聚一堂,与莘莘学子分享阿里的技术梦想.   在下午的云计算与大数据论坛上,阿里云资深专家林伟(花名:伟林)带来了以<大数据计算平台的研究与实践>为主题的深度分享.林伟目前负责阿

阿里云一站式大数据平台&quot;数加&quot;产品发布

文章讲的是阿里云一站式大数据平台"数加"产品发布,阿里云在2016云栖大会上海峰会上宣布开放阿里巴巴十年的大数据能力,发布一站式大数据平台"数加",首批亮相20款产品.据介绍,在输出自身大数据能力的同时,"数加"还向有数据开发能力的团队开放.这些团队可入驻"数加",借助数加上的工具为各行各业提供数据服务. 此次,"数加"平台首批集中发布了20款产品,覆盖数据采集.计算引擎.数据加工.数据分析.机器学习.数据

阿里大数据应用平台

阿里大数据应用平台 刘昌钰  @淘铁燕 2013-11-29 •自我介绍 • 阿里数据平台 • 大数据应用平台 • 挑战与未来 阿里大数据应用平台

双11前、中、后三阶段大数据计算平台全揭秘

以下内容根据在线分享和幻灯片整理而成. 双11备战 双11的成功离不开背后大数据分析,阿里云大数据平台在双11承担了海量数据分析服务,各个部门会在计算平台上对于相关数据进行深入分析从而保障双11成功进行:通过对物流包裹预测,帮助快递公司调配仓储,使得其在双11当天能够分发6.5亿件包裹,做到兵马未动.粮草先行:对花呗授信额度进行评估,将花呗额度按照每个人风险承受额度进行相应的调整:帮助商家精准营销,对访客分群预测,设计个性化店铺首页:对消费者进行智能导购,通过分析其原始购买记录,对其进行精准化营

高可用的大数据计算平台如何持续发布和演进

2016年11月18-20日SDCC 2016中国软件开发者大会,阿里巴巴大数据计算平台首席架构师林伟给我们带来了"高可用的大数据计算平台如何持续发布和演进"的演讲.本文主要谈及大数据系统如何做系统迭代,以及大规模系统因为其大规模没有可能搭建对等的测试环境,需要进行在线测试方面的内容,更有在线测试需要的必要条件等等. 阿里巴巴大数据计算平台需要每天不间断的跑在上万台机器集群上,上面承担阿里核心分析计算任务,有着很高的可靠性和SLA的要求,但是我们同时需要持续不断提高系统的性能,降低成本

DBA观点分享:大数据对传统数据库的影响

文章讲的是DBA观点分享:大数据对传统数据库的影响,大数据趋势在2012年开始变得明显,Hadoop.NoSQL等技术的兴起,令传统数据库稳固的江山开始动摇."以不变应万变"不再是大数据时代应有的策略,老牌数据库厂商在保持传统市场领先的基础上,不断拓展新市场. 近日,ITPUB论坛以<大数据时代下传统数据库的改变有哪些?http://www.itpub.net/thread-1791263-1-1.html>为题发起讨论,话题围绕传统数据库为了应对大数据时代做出何种改变.传