唐巧的博客

数据的秘密(下)- 如何分析数据

字数统计: 2.7k阅读时长: 9 min
2015/09/03 Share

前言

上一篇文章中,我们介绍了为什么要关注数据,在本文中我将分享具体如何做。

关注宏观和细节

大多数人都能做到关注宏观的数据,拿互联网产品来说,日活,月活,流失率,NPS(净推荐值),这些都是宏观的数据。宏观数据能够反映出产品的整体状况,是值得长期关注的。

但是在宏观之外,我们还应该关注一些细节的数据。拿日活来说,我们可以再进一步进行分析,比如:

  • 日活中新用户所占的比例
  • 日活中 iOS 和 Android 的各自占比
  • 日活中大家集中活跃的时间段
  • 日活中用户的会话(Session)次数分布,时长分布
  • 日活中用户平均使用你的产品核心功能的次数

当你把数据拿放大镜看得更细的时候,你可能就会发现一些问题。带着这些问题,你进一步分析,就可以找到更多信息。

举一个我们创业产品小猿搜题的例子,我们发现日活中的用户,有相当一部分用户只是注册了,但是并没有使用我们产品的核心功能,于是我们担心会不会有一些付费推广渠道「刷量」。

所以,我们将新增用户中不活跃的比例按渠道来划分。通过这样的划分,我们很容易找到那些效果差的渠道,从而选择更有效的推广渠道。

关注原始数据

原始数据是什么?就是那些不是通过别的数据计算出来的,不能被分割的数据。这些数据是最最真实的,而其它通过计算出来的数据,因为进行了二次加工,所以不一定能够完全反映出产品的问题。

再举一个小猿搜题的例子,我们为了研究 NPS 给我们打零分的用户。把这些用户的搜索数据、操作记录都抽样出来,一个用户一个用户看,然后进行分类整理。最终我们发现这里面小学生用户占比很高,从而调整了产品的策略,在内容和算法上对小学生进行了兼顾。

关注原始数据除了能改进产品外,还能在技术上提高代码的质量。我们曾经遇到过一个很难复杂的 Bug,在我们的测试机中都无法复现,但是我们通过分析相关用户的操作记录,找到了具体崩溃的操作方法。

虽然该操作方法不能在我们自己的机器上复现 Bug,但是我们却能找到相关的关键代码。通过一些针对这些代码的讨论,我们就找到了 Bug 的原因。现在回想起来,如果没有这些原始数据,要修复这个 Bug 就要困难很多了。

关于面试

其实不光做产品要看「原始数据」,面试一个人也是。我在面试的时候,会选一个候选人简历上的事情,进行深入了解。我会让他提供详细相关工作的数据和事例。通过这些「原始数据」,我能够更加方便地「还原他真实的工作场景」,从而对他的工作质量作出尽量客观的评价。

举个例子,有一个产品实习生候选人在简历上写他运营了一个微信公众号,「粉丝逾千,单日粉丝增量 200 以上,数篇文章阅读量超过 3000」。但是在面试中,详细追问这些数字,我们才发现他说的「逾千」是指 1000,而「单日粉丝增量 200 以上」是指的最高的一天,其它信息也都是有夸大的成分。

还有一次,我面试一个技术候选人,这个候选人说他有代码洁癖,觉得前公司的代码「很乱,受不了」。但是我让他具体举几个例子的时候,他却很难说出实际的例子。还有候选人说他喜欢看技术书,但是却无法说出他印象最深的一本技术书以及其中的部分观点。

通过了解细节,我们就可以揭开简历中光鲜描述的外衣,了解到事情背后的细节,这对我们评价候选人至关重要。

数据可视化

数据可视化是指将原本枯燥的数据,用折线图、饼图、柱状图等方式呈现出来,它可以使我们更容易发现数据的规律,也更容易发现数据的异常。

在小猿搜题项目中,数据可视化多次给我们带来巨大的帮助,包括:

  • 了解数据的特点:我们将小猿搜题的 QPS 按每小时为频率画出成一条折线图,所以我们很容易知道我们服务器高峰期的时间段以及访问量。
  • 发现服务异常:我们将服务器搜索的失败率占比画出成一个饼图,有一天,这个饼图中显示出失败率突然变高了。同时,每日的 NPS 分数突然也变低了很多。我们借此发现了新扩容的一台服务器故障。因为那台服务器是新加的,所以运维忘记了增加监控,如果没有数据可视化的帮助,这个故障可能会持续更长时间。
  • 监控核心质量:我们将小猿搜题的一些核心指标画成折线图,然后大家都努力让核心指标更优。
  • 发现恶意攻击:一些重要指标,我们都会可视化出来,这样当这些数据指标变化时,我们就会进一步分析原因,从中我们还发现了一些竞争对手恶意的攻击行为。

