学习散仙大神同学关于大数据知识,真是受益匪浅
学习转载地址:http://qindongliang.iteye.com/blog/2173091
随着大数据的爆红,数据分析师这个职位也得到了越来越多的关注,千千万万懂些大数据技术的少年们都渴望成为高大上的“大数据科学家”,可是,你们真的准备好了吗?
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/hbasefs 按照笛卡尔积的形式,这样搞要搞死程序员了。这个时候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、这就是搞大数据了? 有了这些工具就是搞大数据了?答案肯定不是,这个仅仅是工具罢了。真正搞大数据的可能在于思维的变化,用数据来思考,用数据来做决定。目前的无线和大数据啥关系?我觉得无线的终端是数据的来源和消费端,中间需要大数据的分析,两者密不可分啊
14,注意大数据,和数据大是二码事,如何利用海量的数据并结合互联网思维来挖掘出各种有价值的信息,才是真正的大数据。
相关推荐
同时,我们还结合实际需求,设计了一系列实践项目,让学习者在理论学习的基础上,能够亲自动手实践,提升实际操作能力。在技术创新方面,我们充分利用大数据与人工智能技术的优势,为学习者提供个性化的学习推荐与...
综上所述,JP摩根的研究报告全面梳理了大数据和AI在金融投资领域的应用,并为投资者提供了一套实用的指导框架,这不仅包括技术理论和实践操作,还包括如何在实际投资中运用大数据和机器学习的策略和案例。...
本文主要介绍了一种基于深度学习理论的机械装备大数据健康监测方法。这一方法的提出,是为了解决随着机械装备朝着高速、高精、高效方向发展过程中,如何确保这些装备的健康运行而产生的新问题。随着健康监测系统采集...
通过实用的SQL语句集合和学习笔记,帮助学习者掌握基本查询技巧以及更复杂的数据库操作。 - **Python**:作为数据分析领域最流行的编程语言之一,Python因其简洁易用和强大的库支持而受到广泛欢迎。学习资源包括快速...
综上所述,本书涵盖了大数据分析、机器学习、以及Hadoop和Spark框架的实战应用,对于想要掌握大数据技术和机器学习集成应用的读者来说,是一本非常实用的参考书籍。书中不仅包含了丰富的理论知识,更注重实战操作,...
ELM具有理论上的优越性和实用性,它在大数据环境下能快速完成学习过程,且不必对参数进行迭代调整,能有效避免局部最优解,减少过拟合的问题。ELM的核心思想在于,如果输入权重和偏置被随机选定,那么输出权重可以...
总之,《剑指大数据——Flink学习精要(Java版)》是一份全面且实用的学习资料,不仅涵盖了Flink的基础理论,还提供了丰富的实践指导,是Java开发者迈进大数据世界,掌握Flink技术的理想选择。通过深入学习,读者...
这些技术是当前大数据分析领域的主流工具,对于数据科学家、数据工程师和机器学习从业者来说,具有很高的实用价值。 首先,Python作为一门高级编程语言,因其简洁的语法和丰富的库资源,成为了数据科学领域首选的...
通过这个实验,学生不仅会学习到如何处理生物大数据,还会深入理解HGT的影响以及如何利用计算方法来揭示隐藏的生物学信息。此外,他们还将接触到实际编程和数据分析技能,这是现代生物信息学研究者必备的能力。总的...
二、极限学习机理论 极限学习机是一种快速、高效的机器学习算法,其核心思想是通过随机初始化隐藏层神经元的权重和偏置,直接求解最小范数问题,实现单隐层前馈神经网络的训练。ELM算法避免了传统神经网络的反向...
总之,"尚硅谷大数据技术之企业SQL面试题"是一个全面复习和提升SQL技能的宝贵资源,无论是对于正在找工作的专业人士还是想要提升自己大数据技能的开发者,都是一份非常实用的学习材料。通过深入学习和实践,可以增强...
《数据挖掘技术与工程实践》一书通过丰富的实例,将理论知识与实际操作相结合,帮助读者提升对数据挖掘的理解,增强实际解决问题的能力。无论你是初学者还是经验丰富的从业者,都能从中受益匪浅,进一步提升自己的...
【大数据环境下机器学习算法趋势研究】 随着科技的飞速进步,大数据已经成为当今社会的重要组成部分,其显著...在这个过程中,跨学科的合作、新理论的探索和技术的融合将共同推动机器学习在大数据环境下的繁荣与发展。
总的来说,"小牛课堂大数据"的课程内容是全面且实用的,旨在帮助学习者建立起扎实的Java基础,掌握Web开发中的核心框架,并能够运用到实际的大数据项目中。通过这样的学习路径,你将不仅能够理解大数据的基本原理,...
此次讲座虽然自称为“很粗浅”,但其实涵盖了大数据和机器学习的基础理论以及实用案例,非常适合初学者入门和中级学习者巩固知识。 首先,讲座介绍了大数据的定义和特点。大数据(Big Data)是指那些传统数据处理...
大数据实验平台是当前应对全球大数据人才荒的重要解决方案。随着大数据技术的快速发展,我国大数据市场规模的...这样的平台对于培养实用型大数据人才至关重要,有助于弥补行业的人才缺口,推动大数据技术的持续发展。
首先,文件“大数据技术之高频面试题(doc版).docx”是一个实用的工具,它整理了大数据技术领域常见的面试问题,涉及Hadoop、Spark、Hive、HBase等核心组件,以及数据处理、数据挖掘、数据分析等相关知识。...
总的来说,《大数据竞赛技能手册》是一本实用性极强的指南,它不仅提供了大数据环境构建和管理的基础知识,还通过具体的竞赛实例展示了如何将理论知识应用于实际问题解决。无论是初学者还是有经验的参赛者,都能从中...