在“2013中关村大数据日”的大数据智慧城市论坛上,云人科技CEO吴朱华带来主题"关于智慧城市的思考-实时大数据处理的机遇与挑战"演讲。他认为大数据在各行业的机遇如下:金融证券(高频交易、量化交易),电信业务(支撑系统、统一营帐、商业智能),能源(电厂电网监控、用电信息采集分析),互联网与电商(用户行为分析、商品模型分析、信用分析),其他行业如智慧城市、物联网。
吴朱华:非常荣幸来到这个论坛,我是上海云人科技有限公司的CEO。因为我们公司这一两年都是专注于大数据实时分析,我这边想分享一下在我们眼中大数据的机遇和挑战,应对大数据的分析,以及一些比较经典的案例。
我的名字叫吴朱华,我2006年、2009年都在中关村软件园,IBM中国研究院做一些云操作系统的开发工作。2009年年底,我从中国IBI中国研究院离职,2010年回到上海。2010年我写一本书叫《云计算核心技术剖析》,我从2011年开始,2012年,2013年到现在,一直在上海组建上海云人科技的团队,非常注重大数据的分析领域,推出了一个产品叫Yun table。
接下来给大家讲一下大数据分析的一些机遇和场景。我们这两年的实践感觉,现在大数据已经在转变,从这两年的大,慢慢的转变为又大又快。所以说实时的处理对很多的行业而言,已经是一个刚需。
我们发现只要这个公司有大数据的资产,他一般非常需要实时的分析。我以智慧城市、物联网、车联网为例。一个城市,大概有十几万的摄像头在城市里面,每秒都会发数据到云端的数据中心里面,每天有TB级别的数据需要处理,并且需要实时的反馈,这个场景需要实时处理的技术。
比如说车联网,我们有一个客户做车联网,他大概一个城市每台电脑上,都要装终端,这个终端每分钟会发一个路况的信息发到云端,要发一亿条数据到云端里面,并且是每分钟进行一些计算,实时的判断路况,给用户最好的行车建议。
比如金融的证券方面,也需要一些分析。比如金融交易电话交易是一个主流的方向,我们为一个证券的机构构建了一个非常大的云平台,有几百亿条数据放在后台里面,可以实时的提供数据的分析,数据的接口,让他们快速的运行。
比如电信,我们这边在移动那边有一个案例。我们在一个省里面,我们把一个省的所有上网的信息,都加载到我们的集权里面,我们的集权可以把一些统计反馈给他们,支撑他们一些业务的支撑系统,还有商业技能,还有统计相关的。
比如能源的分析,主要用于电厂电网的监控,用电信息采集的分析。
比如说互联网的电商他们可以实时的做一些分析,实时的推广广告给用户,他们可以做商品模型的分析,把最好的产品推荐给用户。比如说互联网里面,有一个商品模型,还有信用分析。我有一个朋友是做信用分析的,在十几秒钟之内把这个人的数据进行一个分析,给用户做一个评级,迅速的判断这个用户是不是值得放贷款给他。
只要这个行业有大数据的资产,只要这个公司有大数据的资产,一般都需要大数据分析的力量,提升综合的竞争力。
我谈一下为什么需要大数据实时的分析。第一、实时的决策,量化交易,我可以实时的计算数据,迅速的判断我是买股票还是不买。
第二、提高业务效率。
第三、对于到数据,我们可以自由的尝试一些新的算法,或者是新的策略。这样通过实时的尝试,我们可以快速发现新的观点和机会。
第四、提供业务产出。我发现越来越的行业,开始需要这样的能力。
大数据的挑战是什么呢?什么是大数据的实时分析,就是在几秒,或者1秒内完成亿万级数据的处理和分析。快:10秒以内,100毫秒为佳给出结果。互联网公司,百度他们希望100毫秒给出结果。一些金融机构他们希望微秒给出结果,需要实时的能力,第一点就是快,就是实时的分析。
第二、就是大,我希望我针对的数据量,是10亿每TB的级别,是非常庞大的,远远超过我们之前对于数据的理解。之前我们认为数据超过1000万不算大。我们现在碰到最大的集权,大概是接近万亿条数据这样的级别。
第三、希望可以做各种各样的分析操作。最简单的是查询,也可以是逻辑复杂一些的算法和数据分析。这是大数据最重要的三点标准。第一是快,最起码是10秒,有一些行业是微秒。第二个是大,我针对数据量是10亿以上、百亿TB的级别。第三、是分析操作多样。基本上是这三点,对于有一些行业可能有一些并发,我们曾经为证券公司做了大数据的平台,说你超过100毫秒以内这是必须的。所以要实现大数据的实时分析,挑战是非常巨大的。
有哪些技术可以选型?第一个是hadoop,hadoop本身是谷歌研发出来的,它是在大数据方面的算法,他是TB最起码的,在大方面没有问题。并且操作多样化,因为他上线的工具有很多的算法都是非常不错的。但是它的快比较尴尬,他需要一分钟以内才可以,他很多要做一个reduce,需要很长的时间。
第二、No SQL。在大方面,应该可以支撑大。Hbase可以满足大的特点,它可以做到一个大。Hbase底层是数据库,只能支持简单的查询。Hbase很难做一些逻辑复杂的数据分析和挖掘。比如说淘宝那边,他们可能比较有钱,他们用大量的硬件和大量的开发成本,有一套Hbase的数据开发集群。对于中小企业,和传统的企业是不的太适合用No SQL做分析的。它需要巨大的硬件成本和开发成本。
传统的数据库甲骨文支持大数据的分析吗?支持算法可以,但是天生对大比较吃力。
介绍一下我的方案,就是叫Yun Table,它支持基于内存计算,产品形态方面,也可以认为是新一代的数据仓库。Yun Table的核心着力点,我们在设计方面,比较专注两个方面:第一优化方面,是专注于内存,是专注能够从摩尔定律不断提升的东西,我们这边对内存SD做了很好的优化。但是它很贵,我们引入了列存,压缩比很高,他能把数据压得很小。Column storage弥补了前面的高成本。
我们能够通过硬件的发展,不断的体现我们在大数据方面的优势。第三点特色是比较快,我们可以很快的处理海量的数据,并且可以做数据的统计和分析。性能上,跟甲骨文相比,我们的单机性能是他的几十倍,我们做大数据的实时分析。这是我们几个比较核心的特性。
第一、我们能够对大数据,十亿行,百亿行的数据进行计算。
第二、通用X86的硬件。
第三、可以扩展至百台集群。
第四、PB级别的存储量。
第五、提供多平台的SQL驱动、其支持R数据挖掘语言。
看一下我们的整体架构,最上端是驱动。中间会有一个虚拟的IP,能够让Mastes Nodes里有两个管理。
地层是数据节点,通过一些算法,到每一个节点上,这些节点都是我们自主产生的。并且性能的核心价值,都在这里面体现。
讲一下我们的核心技术,为什么这样快?
一、并行处理。
二、行列混合存储。
三、压缩。
四、内存计算。
什么是并行处理?一个数据到集群里面,它自动会分发到各个节点上面。比如我10个节点的集群,我把一份数据分成十份,每一个节点处理单独的数据,可以加快10倍。并且一份数据可以复制多份,这样任何的节点down机都不会影响业务的完整了数据的连续性。我们支持最新的指令集,可以进一步的优化,尝试支持GPU,这是我们的定性处理。
第二是行业混合存储。这样一张简单的表,里面有一些名字、岁数、性别三列的数据,先到我们的区域里面的,我们首先会保证分区。我们前端是基于传统行的,我们有行分区,这样能够节省很多的开发成本。之后我们到底层会进行一个转化。传统的行是赵、25、男,我们的后端会把名字存在一起,性别、年龄存一起。我做一个查询,我没必要去找名字跟性别,我找年龄就可以了,这样一下子减少了三分之二,减少IO量,我只需要我所需要的列就可以,不需要把每个列都读出来。还有就是高效压缩,我们能做一些快速的聚合,我们看出最大的值是31,最小值是24,这时候有一个查询,是大于32个。最大的就是31,可以加快整体的运行。
最后就是在列的基础上,加了一些新的索引结构。据我们了解,传统的基于位置索引,它的成本会非常高,不一定适合大数据这样的场景。
这是高效压缩,我们在列的基础上面,做一些优化,所以使得我们的压缩率非常高。高大7到20倍,并且我们支持多种压缩的算法,支持轻度的,也支持深度的。比如说一些热数据,我们可以采用竞标的算法。但是对于一些不大常用的数据,可以把它压的很小。
如果压缩数据,我们还需要解压缩,我们现在是希望不解压缩,直接进行处理,这样性能更进一步的加大。
最后就是内存计算,现在的潮流就是服务器越来越多,内存越来越多,我们可以通过构建非常大的集群,有很多的数据。公司核心的业务数据都放在里面。之前我们给金融机构做一个大数据的平台,这大概有10台机器。我们内存大概是2.5T的内存量,我们压缩比是10倍,他能够降25T的数据放在内存里面,就相当于这个机构10年的业务数据进行处理。第一点它能够快速的处理,它能够做很强的变化,因为都是内存,可以做很多并发的操作。
最后讲一下,这边是甲骨文,他对1TB的数据进行分析,需要从硬盘到内存需要几个小时。一个50页的表,真正的处理从5页就可以,我50页只要5页,45页就不需要了,这样减少了IO的读取率。
最后也是压缩,我们是内存计算,这样我已经将1TB的IO,从几小时算到几秒。
给大家讲几个比较简单的案例。第一个是互联网,互联网可以用我们的实时技术作为电商的社交网络。讲互联网播放效果,实时的监测。广告业主可以在淘宝平台上购买广告,可以把这些广告发布到网站上,比如说QQ,新浪,用户看这个广告的时候,用户就会产生一些日志,这些日志都会发送到监测的平台,这个时候监测平台,就会送到Yun Table里面。Yun Table会对数据进行分析。
可以做这些分析,我们看这个广告点击一次有几个人,通过我们平时分析这种东西,我们能够做一些防错的措施。重合度分析,多维度的分析。
第二点就是电信运营商,运营商很多系统可以用到。我们在某个省的移动,它大概是用户上网投诉系统,用户我上网我一下发现自己的网费用的很厉害,我可以打10086问一下。10086会实时的调出他一个月上网的数据,说你上优酷,或者是什么网站,所以你用了很多。但是10086他们希望10秒内给出结果,他们之前试了很多。最后我试一下我们,我们大概是6个节点,放了一千一百五十三亿条的数据,我们做一些查询,都可以在一两秒之内出结果。是非常迅速的。
这边是英特尔的Hbase,他们是放一条数据,而我们是六个节点,是放了一千多位的数据,这是一千倍的差距。
第三点是金融。我们给每一个国内的证券机构做一个量化的交易。我们底层2.5T,存了800亿条的数据。我们提供接口,帮他们实时的处理。我们这10个节点,我们按照30秒的力度,对他一条的交易进行一个汇总,算一下他的价格,和加起来的平均值。我可以取某个时间端,前50个信息,我们做一些查询。我们都是在100毫秒,50毫秒量级完成。并且我们会支持并发,我们支持同时有一千人有类似的操作。
我们这个产品Yun Table,能为大数据进行实时的处理,并且我们已经在电信方面有成熟的案例。欢迎大家交流起来。