数据可视化工具

我们当然不可能所有的数据可视化都是自己手工用 Excel、Numbers 之类的工具来生成。所以,我们开发了一个数据可视化的平台,我们把它叫做 flyboard。

flyboard 提供了各种数据可视化的方式,包括数字,折线图,饼图,环形图,柱状图等。如下图所示:

我们将所有的原始数据都归集到分布式存储 Hbase 中,然后通过配置一些定时的计算任务,就可以以几乎实时地方式,看到产品的各项可视化指标。

这些指标,有宏观的,也有一些比较细分的,如果我们对某项指标的数值有疑问,我们就会进一步写一些分析脚本,来从 Hbase 中计算一些数据进行检查。

在猿题库公司,我们的三个产品(猿题库、小猿搜题、猿辅导)的办公区域,都挂着一个巨大的显示器,这个显示器除了用于 Scrum 的每日站会同步进度外,平时都用 flyboard 显示着产品的各项核心数据。

悄悄告诉你一个秘密,我们的 flyboard 可视化平台是开源的,项目地址是:https://github.com/yuantiku/flyboard ,在 Github 上你可以下载到完整的代码,我们也附有完整的安装使用说明文档。如果你还没有使用任何数据可视化工具,欢迎尝试一下 flyboard。

学习写 SQL

由于有 HadoopHbaseHive 的存在,产品经理也可以通过一些简单的 SQL 语句,就可以生成 MapReduce 任务,进行分布式的数据分析运算。

所以数据分析最最常用的办法就是写 SQL。在很多公司,产品经理都在这方面能力比较欠缺,这使得产品经理在需要数据时,需要向技术提需求。技术会根据自己的工作排期。这样一来一回,一般一个简单的数据分析都需要一天时间。

这样的低效率的方式,会扼杀产品经理的一些数据分析需求,特别是那种需要探索式发现的数据分析工作。因为这种工作需要不停地根据数据分析的结果,调整各种策略来写尝试的 SQL。

所以在猿题库,我们希望产品经理都能有基本的数据分析能力,一些简单的 SQL 都是需要自己能够写的。当然,一些特别复杂的 SQL,产品经理可能还是需要向技术同事咨询。

具体如何写 SQL,市面上已经有非常多的相关书籍了,我在这里就不再展开介绍了。

数据查看和分析一定要方便

如果你仔细观察就会发现,很多革命性的产品就只是让某件事情更方便了一点点。智能手机其实只是让你上网更方便了一点,但是这种方便使得人们从以前有「离线和在线」的状态,变成了永久在线。于是,移动互联网诞生了,本质上来说,移动互联网就是一种人们永久在线的网络,但是就是这么一点点的方便,使得很多行业被完全颠覆。

而数据分析也是一样,我们应该尽量让数据触手可得,这样我们才能将数据分析的效率最大化,一定程度上的效率提升就会产生质变,使得我们专注于数据做更多事情。

我们之前移动端统计用 Flurry,但是 Flurry 在中国实在太慢了,即使挂上国外的 VPN 也很慢!如果产品经理每次登录 Flurry 要 10 秒钟的话,那么他就可能将注意力临时转移到别的事情上,然后就可能忘记本来要看的数据。

为了让数据触手可得,我们放弃了对 Flurry 的使用,我们自己开发了日志收集平台,然后自己写日志计算程序,将一些核心指标全部自己计算在 flyboard 上,我们也另外开发了一套数据分析平台,实现 Flurry 中的类似功能。现在,我们已经能够非常舒服地分析数据了。

所以,如果你的公司不能很方便的查看和分析数据,那么一定要想办法改进,这些数据就像人的神经系统一样,传递着产品的健康数据,重视这些数据,才能够做好产品。

总结

总结一下本文中的观点:

  • 重视宏观数据和细节
  • 关注原始数据
  • 数据可视化
  • 学会用 SQL
  • 数据查看和分析一定要方便

原文作者:唐巧

原文链接:https://blog.devtang.com/2015/09/03/how-to-monitor-data/

发表日期:2015.09.03 , 8:54 晚上

版权声明:本文采用 Crative Commons 4.0 许可协议进行许可

CATALOG
  1. 1. 前言
  2. 2. 关注宏观和细节
  3. 3. 关注原始数据
  4. 4. 关于面试
  5. 5. 数据可视化
    1. 5.1. 数据可视化工具
  6. 6. 学习写 SQL
  7. 7. 数据查看和分析一定要方便
  8. 8. 总结