:::: MENU ::::

TalkingData's Blog

现在开始,用数据说话。

如何应对大数据应用在存储和展示方面的挑战

  • Nov 29 / 2013
  • 0
Ideas

如何应对大数据应用在存储和展示方面的挑战

编者按:近日,TalkingData首席架构师黄洋成(YC)受InfoQ邀约进行了一次关于大数据应用存储方面的独家技术专访,以下是整理后的专访内容,转载请保留出处http://www.infoq.com/cn/interviews/challenges-large-data-applications-in-storage-and-display-challenges 

 

个人简介

黄洋成 YC

黄洋成, 曾任BEA 电信技术中心首席架构师,负责WebLogic/Tuxedo等中间件产品的核心研发以及支持工作,Oracle(大中华区) 解决方案部首席架构师,负责战略项目(中国银联支付系统、中国移动梦网等)的架构以及实施工作。 现任北京腾云天下有限公司(专注于移动分析和数据挖据平台)首席架构师, Hive-Mongo DB project (https://github.com/yc-huang/Hive-mongo)的发起人和作者。

 

欢迎洋成来到QCon的采访间,首先请您先介绍一下您在TalkingData作为架构师主要负责些什么吧?

黄洋成:我在我们公司主要是负责的内容是两块,一块是公司的所有产品的技术选择以及技术架构的设计这一块;另外一块,就是对于一些新的技术以及方向的一些探索。

 

能简单说一下你们公司的业务吗?

黄洋成:TalkingData的话,主要是关注为移动开发者提供一些数据的支撑服务;我们提供的主要产品的话目前有四个,其中一个是一个通用的一个数据统计、分析的一个平台,它是以SaaS服务的形式提供的,是一个免费的服务;另外一块,就是我们专门针对游戏这个行业有一个垂直的版本,专门针对游戏开发者,主打做游戏的运营分析的一个SaaS的平台;然后还有一块是我们称为TalkingData Campaign,这一块主要是用于应用开发者在推广他的应用的时候,如何去监测他的推广效果,提供数据支撑的一个产品;最后一块我们叫TalkingData Insight,这块主要是咨询服务的形式提供的,目前我们主要会帮助其他的一些合作伙伴,去提供一些包括像推荐服务,以及一些像游戏里边的经济系统设计之类的一些咨询服务。

 

那么其实根据你分享中所介绍的,就移动数据的处理流程一共有五个步骤,就是收集然后清洗、处理、存储然后展示。您目前感觉这五个方面哪个方面做的比较成熟?然后哪些需要比较大的改进?

黄洋成:反正成熟应该还谈不上,我们毕竟还只做了两年的时间。但就我们以前主要相对关注比较多的话,应该还是在靠前边这三步,就说在数据的收集以及清洗还有处理这一块。就目前的话,正在加强的是在后边这两方面,就是存储和展示这一块。

 

能简单介绍一下这个步骤用的什么技术吗?

黄洋成:其实技术这一块的话我们也是在不停的演变,就我们以前采用的技术跟现在的来说,就有很多根本不一样的地方。从前面收集这一块的话,相对来说可能会变化会比较小。但就从清洗跟处理这一块的话,我们以前主要是基于像Hadoop上的Hive来进行这种批量处理。但现在的话,就是在我们最新的这个系统里边,基本上就说把以前的这种批量的模式逐渐变成了一种微批量、一种小批量的模式,就是相当于我们用了自己重新开发的一套计算的体系。这一块的话跟以前的主要区别在于,还是批量的,但这个批量它是以分钟级来记的,就是说,可以看作是一个准实时的一个系统。说它是准实时,就是说因为它这种latency基本上是在分钟级别的,所以它基本上能满足大家对于普通的这种对实时的一种要求。同时它又是一种批量的处理的系统。批量的话就意味着相对来说,从计算的复杂度,以及计算代价上,会要比那种真正的流式的实时处理会要小一些。也就是我们试图在实时性跟处理的效率上找一种平衡。

 

那它其实相应的也是会对存储造成压力?

黄洋成:对,相对我们目前来说,存储就还是基于Hadoop的HDFS。但只不过我们目前的话把计算从Hadoop的Map Reduce上在逐渐往外挪。从展示这一块的话来说,我们以前从用户可定制化这一块来说的话不是特别好。就我们目前正在这块的努力,主要是在于让用户可以更灵活的去定制他想看到的东西是什么样的,他想要怎么看这个数据。从我们内部的话,就是一个用户自定义的一种报表的这种概念。这是我们目前在展示这一块主要在努力的方向。

 

其实对数据分析人员来说信息量越大的情况,它噪音其实是越大的,就是不太容易识别那些是真正的信号。那比如对于广告主来说,然后它投放一个广告,他的效果究竟怎么样,你们是怎么去给他做这个评估的?

黄洋成:这一块的话,因为我们主要是做移动互联网行业的,所以对互联网广告来说相对我们某种意义上是外行,所以我主要谈谈在移动互联网这一块,我们所做的一些工作。从移动互联网来说,它跟以前互联网不一样,不太一样的地方在于就说,移动互联网目前最主要的广告,还是那种直接效果广告,也就是说大家目前最主要在移动上投广告的目的,是为了推广自己的移动应用,也就是希望通过投广告来带来自己移动应用的安装和注册,以及的后续的可能会带来自己的业务,比如电商有购买,像游戏有注册、付费,这些业务的增长。从这一块,确实从广告主的需求和目前这些主流的广告网络能提供能力来说,确实它们中间是有一些鸿沟,一些Gap的,主要表现在于,目前的主要的计费形式从广告网络那边的话,可能大家能做到得是像CPC,也就是按点击付费,有少数可能会做到按安装付费,按下载付费。实际上他,就是说基本上广告网络那边的话,他没办法知道,比如说用户点了这个广告以后,最终他有没有真的安装这个广告所推广的这个应用。他也没办法,去知道比如这个用户装了应用以后,有没有真的去注册帐号,或者去购买产品。因为这超出了广告网络他的能力范围之内,所以他提供不了这种,就说比如按CPI,或者CPA,或者CPS这种结算的广告。但从广告主的话,其实他根本的需求,他并不是需要用户去点广告。他真正的需求是需要用户去安装它的应用,去使用它的服务,甚至为使用它的服务付费。所以这一块,刚才提到了我们TalkingData Campaign这个产品,其实就是为了帮助来弥补这个鸿沟的。这块我们会跟主流的广告网络都有合作,然后目前也有国内的一线的大的厂商,包括像金山,包括百度,他们都在使用我们这个服务。我们这个服务的话是帮助他可以来衡量,就说他在不同的这些广告网络、推广渠道上,最终他这个广告真正的投放效果。也就说比如他在广告网络上比如用户点击了以后,他最后是不是真的变成了它的一个安装激活用户。我们TalkingData Campaign这个产品就是来帮他做这种匹配。而且在广告主授权的情况下,我们因为跟广告网络有合作,实际上广告主说是可以授权我们把这个信息,激活信息回传给广告网络,这样的话就是在广告主跟广告网络结算上,实际上会带来很大的一个方便。因为目前的话,就是说虽然广告网络,他能力只能提供到CPC。但其实从广告主的话,他真正需要的是CPI。而且从势力上的话,肯定是广告主有钱,广告主是强势的,所以真正最后结算的话,肯定就是还是按广告主提供的数据说,你到底真的给我带来多少激活,来给广告网络结钱。像以前的话他们都需要广告网络把它所有点击过他这个广告主的广告的一些信息,比如设备的ID传给广告主,广告主然后自己去做一种匹配,然后告诉广告网络说,你这一天的点击里最后真正给我激活,比如说是五百个。但实际上这两边就带来一个问题,就说他这个过程很不透明,实际上,广告网络他可能会作弊,广告主也可能会扣量,因为他没有一个公平的一个平台。实际上我们TalkingData Campaign主要提供的,既是提供了这个服务,其实也是构建了一个相对于透明的一个平台,大家都公平的在上面来玩就可以。实际上最后对于大家来说,总体成本是最低的。

 

就是说你们是从广告平台那里获取?

黄洋成:相当我们作为一个第三方,一个独立的第三方,一个中立的第三方。相当于我们既不偏广告主,也不偏广告网络。但是我们只是提供一个数据的服务,实际上提供一种数据匹配的服务。

 

通过其他的服务再获取这种安装数据?

黄洋成:相当于广告网络会把它的点击的信息会传给我们,然后广告主的话,他会把他的安装信息传给我们。但是最后传的形式不一定是他主动传,一种可能比如合作的形式从后台传;另外一种的话像比如,像我们也提供SDK给广告主,这样的话SDK可以自动去收集这些信息。

InfoQ然后双方做一个匹配?
黄洋成:对。

 

好的,那么你还提到数据展示方面的难点,就是您提到有三个部分,就是有这个一个是安全问题,然后是页面比较复杂的问题,然后就是性能也是有问题。那么它是否指的是说有很多的数据,然后要以这种简单的方式呈现,还要提供一个比较直观的UI、UX,这方面比较困难,现在有没有好的样本可以借鉴?

黄洋成:这块的话其实首先是安全了,因为实际上数据对一个公司来说其实是很重要的,所以就说数据首先它在公司里边肯定还是需要保密的,不是说谁都能看,所以当然说安全那一块很重要。从复杂这一块的话,其实说一块是像我们通常就说很多的用户发现他们有一种需求,特别像他们的像日报、周报、月报这种需求的话,他们会在同一个页面,一个报表页面里边的,它几乎会展示他几乎所有的数据。但这首先带来了一个问题就说,这一个报表上的数据太多了,当然首先的话就是说你怎么从后台去取,怎么能够快速高效提供这个数据,这肯定就是一个问题;另外一个问题就在于这些数据怎么来把它有机的组织起来,然后让用户能够方便的来看,来能看的懂。我想看什么的时候,我一眼能找的到。但这一块的话,一方面就是从产品设计上,从交互上怎么能让他更方便;另外一方面就说可能用户的需求也是多种多样的,其实最好的方式就是,每个用户可能他看的时候,就有他自己的一个看报表的思路,或者说组织报表的思路。但这个思路可能每家都会不太一样,所以最好的方式,是比如我们提供一个工具,他可以按照他自己的思路去组织它的报表。

 

所谓组织报表的意思是说在比较数据上面?

黄洋成:对,就是比如你,比如说第一你想展示什么数据,你是以什么形式展示。比如你说是想,比如第一排比如你觉得很重要,希望放一些最重要的数据,可能你希望以那种Dashboard类的比如很大的数字,你也能很清晰的看到这种方式来展示。还是说比如我是希望有些图表的线图,或者柱图、饼图的形式来展示,这个展示什么,比如接下来展示什么,这块可能每一家可能都有,他的传统一些思路。但这个确实每一家可能还是有一些区别。就我们目前正在试图做的,刚刚说的自定义报表,其实一方面就是满足这种需求,也就是说我用户可以根据自己的思路,就是最后来组织这个报表。比如这一块的话我想添加一块我想放的东西。比如那一块我觉得对我不重要我把它挪掉。你要另外的话就是说,就说从,因为我们更多的话还是关注于就是用户能够深度去分析它的数据。从这一块的话,就说就涉及到复杂的另外一方面,也就是说你怎么能够最合适的选出用户想看的数据,也以最合适的形式展现出来。前面就选出他想看的数据的话,实际也就说,我们需要能够有一种能力让用户以任何的一个角度、一个视角、一个维度来看一种数据。而且他可以比如就是说看了这个数据,看了某一个数据的情况下,比如它还有能力,比如我可以再把它再切分开来,按另外某个维度再分开来看,相当于把,你可以理解为把一个数据,一个物体可能你看的表面,可能你觉得某一地方有一些你奇怪的东西,这会你光看表面是不知道的,你只能把这个东西拿刀给它抛开来,看看里面到底是什么样。这样的话就我们提供这种从数据分析角度来说也就是那种一种多维分析,比如像数据的切片、钻取这块的能力;你要另外一块,就是说比如你选出了,就是说你查出来这个数据,怎么能够以比较好的形式展现出来。就比如即使是同一个,比如说你拿线图来展示,其实就是如果你要让用户看起来最方便的话,其实也是有很多需要优化的,比如可能有两个数据可能差别很大,或者比如说某个你关注的点,就说从线上的话,他那种幅度很小的话,这会可能比如说你可能拿一个线性坐标不一定合适,或者你可能得换一个指数形的坐标,或者给你某一个地方,你可以让他去自动去放大或者什么之类的,这个像这一块,还是有很多需要继续去优化的地方。

 

视频链接:如何应对大数据应用在存储和展示方面的挑战

Leave a comment

随时欢迎您 联系我们