数据分析师经常遇到的13个问题

1、最早的数据分析可能就报表

目前很多数据分析后的结果,展示的形式很多,有各种图形以及报表,最早的应该是简单的几条数据,然后搞个web页面,展示一下数据。早期可能数据量也不大,随便搞个数据库,然后SQL搞一下,数据报表就出来了。但是数据量大起来怎么分析呢?数据分析完了怎么做传输呢?这么大的数据量怎么做到实时呢?分析的结果数据如果不是很大还行,如果分析的结果数据还是很大改怎么办呢?这些问题在这篇文章中都能找到答案,下面各个击破。

2、要做数据分析,首先要有数据

这个标题感觉有点废话,不过要做饭需要食材一样。有些数据时业务积累的,像交易订单的数据,每一笔交易都会有一笔订单,之后再对订单数据作分析。但是有些场景下,数据没法考业务积累,需要依赖于外部,这个时候外部如果有现成的数据最好了,直接join过来,但是有时候是需要自己获取的,例如搞个爬虫爬取网页的数据,有时候单台机器搞爬虫可能还爬不完,这个时候可能就开始考虑单机多线程爬取或者分布式多线程爬取数据,中间涉及到一个步骤,就是在线的业务数据,需要每天晚上导入到离线的系统中,之后才可以进行分析。

3、有了数据,咋分析呢?

先将数据量小的情况下,可能一个复杂的SQL就可以搞出来,之后搞个web服务器,页面请求的时候,执行这个SQL,然后展示数据,好了,一个最简单的数据分析,严格意义上讲是统计的分析。这种情况下,分析的数据源小,分析的脚本就是在线执行的SQL,分析的结果不用传输,结果的展示就在页面上,整个流程一条龙。

4、数据量大了,无法在线分析了,咋办呢?

这个时候,数据量已经大的无法用在线执行SQL的形式进行统计分析了。这个时候顺应时代的东西产生了(当然还有其他的,我就知道这个呵呵),数据离线数据工具hadoop出来了。这个时候,你的数据以文件的形式存在,可能各个属性是逗号分隔的,数据条数有十几个亿。这时候你可能需要构建一个hadoop集群,然后把自己的文件导入到集群上面去,上了集群之后,文件就是HDFS的格式了,然后如果要做统计分析,需要写mapreduce程序,所谓的mapreduce程序,就是实现map和reduce的接口,按照自己的业务逻辑写分析流程,之后把程序打成jar包上传到集群,之后开始执行。分析后的结果还是文件的形式产生。

5、分析个数据还要写java代码是不是效率低了点

这个确实是,mapreduce的程序,本身的可测性没有执行一个简单的单元测试来的爽,所以效率确实不高。这个时候,hive出现了,hive是一个数据仓库分析的语言,语法类似于数据库的SQL,但是有几个地方是不同的。有了hive之后,数据分析就好之前写SQL一样了,按照逻辑编写hive SQL,然后控制台执行。可能最大的感觉是,数据库的sql很快就能有结果,但是hive的,即使很小的一个数据分析,也需要几分钟时间。构建hive,需要在hadoop的集群上,原理很简单,就是把文件构建成表的形式(有一个数据库或者内存数据库维护表的schema信息),之后提交写好的hive sql的时候,hadoop集群里面的程序把hive脚本转换成对应的mapreduce程序执行。这个时候,做离线的数据分析简单写脚本就行了,不用再搞java代码,然后上传执行了。

6、数据产生的结果,怎么搞到线上提供服务的数据库中呢?

这个时候分析的结果有了,可能是一个很宽很长的excel表格,需要导入到线上的数据库中,可能你想到了,如果我的数据库是mysql,我直接执行load 命令就搞进去了,哪有那么麻烦。但是数据源可能有多了,mysql/oracle/hbase/hdfs 按照笛卡尔积的形式,这样搞要搞死程序员了。这个时候datax(已经开源)出现了,能够实现异构数据源的导入和导出,采用插件的形式设计,能够支持未来的数据源。如果需要导数据,配置一下datax的xml文件或者在web页面上点击下就可以实现了。

7、离线分析有时间差,实时的话怎么搞呢?

要构建实时的分析系统,其实在结果数据出来之前,架构和离线是截然不同的。数据时流动的,如果在大并发海量数据流动过程中,进行自己的业务分析呢?这里其实说简单也简单,说复杂也复杂。目前我接触过的,方案是这样的,业务数据在写入数据库的时候,这里的数据库mysql,在数据库的机器上安装一个程序,类似JMS的系统,用于监听binlog的变更,收到日志信息,将日志信息转换为具体的数据,然后以消息的形式发送出来。这个时候实现了解耦,这样的处理并不影响正常的业务流程。这个时候需要有个Storm集群,storm集群干啥事情呢?就一件事情,分析数据,这个集群来接收刚才提到的JMS系统发送出来的消息,然后按照指定的规则进行逻辑合并等计算,把计算的结果保存在数据库中,这样的话,流动的数据就可以过一遍筛子了。

