千万级数据库优化的数据,统计分析,非常慢,怎么优化

SQL Server 2008 千万级数据量的表,每天插入/更新150W次左右,如何优化?
[问题点数:35分,结帖人wufeng4552]
SQL Server 2008 千万级数据量的表,每天插入/更新150W次左右,如何优化?
[问题点数:35分,结帖人wufeng4552]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2014年4月 荣获微软MVP称号
2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2014年4月 荣获微软MVP称号
2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2014年4月 荣获微软MVP称号
2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2014年4月 荣获微软MVP称号
2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2014年4月 荣获微软MVP称号
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
漫谈redis在运维数据分析中的去重统计方式
关键字:数据
  广通软件旗下优云平台开发工程师胡,通过多年在统计平台的数据的分析和的摸爬滚打,从实践经验角度和大家分享下redis在运维数据分析中的去重统计方式。为了避免混淆,本文中对于redis的数据结构做如下:
  SET:saddkey member
  ZSET:zaddkeyscoremember
  HYPERLOGLOG:pfadd key element
  STRING:setbit key offset value
  名词约定:
  维度:比如版本、类型、操作系统版本、运营商、设备型号、网络类型等
  复合维度:由两个或多个维度交错产生的维度,比如某个版本下的某个设备型号。
  去重统计在数据化运维的指标计算环节,并不是一个陌生的字眼,甚至可以说,在大部分的数据指标的中间计算过程中,最终会分为以下几种数据集:
  最大,最小,稳定性,叠加,去重统计。
  这5种指标前面4种在实时处理框架或者大部分nosql中使用相对较小的开销即可完成计算,基础指标计算的大部分计算瓶颈还是落在io上面,而导致io瓶颈的问题源自于数据维度的划分与聚合,特别是对于去重统计类型的数据,如果有一种需要实时显示的去重指标,维度的切分对于io上的开销简直是一种灾难。
  例如,假定我们需要获取终端中某个应用版本中的某个设备型号或者某个系统的活跃设备数。那么,目前市场中的设备型号有几百种,各种系统版本x系统类型也有很多,对指标的去重统计来说每多一个维度,需要的内存开销就要多上一倍,2个维度交叉产生的复合维度可能多达上百个,3个维度的交叉产生的复合维度可能数以千计。
  因此,对于实时显示的去重统计类型指标,最好的处理方式是在设计时尽量规避这种指标。如果实在无法规避,我们需要做的牺牲一部分插入时的性能或者空间上的性能换来该部分指标在读取时不是o(n)的。
  下面简单介绍几种在开发中基于redis研究出来的几种数据去重方式。
  1. 基于set的去重统计
  这种结构的数据应该是最好理解的统计方式,也是常规的统计方式之一,直接把要去重的部分作为member插入一个set中,需要统计的时候直接使用scard统计该数据集的基数,对于时间等维度信息,可以放在key中,然后拿取的时候通过拼接维度字段的形式拿取。
  2. 优点:使用简单,统计精确。
  缺点:无法达成实时统计的功能,要一分钟统计一次的话需要使用expire命令设置一个很短的回收时间,单一维度时占用空间过大,信息聚合成本过大,有几个维度就需要几倍的内存空间,3个以上复合维度时基本不需要考虑此。
  适用场景:需要统计的去重内容的基数非常小的情况下可以考虑,在优云mobile中,对于用户基数较小的影响设备数的计算采用了此种方式。
  3. 基于zset的去重统计
  传统的基于跳表/B树的统计方式,key为维度信息,score为时间,member为设备id等原子信息,通过zcount可以拿取所有的成员数量。
  优点:插入和统计都是o(log(N))的,可以精确统计从现在开始到某个时间点的用户,可以保留原子数据。
  4. 缺点:只能自定义时间域上的左区间,对于右区间只能定义为现在时间,否则会出现统计值比实际值偏小的情况(因为同一个设备如果出现两次,则会移除旧的那条),单一维度时占用空间过大,有几个维度就需要几倍的内存空间,3个以上复合维度时基本不需要考虑此方案。
  适用场景:对于查看从现在开始1分钟 5分钟 10分钟等各种时间跨度的用户基数时可以考虑,在优云mobile中,采用了这种方案来统计活跃设备数,早期开发时我们将各种时间维度和各种复合维度全部放在了redis中,结果发现内存开销过大,现在的版本我们只存放了最近2分钟的一些简单维度的数据。
  5. 基于bitset的去重统计
  将终端用户id映射为一个bitset上的一个bit,利用现代的特性进行快速计算。
  优点:统计结果精确,对于不同维度可以使用and或者or进行聚合,数据具有原子性,通过较少的操作即可做到跨维度的计算。
  缺点:不适用于分钟级别的统计,并且用户id的映射较为麻烦。如果使用hash的方式进行映射,将会不可避免的产生hash碰撞,如果使用用户id进行映射,那么必然需要维护一份用户id映射表,这份映射表放在内存中会占用大量空间,放在中则会导致整个系统的处理速率降低。
  备注:java中的bitset在一个byte字节上是由低位到高位进行,redis中则是由高位到低位进行存储。
  适用场景:适用于需要储存原子数据并进行较大时间跨度或者自由拼接时间跨度聚合的场景。
  6. 基于hyperloglog的去重统计
  hyperloglog是一种基于概率的统计方式,在redis的2.8.9版本后出现的新数据结构
  详细的内容可以查看这几篇文章:
  http://blog.codinglabs.org/tag.html#基数估计
  优点:每个hyperloglog只需要12K的空间,并且误算率只有0.81%,不同的纪录之间可以进行聚合,也就是可以通过聚合统计出任意时间范围的去重结果,统计单个hyperloglog时时间复杂度为o(1)。
  缺点:对于统计结果要求较为精确的场合并不是非常适用
  适用场景:在对误算率要求不高的情况下,同bitset。
  7. 基于布隆过滤器的去重统计
  布隆过滤器是一种改良的bit映射方案,通过使用多种不同的hash种子,可以做到在较低误判率以及较高的空间利用率的情况下进行统计,redis中并没有布隆过滤器这个数据结构,不过可以通过lua脚本的方式实现一个布隆过滤器,详细源码可见
  /erikdubbelboer/redis-lua-scaling-bloom-filter1
  优点:对于200万用户不超过万分之一误算率的统计,只需要8M左右redis内存即可完成统计,万分之一的误算率是在插入的不同设备数达200万次时才拥有的误算率,在这之前的误算率是从0开始线性增长的,在大多数情况下这个误算率应该是可以容忍的。
  缺点:布隆过滤器的统计结果无法聚合
  适用场景:对于一些需要实时显示的内容并且维度较少的内容,可以采用此数据结构,在优云mobile中,总览页面的活跃设备数采用了此方案来实时显示今日活跃设备数。
