作者:BLUES
来源:馒头商学院(ID:mantousxy)
编辑:Juvae
不少人对数据运营的理解,局限于数字统计、原因分析等,其实这些只是数据运营工作的一小部分,数据最终是为产品服务的,数据运营,重点在运营,数据只是工具。
数据运营是做什么的?个人的理解是:
制订产品目标,创建数据上报通道和规则流程,观测产品数据,做好数据预警,分析数据变化原因,根据分析结果优化产品和运营,并对未来数据走势做出预测,为产品决策提供依据,在产品策划与运营中融入数据应用。
通俗点说,数据运营搞清楚以下5个问题:
l 我们要做什么?——目标数据制订;
l 现状是什么?——行业分析,产品数据报表输出;
l 数据变化的原因?——数据预警,数据变化的原因分析;
l 未来会怎样?——数据预测;
l 我们应该做什么?——决策与数据的产品应用。
如何才能构建一个完整的产品数据运营体系?Blues根据自己在YY工作的经验进行了梳理和总结,整个过程可以分为如下的11步,供大家参考。
第1步:制订产品目标
这是数据运营的起点,也是产品上线运营后进行评估的标准,以此形成闭环。制订目标绝不能拍脑袋,可以根据业务发展、行业发展、竞品分析、往年产品发展走势、产品转化规律等综合计算得出。制订目标常用SMART原则来衡量。
(1)S代表具体(Specific)
指工作指标要具体可评,不能笼统。例如我们制定YY语音基础体验的产品目标,如果是提升产品体验,则不够具体,每个人的理解不一致,当时我们的基础产品目标则是提升新用户次日留存,则非常具体。
(2)M代表可度量(Measurable)
指绩效指标是数量化或者行为化的,验证这些绩效指标的数据或者信息是可以获得的;提升新用户次日留存率,则需要给出具体的数值。
(3)A代表可实现(Attainable)
指绩效指标在付出努力的情况下可以实现,避免设立过高或过低的目标;新注册用户的次日留存率,也不是拍脑袋得出的,当时我们基于YY新用户次日留存率的历史数据和游戏用户的新注册用户留存率的行业参考数值,制订了一个相对有挑战性的目标,从新注册用户次日留存率从25%提升到35%。
(4)R代表相关性(Relevant)
是与工作的其它目标是相关联的;绩效指标是与本职工作相关联的;新用户的次日留存率,和用户行为息息相关,例如用户对语音工具的认可程度,用户对YY平台的内容喜好程度等,所以新用户的次日留存和产品的性能、内容受欢迎程有较强的相关性。
(5)T代表有时限(Time-bound)
注重完成目标的特定期限。
产品目标可以这样制订:在2013年12月31日前,将YY语音新注册用户的次日留存率从25%提升到35%。
新用户次日留存率的提升,意味着更多用户的活跃转化,带动整个用户活跃数量的增长。
第2步:定义产品数据指标
产品数据指标是反应产品健康发展的具体的数值,我们需要对数据指标给出明确定义,例如数据上报方法、计算公式等。
例如上文的次日留存率,可以定义为:次日留存率是一个比率,分母是当天新注册并在当天登录YY客户端的YY帐户数,分子是分母当中在第二天再次登录YY客户端的YY帐户数。
注意这里的细节,第一天和第二天,需要有明确的时间点,例如0点到24点,计算为一天;问题来了,一个新用户在第一天的23点注册并登录YY客户端,到第二天的凌晨1点下线;按照上面的定义,这个用户或许将不会被记录为次日留存用户,因为这里没有定义清楚数据上报细节。
定义是第二天再次登录YY客户端,上面案例的用户在第二天是没有登录行为的,但他确实是连续两天都在登录状态的用户。
所以针对这个定义,需要补充细节:用户登录状态,如果是5分钟进行一次心跳包的上报,那么这位新用户就可以被上报为第二天的登录状态用户,如果在0点5分之前下线之后,持续到第二天的24点,仍未有登录状态,那么将不被记录为留存用户。
我们根据产品目标来选择数据指标,例如网页产品,经常用PV、UV、崩失率、人均PV、停留时长等数据进行产品度量。定义产品指标体系,需要产品、开发等各个团队达成共识,数据指标的定义是清晰的,并且有据可查,不会引起数据解读的理解差异。
第3步:构建产品数据指标体系
在数据指标提出的基础上,我们按照产品逻辑进行指标的归纳整理,使之条理化。
新用户的次日留存率是我们订制的一个核心目标,但实际上,只看次日留存率还是不够的,还需要综合考察影响用户留存率的多种因素,才能更准确的了解产品的健康发展。如图1所示,是常用的一种指标体系,包含:用户新增、用户活跃、付费、其他数据。
图1 互联网产品常用数据指标体系
在我们做YY语音客户端产品的时候,会用到下面的指标体系,包括:账号体系、关系链数据、状态感知数据、沟通能力等四大方面。具体指标有:好友的个数分布、观看频道节目的时长、IM聊天时长、个人状态的切换与时长等,如图2所示:
第4步:提出产品数据需求
产品指标体系的建立不是一蹴而就的,产品经理根据产品发展的不同阶段,有所侧重的进行数据需求的提出,一般的公司都会有产品需求文档的模板,方便产品和数据上报开发、数据平台等部门同事沟通,进行数据建设。创业型中小企业,产品数据的需求提出到上报或许就是1-2人的事情,但同样建议做好数据文档的建设,例如数据指标的定义,数据计算逻辑等。
图3是BLUES在YY语音客户端团队建立的基础产品数据需求实现流程。
图3 YY事业部基础产品数据需求实现流程图(施行)
第5步:上报数据
这个步骤就是开发根据产品经理的数据需求,按照数据上报规范,完成上报开发,将数据上报到数据服务器。上报数据的关键是数据上报通道的建设,原来在腾讯工作时候,没有体会到这个环节的艰辛,因为数据平台部门已经做了完备的数据通道搭建,开发按照一定规则,使用统一的数据SDK进行数据上报就可以了。
后来在YY,属于发展型公司,则是从上报通道开始进行建设,也让我得到更多锻炼提升的机会。其中很关键的一个环节,就是数据上报测试,曾经因为该环节的测试资源没到位,造成不必要的麻烦。
很多创业公司没有自己的数据平台,可以利用第三方的数据平台:网页产品,可以使用百度统计(tongji.baidu.com);移动端产品,可以使用友盟(www.umeng.com)、TalkingData(www.talkingdata.com)等平台。
第6~8步:数据采集与接入、存储、调度与运算
每一步都是一门学问,例如采集数据涉及接口创建,要考虑数据字段的拓展性,数据采集过程中的ETL数据清洗流程,客户端数据上报的正确性校验等;数据存储与调度、运算,在大数据时代,更是很有挑战性的技术活。
1.数据的采集与接入
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
下图是产品数据体系的一个常见流程图,数据采集、存储、运算,通常就在图中的数据中心完成。
确认完数据上报之后,接下来几个事情就比较偏技术化了。首先需要上报的数据通过什么样的方式采集和存储到我们的数据中心。
数据采集分为两步,第一步从业务系统上报到服务器,这部分主要是通过cgi或者后台server,通过统一的logAPI调用之后,汇总在logServer中进行原始流水数据的存储。当这部分数据量大了之后,需要考虑用分布式的文件存储来做,外部常用的分布式文件存储主要是HDFS。这里就不细展开。
图5 原始数据上报存储到文件的架构图
数据存储到文件之后,第二步就进入到ETL的环节,ETL就是指通过抽取(extract)、转换(transform)、加载(load)把日志从文本中,基于分析的需求和数据纬度进行清洗,然后存储在数据仓库中。
以腾讯为例子:腾讯大数据平台现在主要从离线和实时两个方向支撑海量数据接入和处理,核心的系统包括TDW、TRC和TDbank。
图6 腾讯数据平台系统
在腾讯内部,数据的数据收集、分发、预处理和管理工作,都是通过一个TDBank的平台来实现的。整个平台主要解决在大数据量下面数据收集和处理的量大、实时、多样的问题。通过数据接入层、处理层和存储层这样的三层架构来统一解决接入和存储的问题。
(1)接入层
接入层可以支持各种格式的业务数据和数据源,包括不同的DB、文件格式、消息数据等。数据接入层会将收集到的各种数据统一成一种内部的数据协议,方便后续数据处理系统使用。
(2)处理层
接下来处理层用插件化的形式来支持多种形式的数据预处理过程。对于离线系统来说,一个重要的功能是将实时采集到的数据进行分类存储,需要按照某些维度(比如某个key值+时间等维度)进行分类存储;同时存储文件的粒度(大小/时间)也是需要定制的,使离线系统能以指定的的粒度来进行离线计算。对于在线系统来说,常见的预处理过程如数据过滤、数据采样和数据转换等。
(3)数据存储层
处理后的数据,使用HDFS作为离线文件的存储载体。保证数据存储整体上是可靠的,然后最终把这部分处理后的数据,入库到腾讯内部的分布式数据仓库TDW。
图7 TDW架构图
TDBank是从业务数据源端实时采集数据,进行预处理和分布式消息缓存后,按照消息订阅的方式,分发给后端的离线和在线处理系统。
图8 TDBank数据采集与接入系统
TDBank构建数据源和数据处理系统间的桥梁,将数据处理系统同数据源解耦,为离线计算TDW和在线计算TRC平台提供数据支持。目前通过不断的改进,将以前Linux+HDFS的模式,转变为集群+分布式消息队列的模式,将以前一天才能处理的消息量缩短到2秒钟!
从实际应用来看,产品在考虑数据采集和接入的时候,主要要关心几个纬度的问题
l 多个数据源的统一,一般实际的应用过程中,都存在不同的数据格式来源,这个时候,采集和接入这部分,需要把这些数据源进行统一的转化。
l 采集的实时高效,由于大部分系统都是在线系统,对于数据采集的时效性要求会比较高。
l 脏数据处理,对于一些会影响整个分析统计的脏数据,需要在接入层的时候进行逻辑屏蔽,避免后面统计分析和应用的时候,由于这部分数据导致很多不可预知的问题。
2.数据的存储与计算
完成数据上报和采集和接入之后,数据就进入存储的环节,继续以腾讯为例。
在腾讯内部,有个分布式的数据仓库用来存储数据,内部代号叫做TDW,它支持百PB级数据的离线存储和计算,为业务提供海量、高效、稳定的大数据平台支撑和决策支持。基于开源软件Hadoop和Hive进行构建,并且根据公司数据量大、计算复杂等特定情况进行了大量优化和改造。
从对外公布的资料来看,TDW基于开源软件hadoop和hive进行了大量优化和改造,已成为腾讯最大的离线数据处理平台,集群各类机器总数5000台,总存储突破20PB,日均计算量超过500TB,覆盖腾讯公司90%以上的业务产品,包含广点通推荐,用户画像,数据挖掘和各类业务报表等,都是通过这个平台来提供基础能力。