8、分析的结果数据特别大,在线请求这些结果数据数据扛不住了,咋搞?

一般的结果数据,数据量没有那么大,也就几十万的样子,这样的数据级别,对于mysql这样的数据库没有任何压力,但是这个数据量如果增加到千万或者亿级别,同时有复杂的SQL查询,这个时候mysql肯定就扛不住了。这个时候,可能需要构建索引(例如通过lucene来对于要检索的字段添加索引),或者用分布式的内存服务器来完成查询。总之,两套思路,一个是用文件索引的形式,说白来就是空间换时间,另外一种是用内存,就是用更快的存储来抗请求。

9、在线的数据库,除了mysql、oracle之外,还有其他选择不?

其实目前大家的思维定势,往往第一个选择就是oracle或者mysql,其实完全可以根据场景来进行选择,mysql和oracle是传统的关系型数据库,目前nosql类的数据库也很多,例如HBase就是其中一个重要的代表。如果数据离散分布比较强,且根据特定的key来查询,这个时候HBase其实是一个不错的选择。

10、空间的数据怎么分析

上面的分析大都是统计维度的,其实最简单的描述就是求和或者平均值等,这个时候问题来了,大数据量的空间数据如何分析呢?对于我们电子商务而言,空间数据可能就是海量的收货地址数据了。需要做分析,第一步就是先要把经纬度添加到数据中(如果添加经纬度,这个可以搞http的请求来通过地图服务提供商来或者,或者是根据测绘公司的基础数据来进行文本切割分析),之后空间数据是二维的,但是我们常见的代数是一维的,这个时候一个重要的算法出现了,geohash算法,一种将经纬度数据转换为一个可比较,可排序的字符串的算法。然后,这样就可以再空间距离方面进行分析了,例如远近,例如方圆周边等数据的分析。

11、上面这些仅仅是统计,如果想搞算法或者挖掘之类的,怎么搞呢

上述的分析,大多数是统计分析,这个时候如果想高一点高级的,例如添加一个算法,咋搞呢?其他复杂的算法我没咋接触过。将拿一个我练过手的算法来讲吧。逻辑回归,如果样本数据量不是很大,可以采用weka来做了个回归,获得一个表达式,然后在线上系统中应用这个表达式,这种类似的表达式获取对于实时性要求不是很高,所以公式每天跑一次就行了。如果数据量比较大,单机的weka无法满足需求了,可以将weka的jar包集成在系统中分析,当然也可以通过hadoop中的mahout来进行离线分析,获取这个表达式。

12、我就是想离线分析数据,但是受不了hive或者hadoop的速度,咋搞

其实搞过一段时间hadoop的人肯定有一点不爽,就是离线分析的速度太慢了,可能需要等很久,这个时候spark出现了,他和hadoop类似,不过由于是内存中计算,所以速度快了很多,底层可以介入HDFS的文件系统,具体我没有使用过,但是公司内部一个团队目前已经用spark来进行分析了。

13、这就是搞大数据了?

有了这些工具就是搞大数据了?答案肯定不是,这个仅仅是工具罢了。真正搞大数据的可能在于思维的变化,用数据来思考,用数据来做决定。目前的无线和大数据啥关系?我觉得无线的终端是数据的来源和消费端,中间需要大数据的分析,两者密不可分啊。http://www.cda.cn/view/17128.html

转载于:https://www.cnblogs.com/amengduo/p/9587586.html

