大数据分析过程遇到的13个问题

上传人:re****.1 文档编号:504758205 上传时间:2022-10-20 格式:DOCX 页数:6 大小:15.16KB
返回 下载 相关 举报
大数据分析过程遇到的13个问题_第1页
第1页 / 共6页
大数据分析过程遇到的13个问题_第2页
第2页 / 共6页
大数据分析过程遇到的13个问题_第3页
第3页 / 共6页
大数据分析过程遇到的13个问题_第4页
第4页 / 共6页
大数据分析过程遇到的13个问题_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《大数据分析过程遇到的13个问题》由会员分享,可在线阅读,更多相关《大数据分析过程遇到的13个问题(6页珍藏版)》请在金锄头文库上搜索。

1、大数据分析过程遇到的13个问 题大数据分析遇到的13个问题1、最早的数据分析可能就报表目前很多数据分析后的结果,展示的形式很多,有各种图形以及报表,最早的 应该是简单的几条数据,然后搞个web页面,展示一下数据。早期可能数据量 也不大,随便搞个数据库,然后SQL搞一下,数据报表就出来了。但是数据量 大起来怎么分析呢?数据分析完了怎么做传输呢?这么大的数据量怎么做到实 时呢?分析的结果数据如果不是很大还行,如果分析的结果数据还是很大改怎 么办呢?这些问题在这篇文章中都能找到答案,下面各个击破。2、要做数据分析,首先要有数据这个标题感觉有点废话,不过要做饭需要食材一样。有些数据时业务积累的, 像交

2、易订单的数据,每一笔交易都会有一笔订单,之后再对订单数据作分析。 但是有些场景下,数据没法考业务积累,需要依赖于外部,这个时候外部如果 有现成的数据最好了,直接join过来,但是有时候是需要自己获取的,例如搞 个爬虫爬取网页的数据,有时候单台机器搞爬虫可能还爬不完,这个时候可能 就开始考虑单机多线程爬取或者分布式多线程爬取数据,中间涉及到一个步骤, 就是在线的业务数据,需要每天晚上导入到离线的系统中,之后才可以进行分 析。3、有了数据,咋分析呢?先将数据量小的情况下,可能一个复杂的SQL就可以搞出来,之后搞个web服务器,页面请求的时候,执行这个SQL,然后展示数据,好了,一个最简单 的数据分

3、析,严格意义上讲是统计的分析。这种情况下,分析的数据源小,分 析的脚本就是在线执行的SQL,分析的结果不用传输,结果的展示就在页面上, 整个流程一条龙。4、数据量大了,无法在线分析了,咋办呢?这个时候,数据量已经大的无法用在线执行SQL的形式进行统计分析了。这个 时候顺应时代的东西产生了(当然还有其他的,我就知道这个呵呵),数据离 线数据工具hadoop出来了。这个时候,你的数据以文件的形式存在,可能各 个属性是逗号分隔的,数据条数有十几个亿。这时候你可能需要构建一个 hadoop集群,然后把自己的文件导入到集群上面去,上了集群之后,文件就是 HDFS的格式了,然后如果要做统计分析,需要写ma

4、preduce程序,所谓的 mapreduce程序,就是实现map和reduce的接口,按照自己的业务逻辑写 分析流程,之后把程序打成jar包上传到集群,之后开始执行。分析后的结果 还是文件的形式产生。5、分析个数据还要写java代码是不是效率低了点这个确实是,mapreduce的程序,本身的可测性没有执行一个简单的单元测试 来的爽,所以效率确实不高。这个时候,hive出现了,hive是一个数据仓库分 析的语言,语法类似于数据库的SQL,但是有几个地方是不同的。有了 hive之 后,数据分析就好之前写SQL 一样了,按照逻辑编写hive SQL,然后控制台 执行。可能最大的感觉是,数据库的sq

5、l很快就能有结果,但是hive的,即使 很小的一个数据分析,也需要几分钟时间。构建hive,需要在hadoop的集群 上,原理很简单,就是把文件构建成表的形式(有一个数据库或者内存数据库 维护表的schema信息),之后提交写好的hive sql的时候,hadoop集群里 面的程序把hive脚本转换成对应的mapreduce程序执行。这个时候,做离线 的数据分析简单写脚本就行了,不用再搞java代码,然后上传执行了。6、数据产生的结果,怎么搞到线上提供服务的数据库中呢?这个时候分析的结果有了,可能是一个很宽很长的excel表格,需要导入到线上 的数据库中,可能你想到了,如果我的数据库是mysq