免责声明:本文系转载自网络,发布本文为传递更多信息之用,另:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实, 对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
[ 责任编辑:wang ]
SAPPHIRE NOW大会为…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte千万级的数据(mysql),统计分析,非常慢,怎么优化 - 开源中国社区
当前访客身份:游客 [
当前位置:
千万级的数据(mysql),统计分析,非常慢,怎么优化
数据用的分表方式存储,现在查询很慢,怎么办,
存储的数据内容是:用户行为的LOG,我要在后台做统计,慢!
共有13个答案
<span class="a_vote_num" id="a_vote_num_
说 Mysql 慢的 要知道&淘宝 是用 mysql &的
<span class="a_vote_num" id="a_vote_num_
可以做增量处理,就是每次统计不要直接处理所有数据,而是每次统计完去累加,这样降低一些时效性,提升性能。
<span class="a_vote_num" id="a_vote_num_
千万级不算大,优化一下,可以在几十到几百毫秒几查询。
<span class="a_vote_num" id="a_vote_num_
以前类似的问题,解决是记录每天一个表,定时程序按照记录的自增id每10分钟处理一次数据,每次只处理新产生的数据,并记录每次的id。把流水数据统计到原始统计表里面,再根据原始统计表出最终统计结果。
--- 共有 3 条评论 ---
: 根据具体业务要求来选择方案吧。可以做一次版本更新,改为该方式。对于遗留数据统一在更新时做一次处理。
(1个月前)&nbsp&
如果一开始没有采取这种方案,数据库已经积累了一定量的数据又怎么处理呢?
(1个月前)&nbsp&
这种思路十分的赞,之前项目遇到这种统计问题也基本都采用这种思路来解决,把统计粒度细化到天,把需要统计的数据从原始数据,变成初步的统计数据
(7个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
<span class="a_vote_num" id="a_vote_num_
<span class="a_vote_num" id="a_vote_num_
说过,mysql并不是一个数据库……
所以解决的思路是,你不要把他当作是一个数据库,于是问题就好解决了。
如果有主键,使用外表标记的方法,将where查询和group查询精确到具体的记录主键。
如果无主键,将数据分组输出到不同的临时表做处理。
<span class="a_vote_num" id="a_vote_num_
2 分表(垂直、水平)
3 内存存放
4 提高磁盘IO(如使用SSD)
5 负载均衡
7 +CPU/内存
8910忘记了唉
<span class="a_vote_num" id="a_vote_num_
日志分析之类的活儿还是离线处理吧,推荐Hadoop/Hive。
<span class="a_vote_num" id="a_vote_num_
千万级的,只要索引设置得当,SQL语句倒腾得当,用MySQL统计还是可以轻轻松松拿下的~~~
更多开发者职位上
有什么技术问题吗?
西門扫雪的其它问题
类似的话题要加快查询的速度,可以建立1个索引,注意是1个,对于你这个频繁的dml语句的表,索引是越少越好。
但是为了加快查询,又必须要建立索引,可以根据你的过滤条件,来建立索引,比如:select * from tb where xxx = 123
那么就是:create index idx_tb_xxx on tb(xxx)
为了提高查询的效率,可以在查询字段上建立合适的索引
当然你查询也要设计的合理,
允许一下子查询出来几万条,甚至几十万条数据,再来讲优化的话,基本上很难解决了
所以在源头上避免大范围的查询,比如可以显示查询时间,查询字段等等
从事实上也能讲的过去,正常情况下,人为因素关心的数据,不可能太多
你说你一次要关注1W条生产数据,一次要查询处理几万条数据
为了避免因为查询而阻塞更新,如果对查询的实时性要求不是非常高
可以在所有的查询语句中增加WITH (NOLOCK),以取消查询语句对共享锁的占用
例如select * from tableName with(nolock)
缓解查询对更新的阻塞
以前一个winform的项目,数据量不会比你的少,但是更新没有你这个这么频繁
就是这样搞的,没出现过什么问题
比如可以限制查询时间范围,某些查询字段必须等等
订单按周或者按月分表吧。控制分表后单表在百万数据量左右就可以了。
引用 4 楼 magician547 的回复:
订单按周或者按月分表吧。控制分表后单表在百万数据量左右就可以了。
已经是按月分区了的,每个月的订单数据也很恐怖,关键是这些数据要用来查询,一查询就整体效率下来了!
引用 1 楼 yupeigu 的回复:
要加快查询的速度,可以建立1个索引,注意是1个,对于你这个频繁的dml语句的表,索引是越少越好。
但是为了加快查询,又必须要建立索引,可以根据你的过滤条件,来建立索引,比如:select * from tb where xxx = 123
那么就是:create index idx_tb_xxx on tb(xxx)
主要是里面有用到复杂查询,头疼中。。。
引用 2 楼 x_wy46 的回复:
为了提高查询的效率,可以在查询字段上建立合适的索引
当然你查询也要设计的合理,
允许一下子查询出来几万条,甚至几十万条数据,再来讲优化的话,基本上很难解决了
所以在源头上避免大范围的查询,比如可以显示查询时间,查询字段等等
从事实上也能讲的过去,正常情况下,人为因素关心的数据,不可能太多
你说你一次要关注1W条生产数据,一次要查询处理几万条数据
为了避免因为查询而阻塞更新,如果对查询的实时性要求不是非常高
可以在所有的查询语句中增加WITH (NOLOCK),以取消查询语句对共享锁的占用
例如select * from tableName with(nolock)
缓解查询对更新的阻塞
以前一个winform的项目,数据量不会比你的少,但是更新没有你这个这么频繁
就是这样搞的,没出现过什么问题
嗯 这个非常好,我试试。
只有实际分析查询、更新特点,才会有正确的设计及改善办法。。笼统的问题要找明确的答案,不靠谱
2KW在这个时代不算是大数据或大表了,在十年前能算
引用 6 楼 TangKai_java 的回复:
Quote: 引用 1 楼 yupeigu 的回复:
要加快查询的速度,可以建立1个索引,注意是1个,对于你这个频繁的dml语句的表,索引是越少越好。
但是为了加快查询,又必须要建立索引,可以根据你的过滤条件,来建立索引,比如:select * from tb where xxx = 123
那么就是:create index idx_tb_xxx on tb(xxx)
主要是里面有用到复杂查询,头疼中。。。
复杂的查询没关系的,关键是通过索引来加快查询的速度。
我原来的公司主要的业务表,2亿条数据,查询一个月的数据,进行分组求和,基本上就几秒,查询非常复杂,几百行的代码,但是建立了索引,就非常快
引用 9 楼 yupeigu 的回复:
Quote: 引用 6 楼 TangKai_java 的回复:
Quote: 引用 1 楼 yupeigu 的回复:
要加快查询的速度,可以建立1个索引,注意是1个,对于你这个频繁的dml语句的表,索引是越少越好。
但是为了加快查询,又必须要建立索引,可以根据你的过滤条件,来建立索引,比如:select * from tb where xxx = 123
那么就是:create index idx_tb_xxx on tb(xxx)
主要是里面有用到复杂查询,头疼中。。。
复杂的查询没关系的,关键是通过索引来加快查询的速度。
我原来的公司主要的业务表,2亿条数据,查询一个月的数据,进行分组求和,基本上就几秒,查询非常复杂,几百行的代码,但是建立了索引,就非常快
用索引理论上是没问题的,但是还有每天的更新频率非常高,索引一多,更新效率就直线下降了,有没有一个中和点的方案?
引用 10 楼 TangKai_java 的回复:
Quote: 引用 9 楼 yupeigu 的回复:
Quote: 引用 6 楼 TangKai_java 的回复:
Quote: 引用 1 楼 yupeigu 的回复:
要加快查询的速度,可以建立1个索引,注意是1个,对于你这个频繁的dml语句的表,索引是越少越好。
但是为了加快查询,又必须要建立索引,可以根据你的过滤条件,来建立索引,比如:select * from tb where xxx = 123
那么就是:create index idx_tb_xxx on tb(xxx)
主要是里面有用到复杂查询,头疼中。。。
复杂的查询没关系的,关键是通过索引来加快查询的速度。
我原来的公司主要的业务表,2亿条数据,查询一个月的数据,进行分组求和,基本上就几秒,查询非常复杂,几百行的代码,但是建立了索引,就非常快
用索引理论上是没问题的,但是还有每天的更新频率非常高,索引一多,更新效率就直线下降了,有没有一个中和点的方案?
这个现在有几个索引呢?
另外,数据的查询是会跨多个月,还是基本上就是一个月的查询呢?
如果是只查询一个月的,可以考虑建立分区索引,如果是跨多个月,那么考虑建立全局索引。
我感觉是否可以将表拆成两个表呢?
频繁更新的字段单独拿出来,那么更新对于查询复杂表的索引影响就小了。
但是这样肯定会改程序。
分批操作是王道
引用 11 楼 yupeigu 的回复:
Quote: 引用 10 楼 TangKai_java 的回复:
Quote: 引用 9 楼 yupeigu 的回复:
Quote: 引用 6 楼 TangKai_java 的回复:
Quote: 引用 1 楼 yupeigu 的回复:
要加快查询的速度,可以建立1个索引,注意是1个,对于你这个频繁的dml语句的表,索引是越少越好。
但是为了加快查询,又必须要建立索引,可以根据你的过滤条件,来建立索引,比如:select * from tb where xxx = 123
那么就是:create index idx_tb_xxx on tb(xxx)
主要是里面有用到复杂查询,头疼中。。。
复杂的查询没关系的,关键是通过索引来加快查询的速度。
我原来的公司主要的业务表,2亿条数据,查询一个月的数据,进行分组求和,基本上就几秒,查询非常复杂,几百行的代码,但是建立了索引,就非常快
用索引理论上是没问题的,但是还有每天的更新频率非常高,索引一多,更新效率就直线下降了,有没有一个中和点的方案?
这个现在有几个索引呢?
另外,数据的查询是会跨多个月,还是基本上就是一个月的查询呢?
如果是只查询一个月的,可以考虑建立分区索引,如果是跨多个月,那么考虑建立全局索引。
有每天晚上的统计和近3个月的统计是要跨月的,现在已经做了分区了,按月进行分区的,但是效果不是很明显。最头大的就是功能上有一些汇总信息是要跨月的,不知道怎么处理才好!
引用 14 楼 TangKai_java 的回复:
Quote: 引用 11 楼 yupeigu 的回复:
Quote: 引用 10 楼 TangKai_java 的回复:
Quote: 引用 9 楼 yupeigu 的回复:
Quote: 引用 6 楼 TangKai_java 的回复:
Quote: 引用 1 楼 yupeigu 的回复:
要加快查询的速度,可以建立1个索引,注意是1个,对于你这个频繁的dml语句的表,索引是越少越好。
但是为了加快查询,又必须要建立索引,可以根据你的过滤条件,来建立索引,比如:select * from tb where xxx = 123
那么就是:create index idx_tb_xxx on tb(xxx)
主要是里面有用到复杂查询,头疼中。。。
复杂的查询没关系的,关键是通过索引来加快查询的速度。
我原来的公司主要的业务表,2亿条数据,查询一个月的数据,进行分组求和,基本上就几秒,查询非常复杂,几百行的代码,但是建立了索引,就非常快
用索引理论上是没问题的,但是还有每天的更新频率非常高,索引一多,更新效率就直线下降了,有没有一个中和点的方案?
这个现在有几个索引呢?
另外,数据的查询是会跨多个月,还是基本上就是一个月的查询呢?
如果是只查询一个月的,可以考虑建立分区索引,如果是跨多个月,那么考虑建立全局索引。
有每天晚上的统计和近3个月的统计是要跨月的,现在已经做了分区了,按月进行分区的,但是效果不是很明显。最头大的就是功能上有一些汇总信息是要跨月的,不知道怎么处理才好!
跨月的也没关系。
对了,表做了分区后,还建了索引不
其它技术资料
如果您喜欢IT行业或者对IT行业感兴趣,想开拓技术视野,欢迎加入本站官方QQ群:,在群里认识新朋友和交流技术^_^
Powered by && & 2013 &&&只需一步,快速开始
让数据和用户服务于你的运营
|原作者: 干田|来自: SmallTalkCN
摘要: 我们今天主要讲的是一个运营数据,或者叫数据运营。现在做移动互联网,无论是做社交的也好,做内容向的也好,他就是不跟别人说我们是用数据来分析用户的行为,以此迅速占领用户。
大家好,我是来自萌义网络的干田。以前我上台的时候,是这样跟大家说的:“大家好,我是干田,干部的干,种田的田。”每次说完之后,下面就跟现在这样。既没有掌声,也没有微笑。(台下掌声+欢笑)先不要鼓掌。后来我换了一个方式。现在做二次元产品,就换了一个萌萌哒的方式:“hi,大家好!我叫干田,饼干的干,田园的田”(语气和肢体语言改变。)【如何真正有效利用运营数据及用户反馈来提升产品】——这是一个很啰嗦的话,其实可以简单一点说。那按照惯例我先做个自我介绍:我是2006年入行的,现在开始混了第十年了,大家看我沧桑的脸,以及萌萌哒的说话方式,也不是很协调。本来就是一只猴子,后来变成一只狗,现在终于做了一回人。简单就是这么个样子。是这样的,我们今天主要讲的是一个运营数据,或者叫数据运营。现在做移动互联网,无论是做社交的也好,做内容向的也好,他就是不跟别人说我们是用数据来分析用户的行为,以此迅速占领用户。不这样说他都不好意思。都说大数据,在做大数据以前,我们有一些基本的误区要跟大家先说明一下。什么意思呢,会有两种很有奇怪的观点:1. 什么都要靠数据去支撑。比如我们把按钮从左边换到右边,从红色换成黄色。这个东西一定要有什么数据分析团队、数据分析师、产品经理在哪儿反复打磨。最后跟我们说一句,按钮从以前的100像素换到了105像素。这是很无聊的一件事情,但是这个要用数据去验证,你知道吗?2. 秉承数据无用论。就是说,数据有什么用呢?还不如我经验来的有用。这两种观点,基本上都是错的。数据量多真的有用吗?数据量多不一定有用。这是我在上一家公司做了三年以后得出的一个非常沉痛的教训。数据太多并没有什么卵用,数据要有用,他一定要有关联、有联系。不然,白存着那些每天几十个G的那些数据,导又导不出来,联系又没法联系,形成一个个,我称之为孤岛数据(z这样的东西)。并没有什么用的。孤岛数据只能读出来片面的现象,他连一个结论都读不出来,所以你的技术团队高兴怎么做就怎么做。要以结果为导向,以目标为出发。他跟技术其实没有太多的关系。你的用户量很少,数据不多,他没关系的。后面我会给大家举一些比较有意思的例子。在线调查还有一种是这样,这个是在公司里,市场运营还有数据运营,他们经常使用的一种手法,叫做在线调查。我们假模假样的做一个东西,我们新版发布了,我们想收集一下用户的需求。咱们的产品团队里面一般会有一个产品助理,去出一个在线问卷调查,大概有一百个问题。完了,产品经理说,一百个太多了,我们五十个。上报到总监,总监说五十个太多了,三十个。上报到老板那里,老板说,三十个也太多了,十个吧。然后假模假样的出了一份十个问题的问卷调查,说我们收集到了一万分的用户调查报告,我给你做成曲线图、饼图、折叠图。这些东西还好我没有做过,都是别人做。这些东西有用吗?我明确告诉大家,这个东西没有用。现在没用,以后也没用,以后就不要做了。为什么呢?是这样的,首先问卷调查,他是一个很古老的行业。她有一个非常严谨的一些方法。问卷调查最有用的地方,是在前期把用户筛选掉。这是问卷调查最有用的地方。比如说我可以Push到五万个人,问卷调查是把五万个人里面四万九千五百个人删掉他,取消掉他。我只要那五百个非常有用,非常精准,非常符合我的目标用户的那五百个人就够了。所以不是说越多越好,那都是一些垃圾数据。你从一开始,对用户没有过滤,你这个问卷调查就是垃圾。而且,这种情况下,你还把你本来想问的那一百个问题,给压缩成了十个问题。这十个问题还没有什么质量。新版本你喜不喜欢,A喜欢,B不喜欢。这问题你问他干嘛呢?知识误区:还有一个,我称之为知识误区。我们但凡有一点机会,都会去接触一些海量的数据。通过各种各样的途径,通过一些统计学的方法,包括归纳、总结、折线图、饼图、曲线图。就是说,这些东西有用吗?有用的,起辅助作用。前提是所谓用到的简单或者复杂的数据方法。你要正确的认知,举个例子。大家都知道平均数吧,平均数有多少种?有算数平均数,有几何平均数。他们有什么用?在什么场合下用什么样的平均数,去做一个对我们整个的格局、整个的用户群的一个调查?你并不知道。第二个,平均数最大的问题就是,我有101个用户,这100个用户身高只有1米,有一个用户身高有100米。你说我们平均出来的这个平均数有用吗?半毛钱卵用没有。所以这个就是平均数最大的问题所在。所以什么意思呢?我们大家使用数学方法一定要知道这个方法,适用于什么场合,会有什么限制。当然了忽悠老板除外,忽悠老板什么方法都是可以的。统计相关性:还有一个问题是,统计相关性。这个问题是,统计学一直没有解决的问题。就是统计学试图用统计相关性,来把真实的相关性给取消掉。什么意思?我举个例子,比如今天有六十个人,来听我的吹牛逼。然后外面天空是放晴的。我们做市场调查,在此时此刻,全中国一共有两千场,大概六十个人参加的,有一个工作十年左右的人在这边吹牛逼,天空是放晴的。什么叫统计相关性?即,以后中国大陆有两千场左右,下午三点多的,六十个人左右的,这样一个吹牛逼活动,天空一定是放晴的。你认为这合理吗?胡说八道对吧?但是这个就是统计相关性。就是我们通过大量的定量的数据,我们发现了一个现象A,同时当A现象发生的时候,一定会出现现象B。我们就认为,当现象A发生的时候,一定会出现现象B,这就是统计相关性。各位,在工作当中,你们通过统计的方式,去得出两个结论的时候。如果因果关系,你想的不是太明白的话,你用你的直觉去想象一下,A跟B到底有没有关系。当然了,骗老板,你无所谓的。骗老板,你就告诉他,看到了吗,这是100万人的市场调查调查出来的。当六十个人参加吹牛逼的时候,天空外一定是放晴的。自己心里要清楚,不一定是这样的。总结一下:熟知自身业务:就是说,当我们使用数据去提升产品提升运营的时候,我们其实最关心的,是我们对这个业务有多了解。我们要不停的,去使用我们的产品,了解我们的业务。人虽然是做不到百分之百的了解,但是这个时候,数据就有用了。举个例子,比如说在我的上一家公司里面,我们一共有多少个分类,我们一共有二十个分类。但我自己只喜欢一个分类。当我天天用,天天用的时候,我会对这个业务有一个认知,但是仅限于这个分类。我能不能把这个想法,由此及彼,推广到那二十个分类里面呢?这个时候,你就需要有数据了。当你的结论反过来可以用数据去验证的时候,并且每个分类都可以这样的时候。那么你认为你对这个分类业务的认知,可以提升到整个产品的业务认知。但这里也会打一个问号。始终要保持着不断地质疑,不断地求真的这么一个过程。因为你只喜欢这一块业务,当其他的业务跟你没有完全相关的时候,你没有办法判断。这个时候数据才有用。数据一定要有关联:什么叫有关联呢?我们之前是做一个内容向的,所有的数据要可以围绕用户 进行展开。比如说这个人他听了一个声音。这个人他发了一个评论,这个人他说了一个声音,这个人分享了一个声音。我们把这些海量数据记下来的时候,一定要带上用户的唯一标识。这样我们的数据才可以串联起来。当然了,我们忽悠老板的时候除外。给他折线图、曲线图、饼图,告诉他我们每天有多少的分享量、有多少的回流量、每天有多少声音在发布,这种宏观的就够了。但是你作为一个产品,你要很清楚:如果说我现在,要把活跃用户的收听喜好导出来行不行?如果我针对某一部分特定的用户群,我把他们的分享行为导出来行不行?都可以。数据一定要有关联,不然成为了数据孤岛,没有太大的作用。数据孤岛:再给大家举个例子,我在上一家公司,每天抽样发现活跃最高的数据是什么呢?是黄色信息。当然每天分享的最大的数据是什么呢?依然是黄色信息。这就是数据孤岛。当你得出这样的结论的时候,你可以帮助你的产品运营吗?能帮助的就是运营赶紧删嘛。那么剩下的呢?没有用了。不知道是谁发的,也不知道回流从哪里来,这样的数据有用吗?没用。你要把他串联在一起。最后我们把它定位在一小撮经常在我们产品里面发色情信息,并且大量传播的人,而且地点定位非常精准。这时候干么呢?上报公安局。数据辅助资源分配:把这部分信息清理掉以后,我们再看第二部分,什么样的信息分类分享是最多的呢?有真人类脱口秀节目,分享的以及回流的是最大的。这种结论,有什么用呢?还是处于你对这个产品里面业务的认知。这个产品里面,收听量第一高的是什么,是小说。但是分享量、活跃量最高的却是真人类脱口秀段子。这样你的运营就有侧重点,这样你的公司的资源投放就有侧重点。我们把人力投入在真人这一块,把所有的钱投入在买版权。因为我们只有有限的人力和有限的钱。如果说我们用数据孤岛来看数据,收听的最高的是有声小说,我们把所有的人力和钱都投入在买版权上。对吧,没有错啊?因为小说一天的收听量大于50%啊!这个结论没有错吧,因为它占据一半以上的收听量,所以公司应该把人力、物力、精力全部投入到这一块。这个结论有没有错?没有错。这就是一个数据孤岛告诉你的,一个简单化的结论告诉你的。但是分享的数据加入进来,彼此可以串联以后,我们发现娱乐类的、脱口秀的,它有极强的社交传播性。而这种东西,你靠简简单单的钱买钱卖,是搞不定的。所以把人投到这里去。而简单的买版权,在传统行业已经做了不知道几十年上百年了,简单的用钱去处理掉。这个时候数据才有用。避免滥用技术:然后是这样子,所有的技术在这个时候有非常重要的作用,他是帮我们去实现的。但是我们要避免的是什么呢?滥用技术。比如说像,这个地方所说的,Google用什么我们用什么,Facebook用什么我们用什么。那我是一个技术人员,你是一个ceo,你有权质疑我吗?你没有权利质疑我。拜托大哥你懂不懂,我们用的都是跟Google的技术是一样的,是一样一样一样的!那Google能读出来,那我们读不出来,那我们在学习嘛。你等一等,我们在学习。不是这个样子的。就是我允许你用心的技术区存储,去运算,但结果要能够反馈给业务部门,给产品部门。如果你只把数据存进去,读不出来。或者我们需要报表一些维度你做不出来。对不起,不要用了。硬件投入不是那么重要,我可以出钱,但是要你这个部门何用呢?既然你跟Google用的一样一样的,那我去Google招一个人进来不就行了吗?就是这个意思。最后这两个,是我昨天加上去的。人月神话和任天堂。是我对最近几年的一个思考。人月神话:人月神话是一个风靡了几年的书,它里面讲了一个故事。就是IBM的一群疯狂的科学家,他们去做了一台所谓的世界上最牛逼的个人电脑,打算推向市场。但是他们一再的Delay,一再的Delay,他们失去了市场先机,最后根本就没卖掉。因为什么呢?因为他们都是一帮疯狂的科学家。他们追求的是最高效的性能,最牛逼的体验,最牛逼的功能,不断地叠加,不断的叠加,最后导致这个个人电脑不能出来。所以我们做数据运营的时候也要知道,我们有个最初步的知识,我们这个产品有一个相当规模的用户。我们有大量的数据,我们是不是要用一些很先进的技术呢?很先进的技术是能帮我们解决很多问题,但是hold不住的时候,还不如用一些最原始的方式。对于运营和产品来说,我们可以妥协的是,我们的报表可以等一下在看到,甚至可以等两天。但我不能看不到,你不要跟我说,你这个技术可以做到实时性很强,五分钟、十分钟。别人做得到,但是你做不到,那就是一个死,并没有什么用。任天堂:那我最近看的一两本,跟任天堂发展有关系的。任天堂他是一个很有意思的公司,他们在做产品的时候,他们从来没有用过新的技术,从来没有用过。为数不多的,一两次用新技术的产品都是失败的。所以就是说,这个公司有一个很有意思的理念,就是只用老的技术,去做新的产品。始终是用市面上成熟的技术,搞得定的,公司内部可以hold的住的,去做我们下一个阶段,我们的战略发展方向上需要做的产品。这个是成为,我现在和别人一起创业的时候,我很重要的一个思想,就是我们有节制的去使用一些新技术。主要去使用老的技术,去做一个新的产品。下面我再给大家说一些小故事,这些小故事是我在之前工作之中经历过的事情,我觉得有必要和大家分享。第一个故事是关于用户抽样调查的故事。虽然我很反感这个在线调研技术收集了一两万数据,然后我们可怜的产品助理在哪儿通宵了一个晚上整理好。虽然我很反感这个东西,但是我们依然会做市场调查。而我们的调查不是主动的,给大家发一些问卷。我们是通过一些比较不太要脸的技术手段,是主动去获取这些数据。做的第一步是,我们的用户筛选。我的上一家公司,在发展的早期,我们的核心用户是什么?我们做了这样一件事情。先挖你的使用行为,如果说你的使用长达三十天,或者三十天以上的,并且你在三十天内的打开的天数超过二十天,你只有十天或者十天以内没用我们的产品的,我把这类用户叫做活跃用户。我不需要你去告诉我,你是不是活跃用户,我只看你的使用记录。然后我们从这些用户里面去挑,哪些是新浪用户。为什么要挑新浪用户呢?我们有一个第三方登录系统,他可以使用新浪登陆。通常情况下,一般都不会去修改昵称,你在新浪上叫张三,你在我们产品上一般也会叫张三。这样我们就可以反查到新浪上,你的账户信息。我们这样做反查。通过技术手段抓到这样一些新浪用户以后,我们去读取你在新浪上的行为,你在新浪上是不是活跃用户,你活跃了多久,你在上面有没有一些个人信息,尤其是男女。你在新浪上的性别,和在我们平台上的是不是一样,我们又淘汰掉10%的用户。你在新浪上所有的个人签名、公司状态成为我们对你这些用户画像的最后依据。因为我们相信,你在新浪上不会胡说八道的,尤其是你还认证了一下。虽然这不是什么正大光明的事情,但我们确实这样做了。我们认为这不算是窃取用户隐私,因为你就写在新浪上面。所有人都可以看得到,而我们就是所有人,我们只不过通过程序的手段去看了一下。如果我们用人力,大概每天每人可以看100人,如果我们用程序的话,我们几千上万的用户都可以过滤一遍。我们为什么做这样一件事情?我们想证明一件事情,很多的用户信息对于用户画像来说是没有帮助的。比如,我们认为我们这款产品,只适合白领用。但是除了白领以后,我这样的很有脑洞的产品经理会补充一些信息上去,像二十到三十岁,在公司上班的,可能是男性可能是女性,如果是女性可能是大波浪啊这种。这些东西都是没有用的。如果你是一个做内容的产品,这些信息统统都是没有用的。直到道若干年以后,我认识了一个统计学的博士,他告诉我,这些信息统统都是统计学属性。对于你们做内容的来说,统计学属性,比如一些男女啊、上海的还是黑龙江的,这个没有关系。没有关系的一个特别的原因就是调查的人群,这些属性,和你产品内容的属性是不是有直接的关联。我是一个做大姨妈巾售卖的一个电商。那我在做售卖的时候,性别很重要,男可以忽略掉,因为女是一定要用到,男是不一定要用的。这个时候,统计学属性就有用了,因为跟我的内容是相关的。而我的上一家公司,内容是泛的,他跟性别有什么关系呢?可能有些有关系,比如儿童类的,如果你是单身,可能这个内容对你没用,如果你是孩子他爹,可能有用。其他根本没用。自以为是的用户画像并不准确。我们还发现一个比较有意思的事情就是,有一个主播,他是讲金融类的,怎么样挖掘市场行情啊、分析市场形势啊,这种节目,你让任何一个人去分析,产品经理给你画用户画像,他一定给你画:收听这类节目的人,有两类,一类是211、985,甚至于是北美排名Top10的学生,可能是硕士;第二类是投行里面咨询类的,30岁左右的,再投行内有一定经验的,需要各种各样信息区分析自己所处行业的投资的。诸如此类的。用户也是投资类的。然而并不是这样。我们挖掘到,很多用户听这个,绝大部分都不是这个行业的,比如金融类的,我们最后发现福建省,有个普通话也说不清楚的这么一个人,他是某个村的村干部,他就天天听、日日听,他希望去扭转自己的人生。还在新浪微博上经常分享我们的产品,说改变人生,从听XXX开始。所以什么意思呢?你与其去关心你的用户是做什么的,他们喜欢什么,还不如去关心这个用户在我的平台上喜欢听什么。他就是金融类的收听用户,如果有交集,我们再去分析他的交集。至于这个人是男是女,你只要记录号,如果没有也就算了。就是一切是以兴趣爱好为出发的,如果是一个做内容向的,其他并没有什么用。第二个是,不断骗取用户行为。我们现在在做的一款产品。现在还没有做出来,不方便给大家看。我们来简单给大家看一下功能。二选一的,他会在两个里面选一个。他每天有100张图,我会随即在里面抽两张,抽两张,抽两张,抽两张图。点一张,点一张,点一张,点一张,后来我发现,前期的用户虽然不是很多,也就20-30个。他们每天会在这个【点一个点一个】里面浪费五分钟。后来我自己掐着秒表算了一下,你每次随机两张出来,差不多全部看完,差不多是五分钟。然后第二天,我做了一件很无聊的事情。我把100张变成了200张。点一张,点一张,点一张。诶,每天用户平均使用的时间到了8-9分钟。我们要不要过一段时间,再改成五百张。然后我们的技术,跟我说,可以是可以的,不过你准备的图不多了,你要不要再去准备一些。然后我说,缓一缓,缓一缓。什么意思?就是说,现在你这个功能就有用了。在你最引以为自豪的功能上,你的用户会让你发现,他们愿意投入时间去使用。然后你从这个上面你发现,用户在你的产品上面投入的大量时间,就是在于你的内容量有多少的时候。很简单,我增加我的内容量,我的用户会不会有大量的增长(根据上下文,这里应该说的是用户的使用时长)。最终我一定会测试100张、200张、500张、1000张,最终找到用户的那个临界点。因为这确实不是无限上升的,因为我估计用户愿意在这个功能上投入的时间到15分钟应该是极限了。但这是我想象的,我杜撰的。那我不停的往上加,一直加到按个时间趋于平稳了之后,然后我再停。因为就五分钟来说,确实有一点短,也不是我所期望的,也不是投资人期待的实情。用户只用五分钟,投资肯定会看,你这个产品五分钟、八分钟、十二分钟,他一定会到达一个临界点。这个时候你最需要数据去说话。就是你通过改变你的业务细微的方式,来发现你的调整,有没有使得你的运营数据成为一个正态向上的趋势,这才是改进的目的。不然你经过激烈的辩论,把你的按钮从100像素,调整为102像素,我勒个去,像我这个2k屏幕的二手机,你增加两个像素,我连看都看不出来。你还跟我说美观,我还是一个有一点色弱的人。第三个故事是这样的,是关于我们的数据,到底可以细节到什么样的程度,这个细节的程度一定是有用的。“搞清楚自身用户行为,与渠道斗智斗勇。”这是什么意思呢?在安卓推广的时候,有部分渠道商的量是假量。那我们如何跟他们斗智斗勇呢?现在第一类的处理方式是这样的:我们会先给你这个渠道打上编号,会在安卓的包里加上第三方的统计APK。我们会统计你这个渠道带来的量,是不是真的OK。你相信我,也没什么卵用。他可以刷量,他不仅可以刷一天,他可以刷一个星期,一个月。甚至于他可以给你提供这样的服务,在你融资前的两个月,他可以帮你刷,刷到你们下一轮融资签完合同为止。也就是说这种简单的,道高一尺魔高一丈的,他肯定有方法。什么是他们做不了的呢?用程序写的东西,他一定是呈现一种很规律的方式在运行的,如果你的产品里的业务呈现了一种很规律的行为,那这些量一定是假量。还有一种就更好,如果你的产品里面的用户行为是无规律的,更好抓了。我举个例子,我们以前是怎么抓的呢?我们都有注册吧?我们把注册提取出来,每个渠道,每天都会有一个注册量,这个是跟渠道挂钩的。那用户会有收听量吧?ok。每个渠道,每天的收听量,尤其是收听次数和收听时长。我们会有一个统一的标准,比如百度、小米,我们每天的新增用户,会有50%的概率转化为注册用户。那么一旦你的渠道他作假了,因为他们可能没有大量的机器,大量的程序去做这个环节。所以你的注册转化率一定是低的。第二种,他有,你相信我,写这种东西的工程师,一定是按照一定的时间规律去注册用户的。所以你对这个数据怀疑的时候,你可以去算的,他的注册行为。比如我们上次抓到一个渠道,就是每隔三秒钟,他给你注册一个用户,你就会发现你后台的用户,零点零三分零三秒,零点零三分零六秒。肯定是这样。好,我一定不会付给你。然后你的渠道代理方,你一定要问清楚,他手底下一共有多少个渠道。如果你有二十个包,我就给你二十个包,我会一个一个去check,我跟你算总账。你跟我说什么都没有用,那是你跟你下面的二十个渠道处理的事情。我认为这个渠道有十个渠道的量是真量,对不起,我只付给你十个渠道的钱,谁让你做假。我愿意付给你十个渠道的钱,已经是很给你面子了,要不然一分钱都不会给你。所以方向上来说呢,应用市场的量是最好的,接下来是一些大APP,他自己到了上亿的规模,他也是一个渠道嘛。这样的渠道也很好,但是转化率会稍微低那么一点点。剩下来的拿下什么网盟、积分墙,还有那些渠道方不愿意说的。这种里面其实是有真量的,但是你要有个科学的方式去把他筛选出来,你就付那一部分真量的钱就可以了。第四个故事:流量变现。当我们的APP做到一定的量的时候,有一种方式就是流量变现,就是做广告。这种时候我们能想到的方式,一般都是一些很常见的方式,插入式广告,就是占据一个位置。那一定是这样吗?我们可以对我们的广告进行一些深度的内容化植入的一些方式。那你能想到什么方式?冠名是一种,口播是一种,软性化植入是一种,定制化服务又是一种。这些都是可以做的,而并不是简简单单的插一个屏。插屏的体验虽然不好,但是也不用于太过较真。他的不好,不是不好再用户体验上,而是不好再转化率上。一定会有用户去投诉,比如你这个流里面出现广告啦,我很反感啦。你相信我,这不是一个很大的问题,因为你是一家公司,我们对用户,并不收费,我们在适当的时候,露出一些广告,也是公司自身存在的需要。我们也不是一个很执着的产品,我是一个务实实用主义的人,所以我并不觉得这个对于用户体验有什么特别大的影响。但他有一个转化率的问题,转化率是不是好,是不是适合你的产品。这种就需要你去研究一下。就像我上一家公司,他也在流之中放入了插入式广告,但是转化率并不好。我觉得开屏次数,并不别人少,但是为什么转化率这么少?因为我们是一个闭屏使用的产品,我们大部分情况下,用户是在闭屏使用我们的产品那这种情况下呢,你的展示量是够了。但是由于你在长时间下是闭屏的,所以没有吸引到用户。不像我们当时友商的一个开屏,反复在哪里刷,所以反复可以看得到。这样的转化率就会高很多,得出这样的结论是因为你的数据吗?并不是因为你的数据,而是你对你的业务的理解。这个时候,你对你的老板说,算了,这个开屏插入式广告砍掉吧,因为转化率实在是低。这个跟用户体验没有关系,这个就是转化率低。那转化率低的情况下,我们适当的监控一下我们的用户嘛,不要让他看到。其实这样转化率低,就意味着他看不到,看得到,他不就点了嘛。第五个故事:数据是可以优化的。本着良心说,这个数据确实是可以优化的,这种有话对每一个人来说都是重要的。因为你的报表最终是要拿给投资人看,要给老板看,这是很重要的一个功能,哪怕你只提高1%,再不做假的情况下,是不是可以变更的。比如说,我之前那家公司,我们一直跟人家鼓吹,我们的安卓单用户成本只有两块五。当我每次跟人鼓吹我们两块五的时候,就有人抬起头来跟我说,你怎么做到两块五的。报表上是两块五,但是实际上并不是两块五,要稍微高那么一点。那这个两块五是给谁看的呢?是给投资人看的,给老板看的,我们在没有作假的情况下,我们把成本压到了两块五。当中的细节一概不便透露。但是就是说,你按照这个方式去理解,不止两块五,但是我们也并没有那么高。像现在跟我说一个安卓用户的成本高达十块,我明确告诉你,我们按照你那个方法算,也没到那个钱。确实有道理,只不过我们通过一种财务换算模式,把这个压到了两块五。什么意思?当你跟老板说的时候,你要反复强调的,成本并不是这么多。后来你的老板天天出去吹牛,天天出去吹牛,他自己就信了。所以你要反复的Push他,并不是这个成本。这个就跟PR稿一样的,我们的PR稿上有一个用户总量,我们的PR部门有一个用户增长速度。你一定要清楚,这个是出去吹牛逼的。所有的事情都是可以美化的。全都是可以有方法的。很多时候我们的产品做一个功能的时候,做一个感应的时候,其实你并不需要教科书式的,因为某个数据是这样,所以我们这样做。看数据,有想法,由此及彼的这个过程,融入到每一天里面。你所有的数据都没有用处,为什么?数据告诉你的是一个结果,是一个现象。而他反推回去的理由,可以千奇百怪。像我这样能吹牛逼的人,我说她是黑的,他一定是黑的,他不可能是白的。我们对业务一定要有自己的理解。这个理解一定是不能有太大出入的。有的时候跟着你的感觉走,你自信,是因为你把看数据融入到了每一天的工作中。不是什么,这一天我们又到数据分析日了,市场部的Peter给我们展示一下,那个Johnson给我们展示一下。不是这样,不是这个感觉,如果你在一个产品里,感觉这个东西是有问题的,相信我,这个一定是有问题的。只有当你感觉这个东西是没问题的时候,他才有可能是没问题的。那么周会、月会的时候,那个是做给老板看的,我们这个月的用户环比增长了多少,我们的市场推广费用也环比增长了多少。但是用户除下来,我们的价格便宜了五分钱。这个是开会的时候说的,这个不是工作。再给大家讲得再细一点。开屏广告:这个案例是这个样子的,开屏知道吧,就是我们APP启动的时候,会有一个开屏。很多APP会在这个开屏加一张广告图。这个就跟广告商收费,收费是CPM的,这个大家都懂吧。这个时候就遇到了一个很有意思的问题。理论上来说,是不是有多少人启动过,就会有多少展示量。这个是毫无悬念的。有些APP他是会退到后台的,就是停在内存里。我们再唤醒一下,这个时候会进入启动页吗?不会的。你让技术再走一遍系统流程的话,技术会骂:“用户之前在这一页,应用退到后台在打开,就应该还是这一页嘛。怎么会要重新启动嘛?!对不对?”怎么优化?我们为什么要优化?因为我们的销售人员,每天拿着我们的CPM的展示量他是一个百万级的单位,出去牛逼不好吹。这个时候,产品需要结合技术,把这个百万级变成千万级。就是我们离千万已经很近了,但是短时间内提不高了,新增用户就这么些。有增加,但是由于你没有爆款过,所以你不可能在短时间内,把它变成千万级,怎么做?最后我们捉摸了一下。因为我们这个产品是一个听的产品,当你听完一段之后,你要把它重新唤醒一下。当用户退到后台,停留了一段时间以后,在启动的时候,我们给你强插了一个功能,他给你展示一下,然后再退掉,这样呢再回到之前那个地方。这样是不是用户体验也OK?当你这个程序退到后台,很久很久以后,你在启动出现这个页面,你也不会感到很违和。时间是服务端可以调整的。开始我们调了个三十分钟,我们觉得应该是可以了。三十分钟实拍脑袋出来的,反正你先试一试。染完后我们发现这个数据啪一下突破到四位数了(指千万级)。然后我们的销售很高兴,这个是很牛逼的嘛,我们是千万级的呦,你们要投广告要按照千万级来投呦!那个你感觉完全不一样,因为他已经是千万级的。后来就说,要不然我们再把时间压一下吧,后来我们就压到十五分钟。就那个量是按照几何数量增长的,那个量就增长的非常非常高,后来我们就一直在那儿琢磨。他为什么到15分钟了,他的量就突然增长起来了。后来我们的运营小伙伴就给我们补了一刀。我们也把我们的数据拿给运营小伙伴去看,运营编了一个很牛逼的故事,叫做完播率。就是说,用户听这个声音的时候,他听完了整个的90%,我们认为这个声音是听完了。运营拿这个数据去指导这个主播,你做的这个节目是不是想收听量往上涨,你现在完播率只有50%-60%,为什么完播率这么低呢?因为你节目做的太长了。一做做一个小时,能不能缩短到15分钟以内。听明白了没有?我们所有的热门主播都把节目时间调整到15分钟以内了,所以绝大部分节目,他在听完这个15分钟之后,他会弹一下这个广告。然后投诉就来了,你知道吗?后来我们就说,算了,还是放在30分钟吧。我们的销售可以出去吹牛逼就可以了,收益还挺高的。就是说,你把它切换到15分钟,只不过把它从这个千万级切换到了另外一个千万级,单价还是不能谈嘛。但是你这个影响力不太好,所以我们还是切回来。在这个里面,数据给了我们什么意义?数据给了我们运营,让他们去指导主播做那种短小精悍类的节目。然后我们使用了一个叫统计相关性原则,15分钟以内的节目完播率非常非常高,所以我们建议那些大牌主播、热门主播,或者向发展的主播,你的节目压缩一下,或者你你做成“第一集、第二集、第三集””上中下“这样子的。产品利用数据做了一件什么样的事情呢?不断试探用户的底线在哪里?因为这个跟我们公司的发展息息相关。你的量低,并不是因为你的数据不好,是因为你没有优化过,使得你的销售团队在出去的时候底气不是非常的足,或者说手上的弹药不是非常的充分。所以我们适当的调整了一下,对用户有伤害吗?我们这种投机取巧,对用户并没有特别大的伤害。比如说我把产品退到后台30分钟以后,你再打开,我把我这个APP的启动图给你展示了3-5秒。伤害你了吗?伤害你了,你就别玩了嘛。没办法的呀。100个人里头,如果有2个人投诉这件事,你要去掉吗?不,对公司来说,有价值的是剩下的那98个人,你不用就不用了,不用拉到吧。我们把所有精力都放在喜欢我们产品,愿意用我们产品的用户身上。我们会本着一些有良心的做法,就放在30分钟,不会再低了,低了确实不好。我们本身也都是有职业操守的,我们也不会去用这个方式去欺负用户,毕竟我们自己也是用户嘛。但是我们毕竟是个公司,我们在普通用户上面没有收费,那你用户也必须有一些牺牲,只要你不是特别特别反感。那2%的反感投诉,并不是特别的重要,谢谢你,赶紧走吧。我的精力是服务98%的人,就是这个样子。焦点轮播图第二个故事是起源一个争吵,我们之前那个产品的主页上会有一个跑马灯的图嘛,那不是五张就是六张。常年被运营霸占着,只能上运营图,其他的不能上。后来销售部门和市场商务合作部门,他们也需要谈一些资源嘛。那么所谓谈资源,成本最小的是不花钱合作。我们最好是不要花钱,因为你一旦开了这个口子,你商务合作有第一笔是花钱的,以后这个方向上基本就都是花钱的了。所以你能不花钱就不要花钱。不花钱的话,大家就资源调配嘛,你给人家展示一下,互惠互利嘛。你也有工作,你也有kpi吗,大家都这样做吗。那你运营常年霸占了六张图,不肯妥协。运营就说,这个是六次对于我运营内容的强曝光,你其他部门的人用掉我一张,凭什么啊?我的曝光就少了,那你的死活关我什么事啊?虽然他没有这么说,我们团队还是比较和谐的,但是就这样吗。人家是不会肯的。所以你一定要想一个方式,把这两部分平衡起来,所以怎么办呢?那么就看看数据咯,一共六页,每一页的展示量是怎么样的?转化率是怎么样的?曝光量是怎么样的?最后我们是先说服运营,跟他们说,其实你到第六张的时候,已经没什么量了,不如你把那一页拿出来。我们就给他看数据,最主要的是第一页第二页,那在你的实际运营过程中,你的第五页第六页,一般是老的内容。都是层层往后推的吗,推到后面,你的量本来已经不好了。他会狡辩说,将来我人手多的时候,六页都是不一样的。不要紧,数据已经证明了,第六页不好。你能不能在适当的时候,把第六页放出来,然后我产品给你增加第七页。所以你们偶尔会在我的上一家公司的产品里面,会看到轮播图有七页。需要资源调配的部门,除了销售部门,还有商务部门。两个部门的排期冲突的时候,我们会临时增加第七页,为什么?最后的两页就是给他们做资源调配用的。你看你在我这里投广告,投了一些冠名,投了一些口播,然后我们配套的在页面启动的首页给你一个很显著的位置。你可以往后刷,往后刷他一般也能接受。因为你这个广告,我作为一个广告主,我要说服你,在不付钱的情况下,在我的APP里面占据显要位置,这不太可能。所以他也能认,虽然在后面,但其实他量也还是有的。各种各样的资源调配混搭在一起以后,广告主是可以接受的,内部的矛盾也就解决掉了。不然就是无限的解决下去。运营就是不肯,销售一定要投,产品这时候干嘛呢?让你们去吵吧,我是关注产品体验的,我这按钮增加两个像素,这才是我的工作。显然不是这个样子的。我们的轮播图细化到什么程度?iOS的曝光量、安卓的曝光量,对于注册用户、非注册用户的曝光量,他的转化率,统统都会有。这个东西它能帮助运营,我们还有一个24小时的展示量。运营你需要早上十点钟慌慌张张的跑来,上那个图吗?不需要,那个时候不是量最大的。你可以到晚上黄金时段之前上,那个时候量才是最大的。所以你们有一天的时间,可以去做。还可以作为你们KPI考核的方向,有那么多品类的内容,有那么多品类的方向,我们到底是哪些放在前面会比较好。你们每个小编、主编、责编,可以精选好的内容,择优推荐吗。虽然声音质量、配图是一个很关键的因素,但这个能量化。我这个责编说这个图好看,那个责编说他的图好看,图能说明问题,但是不能解决问题。那你报告说这个声音,他的完播率怎么样?因为你在这个位置,他的播放量不会非常非常低,那他的完播率怎么样?如果说完播率低,就说明你的图是好看的,但是这个内容不行,或者说这一类内容不太行。那么这个项目上,图是ok的,你的内容不行,你就要不断去改进、迭代。首页是推一个声音好?还是一个人好?还是一个专辑好?怎么判断?一样的,转化率!推人就是看他的关注量。专辑是我们第一个砍掉的,因为他是一个二次跳转,所以我们先把这个砍掉。那么无非就是人和声音。那么关注对我们有用吗?没用的,因为我们很多时候推的节目都是当红主播的节目。你比如说,推郭德纲,有意义吗?所以一般不太推人。那你推一个新人上去有用吗?对不起,你左小祖咒上去人都不认识的,没有用的。它是以内容说话的。所以最终最终,现在我们几乎是全部的时候,我们的跑马灯都是推内容。在无数的转化率考核下面,内容是最有用的,其他都没有什么用。这是在我们无数次数据考核下,得出来的结果。不然大家就拍脑袋吗,到底是图好看,还是内容好看,什么会吸引人的方面,纠结在这些细节方面。
上一篇:下一篇:
Powered by
鸟哥笔记 沪ICP备号-1}

我要回帖

更多关于 mysql 千万级数据优化 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信