数据分析师经常遇到的13个问题相关推荐

  1. 人力资源数据分析 - case 分析拉钩数据分析师岗位

    一.背景 本人5年工作经验,服务同一家公司,也一直在与数据打交道.曾在XX事业部-业务策略中心带数据小组,进行扩店策略.门店运营和经营指标体系建设.目前在我司研究院做BI.数据挖掘.近期正在寻求改变, ...

  2. 如何拿到高薪数据分析师offer?从精准解读一篇招聘信息开始!

    大家好,我是大鹏,目前是一名数据分析师,从非本专业成功转行,创立"数据团学社""城市数据研习社",运营数十万人社群,联合发起"城市数据团". ...

  3. 爬虫找工作要掌握什么_数据分析师要掌握SQL到什么程度?

    是新朋友吗?记得先点蓝字关注我哦- 今日课程菜单 Java全栈开发 | Web前端+H5 大数据开发 | 数据分析  人工智能+Python | 人工智能+物联网 很多人入门学习数据分析,往往第一时间 ...

  4. 如何迅速成长成为一名数据分析师(都是干货)?

    分享一下鹅厂数据分析师的 wisehuang 的干货经验. 数据分析的下限,取决于逻辑归纳.与其说提高分析质量,不如说提升逻辑归纳能力. 逻辑归纳,需要拥有良好的逻辑思维,并结合领域知识形成该领域的分 ...

  5. 月饼怎么吃才不胖,数据分析师教你选月饼

    一年一度的中秋节就要到了,今年中秋和国庆在同一天,一个八天的长假,让大家对这个双节又多了几分期待. 中秋节,最少不了的就是月饼!那月饼如何吃才健康?毕竟"年怕中秋月怕半",一块月饼 ...

  6. 如何成为python 数据分析师_如何七周成为数据分析师20:了解和掌握Python的函数...

    本文是<如何七周成为数据分析师>的第二十教程,如果想要了解写作初衷,可以先行阅读七周指南.温馨提示:如果您已经熟悉Python,大可不必再看这篇文章,或只挑选部分. Python之所以灵活 ...

  7. 数据分析师被老板问住了——场面一度非常尴尬。

    你是不是经常被老板问的一脸懵逼? 比如-- "上周环比周活明显下降,怎么办?" "互动率下降,如何提升上来?" "要提升新客 ARPU 值,如何优化现 ...

  8. 不想跑数了,数据分析师的前途在哪里?

    这两天面试了几个数据分析岗的候选人,结果一个都没录用,感触颇深. 这几个候选人大都干了好今年的数据岗,结果一问经历,不是只会跑数,就是只会做表,做过的项目寥寥无几. 但我这个岗位基本要求是要有至少两个 ...

  9. 数据分析师最终都会代码化的3点原因?!

    Python官方在今年2月做了一份报告,从官方的角度说明了Python的使用状况和受欢迎程度: 该调查由 Python 软件基金会与 JetBrains 一起发起,有来自 150 多个国家的超过两万名 ...

最新文章

  1. JSP知识点笔记-基本技术常识
  2. 高并发Web服务的演变:节约系统内存和CPU
  3. iview 表单提交之前验证是否符合条件
  4. 非线性时延系统matlab框图,非线性主-从时延系统的时滞相关有限时间同步控制方法与流程...
  5. ISTQB高级-测试经理国际认证试题及答案(二)
  6. dos怎么退出debug_电脑主板坏了怎么办?浅谈主板常见的故障以及应对办法
  7. Dropout抑制过拟合与超参数选择
  8. 操作自定义属性、H5自定义属性
  9. 一文读懂如何用深度学习实现网络安全
  10. win7下Visual Studio 2012 update4、AutoCAD 2016和二次开发插件ObjectARX2016环境安装及配置
  11. 基于 Verilog 的经典数字电路设计(14)移位寄存器
  12. JAVA定时调度框架Quartz使用案例
  13. app违规收集个人信息被通报了怎么办?教你如何整改
  14. 盘点一个Pandas操作Excel多条件取值的实战案例
  15. 【CTF题解NO.00003】moeCTF 2020 - official write up by arttnba3
  16. java开发用i5还是i7,酷睿i3和i5以及i7有什么区别
  17. 第47章 QR-Decoder-OV5640二维码识别—零死角玩转STM32-F429系列
  18. 2.3 Openwrt 模拟 spi 及其sx1301寄存器读写测试
  19. ScratchJr介绍
  20. 为了彻底搞懂 hashCode,我连 JDK 的源码都没放过(建议收藏)

热门文章

  1. python 追加到字典_扫描器篇(三)之python编写基于字典的网站目录探测脚本
  2. python rowspan_Python tkinter rowspan未正确调整元素大小
  3. python测试框架nose研究_详解Python nose单元测试框架的安装与使用
  4. mysql执行shell命令_关键Docker命令:使用Docker必须掌握的公认宝典
  5. 认识python编程环境_认识Python和安装Python环境
  6. tkmybatis 子查询_日均20亿流量:携程机票查询系统的架构升级
  7. 虚拟机vcenter如何增加磁盘_如何在家搭建一套自己的实验平台(10)iSCSI 共享存储...
  8. 大数据学习规划(新手入门)
  9. matlab的grayscale,Python 是否等效于Matlab函数“imfill”的grayscale??
  10. 拦截器读post参数导致接口post请求报错_vue中Axios的封装和API接口的管理