6、l,我直接执行load命 令就搞进去了,哪有那么麻烦。但是数据源可能有多了,mysql/oracle/hbase/hdf按照笛卡尔积的形式,这样搞要搞死程序员了。这个时候datax (已经开源)出现了,能够实现异构数据源的导入和导出,采用插件的形式设计,能够支持未来的数据源。如果需要导数据,配置一下datax的xml文件或者在web页面上点击下就可以实现了。7、离线分析有时间差,实时的话怎么搞呢?要构建实时的分析系统,其实在结果数据出来之前,架构和离线是截然不同的。 数据时流动的,如果在大并发海量数据流动过程中,进行自己的业务分析呢? 这里其实说简单也简单,说复杂也复杂。目前我接触过的,方案是

7、这样的,业 务数据在写入数据库的时候,这里的数据库mysql,在数据库的机器上安装一 个程序,类似JMS的系统,用于监听binlog的变更,收到日志信息,将日志 信息转换为具体的数据,然后以消息的形式发送出来。这个时候实现了解耦, 这样的处理并不影响正常的业务流程。这个时候需要有个Storm集群,storm 集群干啥事情呢?就一件事情,分析数据,这个集群来接收刚才提到的JMS系 统发送出来的消息,然后按照指定的规则进行逻辑合并等计算,把计算的结果 保存在数据库中,这样的话,流动的数据就可以过一遍筛子了。8、分析的结果数据特别大,在线请求这些结果数据数据扛不住了,咋搞?一般的结果数据,数据量没有

8、那么大,也就几十万的样子,这样的数据级别, 对于mysql这样的数据库没有任何压力,但是这个数据量如果增加到千万或者 亿级别,同时有复杂的SQL查询,这个时候mysql肯定就扛不住了。这个时 候,可能需要构建索引(例如通过lucene来对于要检索的字段添加索引),或 者用分布式的内存服务器来完成查询。总之,两套思路,一个是用文件索引的 形式,说白来就是空间换时间,另外一种是用内存,就是用更快的存储来抗请 求。9、在线的数据库,除了 mysql、oracle之外,还有其他选择不?其实目前大家的思维定势,往往第一个选择就是oracle或者mysql,其实完全 可以根据场景来进行选择,mysql和o

9、racle是传统的关系型数据库,目前nosql 类的数据库也很多,例如HBase就是其中一个重要的代表。如果数据离散分布 比较强,且根据特定的key来查询,这个时候HBase其实是一个不错的选择。10、空间的数据怎么分析上面的分析大都是统计维度的,其实最简单的描述就是求和或者平均值等,这 个时候问题来了,大数据量的空间数据如何分析呢?对于我们电子商务而言, 空间数据可能就是海量的收货地址数据了。需要做分析,第一步就是先要把经 纬度添加到数据中(如果添加经纬度,这个可以搞http的请求来通过地图服务 提供商来或者,或者是根据测绘公司的基础数据来进行文本切割分析),之后 空间数据是二维的,但是我们

10、常见的代数是一维的,这个时候一个重要的算法 出现了,geohash算法,一种将经纬度数据转换为一个可比较,可排序的字符 串的算法。然后,这样就可以再空间距离方面进行分析了,例如远近,例如方 圆周边等数据的分析。11、上面这些仅仅是统计,如果想搞算法或者挖掘之类的,怎么搞呢上述的分析,大多数是统计分析,这个时候如果想高一点高级的,例如添加一 个算法,咋搞呢?其他复杂的算法我没咋接触过。将拿一个我练过手的算法来 讲吧。逻辑回归,如果样本数据量不是很大,可以釆用weka来做了个回归, 获得一个表达式,然后在线上系统中应用这个表达式,这种类似的表达式获取 对于实时性要求不是很高,所以公式每天跑一次就行

11、了。如果数据量比较大, 单机的weka无法满足需求了,可以将weka的jar包集成在系统中分析,当 然也可以通过hadoop中的mahout来进行离线分析,获取这个表达式。12、我就是想离线分析数据,但是受不了 hive或者hadoop的速度,咋搞其实搞过一段时间hadoop的人肯定有一点不爽,就是离线分析的速度太慢了, 可能需要等很久,这个时候spark出现了,他和hadoop类似,不过由于是内 存中计算,所以速度快了很多,底层可以介入HDFS的文件系统,具体我没有 使用过,但是公司内部一个团队目前已经用spark来进行分析了。13、这就是搞大数据了?有了这些工具就是搞大数据了?答案肯定不是,这个仅仅是工具罢了。真正搞 大数据的可能在于思维的变化,用数据来思考,用数据来做决定。目前的无线 和大数据啥关系?我觉得无线的终端是数据的来源和消费端,中间需要大数据 的分析,两者密不可分啊。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号