“工欲善其事,必先利其器”,作为一名数据产品经理,不论是做数据分析,还是搭建数据平台,你必须要掌握很多工具,这样才能得心应手。下面,将从简单的 Excel 说起,到R,再到数据平台需要的工具和技术,由易到难,帮你在工具上全方位掌握数据产品经理的必备技能。
数据分析利器—Excel
相信每个人都会用一些 Excel的简单功能,可是,作为一名数据产品经理,仅仅掌握这些功能是不能满足大数据量分析需求的。首先你要掌握以下一些常用函数:
日期函数:day,month,year,date,today,weekday,weeknum
数学函数:product,rand,round,sum,sumif,sumproduct
统计函数:large,small,max,min,rank,count,countif,average,averageif
查找和引用函数:choose,match,index,column,row,vlookup,hlookup,lookup,offset
文本函数:find,search,text,value,left,right,mid,len
逻辑函数:and,or,if,false,true
掌握了这些函数,就可以对经常分析的业务建立一个数据模板,例如业务大盘日报,这样就省去了手动计算大量数据的麻烦,根据模板自动更新新增数据,直接显示结果。
接下来说一下Excel数据分析非常好用的另一个利器—数据透视表,它可以快速的把大量数据生成可以分析和展现的报表,而且可以随意组织选择各种维度和值,就像一个魔方,你可以自由组合查看不同角度的不同结果,它把复杂的公式转化成了简单的数据分析,非常实用易上手。通过数据透视表,你可以实现以下几种功能:
自动计算分类间的数据汇总,计数,最大值,最小值,平均值等。
自动排序、分组以及分组。
分析环比、同比、定基比等。
根据业务逻辑进行个性化分析。
数据分析及可视化强大语言—R
R是一种为统计计算和绘图而生的语言和环境,它是一套开源的数据分析解决方案。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输入,可实现分支、循环,用户可自定义功能 。
与其说R是一种统计软件,还不如说R是一种数学计算的环境,因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。
R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。 R内建多种统计学及数字分析功能。
R其实还是一个蛮专业的一个工具,要想了解更多的R语言知识,可以去官网 http://www.rproject.cn/ 下载安装程序和资料进行深入学习。
搭建数据平台必备—Hadoop
Hadoop是一个分布式系统基础架构,现在被广泛的应用于大数据平台的开发中,对处理海量数据,有着其他技术无可匹敌的优势。
Google File System、Map-Reduce与BigTable被誉为分布式计算的三驾马车,其中 Google File System用来解决数据存储的问题,采用N多台廉价的电脑,使用冗余的方式,来取得读写速度与数据安全并存的结果。 Map-Reduce说白了就是函数式编程,把所有的函数都分为两类,Map和Reduce,Map用来将数据分成多份,分开处理,Reduce将处理的结果进行归并,得到最终的结果。 BigTable是在分布式系统上存储结构化数据的一个解决方案,解决了巨大的Table的管理、负载均衡的问题。
下面两张图有助于从大致框架和结构上理解Hadoop。
HAdoop体系架构
Hadoop核心设计
除了Hadoop体系架构那些基础工具外,数据产品经理还需要对以下几个基础工具做一些了解。
ELASTIC SEARCH:基于Lucene的搜索服务器。提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
Memcached:Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展。
Redis:开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 为了保证效率,数据都是缓存在内存中,区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了主从同步。 Redis的出现,很大程度补偿了Memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。
Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。
Kafka集群可以在一个指定的时间内保持所有发布上来的消息,不管这些消息有没有被消费。打个比方,如果这个时间设置为两天,那么在消息发布的两天以内,这条消息都是可以被消费的,但是在两天后,这条消息就会被系统丢弃以释放空间。Kafka的性能不会受数据量的大小影响,因此保持大量的数据不是一个问题。
Storm:Storm是分布式数据处理的框架,本身几乎不提供复杂事件计算。Storm用于实时处理,就好比 Hadoop 用于批处理。Storm保证每个消息都会得到处理,而且它在一个小集群中,每秒可以处理数以百万计的消息。
Storm 应用领域包括实时分析、在线机器学习、信息流处理(例如,可以使用Storm 处理新的数据和快速更新数据库)、连续性的计算(例如,使用Storm 连续查询,然后将结果返回给客户端,如将微博上的热门话题转发给用户)、分布式RPC(远过程调用协议,通过网络从远程计算机程序上请求服务)、ETL(Extraction Transformation Loading,数据抽取、转换和加载)等。