欢迎各位阅读本篇文章,本篇文章讲述了教大家如何在sense 中计划任务,课课家教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦
看数据这种技能也是越练越熟,真有「数据 sense 」这种东西,经常看就会对数据更敏感,更容易发现数据中隐藏的信息。
刚入行的时候不懂怎么看数据,每天就是看着后台报表里的 UV 、 PV 涨了一点点/跌了一点点,然后就没有然后了。直到后来机缘巧合做了一段时间用户增长,渠道相关的工作,才慢慢学会怎么去看数据。
后来我反思为啥最早对着数据的时候整个人是懵的?想来想去最后觉得根本原因还是缺少了目标。不知道为什么看数据的时候,所有数据都是一个个孤立的数字,后来开始带着目标去看,去数据中找答案,慢慢就学着找数据之间的联系,找隐藏在数据表象下的信息。
在我看来,所有具体的目标概括起来就是两点: 找问题 , 找机会 。找现在的产品有没有
启用 safe-update 选项,避免没有 WHERE 条件的全表数据被修改;
在应用中尽量不直接DELETE删除数据,而是设置一个标志位就好了。需要真正删除时,交由DBA先备份后再物理删除,避免误操作删除全部数据。
还可以采用触发器来做一些辅助功能,比如防止黑客恶意篡改数据。
3. MySQL账号权限规则
业务帐号,权限最小化,坚决不允许DROP、TRUNCATE权限。
业务账号默认只授予普通的DML所需权限,也就是select、update、insert、delete、execute等几个权限,其余不给。
MySQL初始化后,先行删除无用账号,删除匿名test数据库
mysql> delete from mysql.user where user!='root' or host!='localhost'; flush privileges;
mysql> drop database test;
创建备份专用账号,只有SELECT权限,且只允许本机可登入。
设置MySQL账号的密码安全策略,包括长度、复杂性。
4. 关内有位员工的PC不慎中毒,结果导致内网数据被盗。
安全无小事,每个人都应铭记于心。在数据安全面前,可以适当牺牲一些便利性,当然也不能太过,否则可能得不偿失。
隐藏的问题,找设计的逻辑是不是符合用户行为,找有没有潜在机会帮产品再上一个台阶。
扯完目标进入正题,我平时经常需要关注数据大致有四类:
产品的运营数据,包括 规模数据 和 质量数据
产品核心场景的用户行为数据
新功能上线后的反馈数据
行业数据
其中适合每天看的主要是 运营数据 和 核心场景的行为数据 ; 反馈数据
启用 safe-update 选项,避免没有 WHERE 条件的全表数据被修改;
在应用中尽量不直接DELETE删除数据,而是设置一个标志位就好了。需要真正删除时,交由DBA先备份后再物理删除,避免误操作删除全部数据。
还可以采用触发器来做一些辅助功能,比如防止黑客恶意篡改数据。
3. MySQL账号权限规则
业务帐号,权限最小化,坚决不允许DROP、TRUNCATE权限。
业务账号默认只授予普通的DML所需权限,也就是select、update、insert、delete、execute等几个权限,其余不给。
MySQL初始化后,先行删除无用账号,删除匿名test数据库
mysql> delete from mysql.user where user!='root' or host!='localhost'; flush privileges;
mysql> drop database test;
创建备份专用账号,只有SELECT权限,且只允许本机可登入。
设置MySQL账号的密码安全策略,包括长度、复杂性。
4. 关于数据备份
记住, 做好数据全量备份是系统崩溃无法修复时的最后一概救命稻草 。
备份数据还可以用来做数据审计或是用于数据仓库的数据源拉取之用 。
一般来说,备份策略是这样的: 每天一次全备,并且定期对binlog做增备,或者直接利用binlog server机制将binlog传输到其他远程主机上 。有了全备+binlog,就可以按需恢复到任何时间点。
特别提醒:当采用xtrabackup的流式备份时,考虑采用加密传输,避免备份数据被恶意截取。
外网安全策略
#p#分页标题#e#
事实上,操作系统安及应用安全要比数据库自身的安全策略更重要。同理,应用程序及其所在的服务器端的系统安全也很重要,很多数据安全事件,都是通过代码漏洞入侵到应用服务器,再去探测数据库,最后成功拖库。
1. 操作系统安全建议
运行MySQL的Linux必须只运行在内部网络,不允许直接对公网暴露,实在有需要从公网连接的话,再通过跳板机做端口转发,并且如上面所述,要严格限制数据库账号权限级别。
系统账号都改成基于ssh key认证,不允许远程密码登入,且ssh key的算法、长度有要求以确保相对安全。这样就没有密码丢失的风险,除非个人的私钥被盗。
进一步的话,甚至可以对全部服务器启用PAM认证,做到账号的统一管理,也更方便、安全。
关闭不必要的系统服务,只开必须的进程,例如 mysqld、sshd、networking、crond、syslogd 等服务,其它的都关闭。
禁止root账号远程登录。
禁止用root账号启动mysqld等普通业务服务进程。
sshd服务的端口号建议修改成10000以上。
在不影响性能的前提下,尽可能启用对MySQL服务端口的防火墙策略(高并发时,采用iptables可能影响性能,建议改用ip route策略)。
GRUB必须设置密码,物理服务器的Idrac/imm/ilo等账号默认密码也要修改。
每个需要登入系统的员工,都使用每个人私有帐号,而不是使用公共账号。
应该启用系统层的操作审计,记录所有ssh日志,或利bash记录相应的操作命令并发送到远程服务器,然后进行相应的安全审计,及时发现不安全操作。
正确设置MySQL及其他数据库服务相关目录权限,不要全是755,一般750就够了。
可以考虑部署堡垒机,所有连接远程服务器都需要先通过堡垒机,堡垒机上就可以实现所有操作记录以及审计功能了。
脚本加密对安全性提升其实没太大帮助。对有经验的黑客来说,只要有系统登入权限,就可以通过提权等方式轻松获得root。
2. 应用安全建议
禁用web server的autoindex配置。
从制度层面,杜绝员工将代码上传到外部github上,因为很可能存在内部IP、账号密码泄露的风险,真的要上传必须先经过安全审核。
尽量不要在公网上使用开源的cms、blog、论坛等系统,除非做过代码安全审计,或者事先做好安全策略。这类系统一般都是黑客重点研究对象,很容易被搞;
在web server层,可以用一些安全模块,比如nginx的WAF模块;
在app server层,可以做好代码安全审计、安全扫描,防止XSS攻击、CSRF攻击、SQL注入、文件上传攻击、绕过cookie检测等安全漏洞;
应用程序中涉及账号密码的地方例如JDBC连接串配置,尽量把明文密码采用加密方式存储,再利用内部私有的解密工具进行反解密后再使用。或者可以让应用程序先用中间账号连接proxy层,再由proxy连接MySQL,避免应用层直连MySQL;
最后我们想说, 任何高明的安全策略,都不如内部员工的安全意识来的重要 。以前发生过一起案例,公司内有位员工的PC不慎中毒,结果导致内网数据被盗。
安全无小事,每个人都应铭记于心。在数据安全面前,可以适当牺牲一些便利性,当然也不能太过,否则可能得不偿失。
是在某个新功能,或者为了验证某种假设的实验后研究的; 行业数据 则基本是按季度维度去看就可以了。
运营数据
最常规的数据是产品的运营数据,我习惯从规模和质量两个角度去看:
规模数据主要是产品的一些数据指标,例如:新增用户数,DAU (日活跃用户数), MAU (月活跃用户数), 电商产品的话就包括订单、收入、等等。
质量指标则是反应产品业务健康程度的数据,例如:新增用户的次日留存,用户的启动频率和启动时长,等等。
看这些数据首先要弄明白数据的定义方式,采集和计算过程。理解上的差异可能导致将一些不同数据做强行匹配,导致结论显著的错误,尤其是面对不同产品,不同公司的数据时。
弄清楚了指标的定义,具体看数据的时候我习惯反复使用 对比 和 分解 这两种基本方法:
对比,是通过 横比 和 纵比 的方式看数据,横比就是和相似的产品比,和自己的经验数据比(比如经验里面寒暑假是视频的旺季,但是产品对应的数据确下跌了,这就需要进一步去找原因了);另一个纵比是在时间线上过去的自己比。
#p#分页标题#e#
分解,是按照不同的维度去分解数据,例如:可以从渠道的维度看,从地域维度看,通过不同的维度分解将对比的差异值逐级锁定,方便寻找原因,做用户增长的时候,我会关注不同类型的 Top 渠道。
使用对比/分解大法基本能养成较好的数据 sense 了,最后再说三个数据解读中比较常见的错误:
过度关注数据下跌的原因,而完全忽视上涨的原因,或完全归因为业务的好转。我在做浏览器的时候有个核心指标「人均搜索数」,它是由 「总搜索次数/搜索用户数」 计算得来的,所以人均搜索数的增长,可能是总搜索数增长,也可能是搜索用户数下跌了,是需要进一步分析的,简单的认为上涨就是好、下跌就是差是有问题的。
因果归因错误,把相关关系错认为因果关系,或者忽略了关键因素;例如: A 导致了 B 和 C 的发生,分析时却忽略了 A ,直接认为 B 和 C 存在因果关系。
幸存者偏差,忽视了沉默的大多数,这是在看抽样数据时很容易犯的一类错误,关于幸存者偏差的详细定义大家可以翻翻百度百科。
用户行为数据
还有一个建议每天看的是用户行为的 log 数据,这个数据有点像「百度统计」里面的漏斗模型,但是他比漏斗模型更加详细一些,他不单单能说明用户有没有走到漏斗当中,还可以进一步看到,用户在漏斗中的路径,以及跳出用户是如何跳出的。
用户的行为数据都是一些生数据,数据量比较大,需要有一定的处理。
1、找产品的核心场景
不是所有用户的行为日志都去看,而是要找到影响用户认知产品的核心场景,这里可以借鉴( MOT , Moments of Truth )的概念,就是用户和产品的服务发生接触的点,这些点的体验决定了用户对于产品整体的评价。例如,做用户新增的需要看新用户进来之后找到自己想要的服务的路径是什么样子的,是不是足够简短?有没有遇到困难?
2、为用户分类,找目标用户
最好一次只看一类用户,因为看用户的行为数据是比较消耗精力的过程,不是每次都能有收获的,需要不断的看,不断的挖掘。
所以在做新增的时候,我基本会以引流时设置的钩子做分类,每次看其中一类用户,例如通过今天只看通过视频加速引流的用户,看看这些用户进来之后能不能快速的找到对应的视频;过几天看看通过资讯进来的用户。
说完每天看到数据再简单说两句 反馈数据 和 行业数据 ,虽然这两个数据不需要每天看,但在产品经理的工作中也是很有帮助的。
新功能反馈数据
迭代是产品经理重要的工作手段,无论是灰度发布, AB test ,还是常规的发版都需要通过收集数据来验证之前的假设,从而觉得是继续优化,还是推到重来,迭代帮助产品经理积累被验证的认知。
看反馈数据最重要的是在设计的时候就想清楚,目标是什么?我认为这个新功能能够起作用的逻辑是什么?我需要采集哪些数据来验证?
最好的办法就是把这些问题的答案,一条一条的写下来,通过写下来的方法可以保证我们事前就好一些细节的问题都考虑进去了,避免两种常见的失误。
过度采集数据,增加开发工作量;
采集数据不足,不能开展结论分析;
行业数据
最后说说行业数据,我习惯用行业数据来发觉新机会,行业数据能够看到用户迁移的一种大的趋势,如果自己的产品能够借上这种大势,很可能就是一波比较大的突破。例如:2013年 WiFi 万能钥匙的兴起;2014年视频流量的增长;2015 年今日头条和快手的用户量崛起。
行业数据获取比较依赖大平台,如果是在 BAT 这样的大公司,有足够大的用户样本,比较容易及时的看到这些数据。如果没有这样的条件,一方面可以依赖艾瑞等第三方的报告,另一方面就是要多关注各种排行版数据,例如:app store 、应用市场的榜单,微博的关键热榜、百度指数等的变化。
总的来说就是要去想,用户最近关注什么?这个东西和自己的业务有没有联系,切忌不要强制联系。
看数据这种技能也是越练越熟,真有「数据 sense 」这种东西,经常看就会对数据更敏感,更容易发现数据中隐藏的信息。
相信最后大家阅读完毕本篇文章,肯定学到了不少知识吧?其实大家私下还得多多自学,当然如果大家还想了解更多方面的详细内容的话呢,不妨关注课课家教育平台,在这个学习知识的天堂中,您肯定会有意想不到的收获的!