中企动力 > 商学院 > 大数据与分析
  • ?

    最常用的四种大数据分析方法

    小丑

    展开

    本文主要讲述数据挖掘分析领域中,最常用的四种数据分析方法:描述型分析、诊断型分析、预测型分析和指令型分析。

    当刚涉足数据挖掘分析领域的分析师被问及,数据挖掘分析人员最重要的能力是什么时,他们给出了五花八门的答案。

    其实我想告诉他们的是,数据挖掘分析领域最重要的能力是:能够将数据转化为非专业人士也能够清楚理解的有意义的见解。

    使用一些工具来帮助大家更好的理解数据分析在挖掘数据价值方面的重要性,是十分有必要的。其中的一个工具,叫做四维分析法。

    简单地来说,分析可被划分为4种关键方法。

    下面会详细介绍这四种方法。

    1. 描述型分析:发生了什么?

    这是最常见的分析方法。在业务中,这种方法向数据分析师提供了重要指标和业务的衡量方法。

    例如,每月的营收和损失账单。数据分析师可以通过这些账单,获取大量的客户数据。了解客户的地理信息,就是“描述型分析”方法之一。利用可视化工具,能够有效的增强描述型分析所提供的信息。

    2. 诊断型分析:为什么会发生?

    描述性数据分析的下一步就是诊断型数据分析。通过评估描述型数据,诊断分析工具能够让数据分析师深入地分析数据,钻取到数据的核心。

    良好设计的BI dashboard能够整合:按照时间序列进行数据读入、特征过滤和钻取数据等功能,以便更好的分析数据。

    3. 预测型分析:可能发生什么?

    预测型分析主要用于进行预测。事件未来发生的可能性、预测一个可量化的值,或者是预估事情发生的时间点,这些都可以通过预测模型来完成。

    预测模型通常会使用各种可变数据来实现预测。数据成员的多样化与预测结果密切相关。

    在充满不确定性的环境下,预测能够帮助做出更好的决定。预测模型也是很多领域正在使用的重要方法。

    4. 指令型分析:需要做什么?

    数据价值和复杂度分析的下一步就是指令型分析。指令模型基于对“发生了什么”、“为什么会发生”和“可能发生什么”的分析,来帮助用户决定应该采取什么措施。通常情况下,指令型分析不是单独使用的方法,而是前面的所有方法都完成之后,最后需要完成的分析方法。

    例如,交通规划分析考量了每条路线的距离、每条线路的行驶速度、以及目前的交通管制等方面因素,来帮助选择最好的回家路线。

    结论

    最后需要说明,每一种分析方法都对业务分析具有很大的帮助,同时也应用在数据分析的各个方面。

    原文链接:http://kdnuggets/2017/07/4-types-data-analytics.html

    转载请注明出自:葡萄城控件

    关于葡萄城

    葡萄城是全球控件行业领导者,世界领先的企业应用定制工具、企业报表和商业智能解决方案提供商,为超过75%的全球财富500强企业提供服务。

  • ?

    干货|关于大数据分析方法的深度思考

    海灵子

    展开

    本文作者:郭朝晖@蝈蝈创新随笔

    本文是我关于大数据分析方法的几点思考。当初的目的是系统化地看待数据分析。为了这点东西,我花了一个礼拜的时间,思考的结果却是碎片化的。看来,想清楚并不容易。由于时间关系,只能中止。文字描述很不严格、肯定经不起推敲,读者找不毛病是正常的、看不明白更是正常的。不感兴趣的可以当做胡扯。我希望将来有时间时能把问题思考下去。

    从数据中发现信息和知识,是人们多年来的梦想。随着大数据理论的兴起,这个话题变得非常热门。在有些人看来,大数据非常神秘,似乎无所不能。当然,现实不会是这样。我想,研究大数据,首先要破除迷信:大数据需要什么条件、什么问题是大数据无法做到的。

    1、知识和信息,只能从关联关系中得到

    对象(包括过程,如生产过程、购物过程)及其属性、同一对象的属性之间具备关联关系。例如,“张三身高1.8米”就是对象(张三)与属性(身高)的关联;再如,如果我们知道张三体重75公斤,则“1.8米”和“75公斤”之间就因“张三”建立了关联。

    关联的对象可能并不确定:我们看到一张履历表,即便隐去名字、不知道这个人是谁,也知道其中的各种信息是与某人关联的。

    在数字化的世界里,不和其他的符号(数字)关联的符号(数字)是不包含任何信息的。从不包含信息的素材,得不到包含信息的结论。

    有人可能反对这个观点:谷歌曾经用“感冒”的搜索量预报流感啊,这里哪有关联呢?其实,只有搜索“感冒”的数量是根本无法预测流感的。谷歌的做法,是把“感冒”的搜索与搜索的地点、时间联系起来。

    这个观点告诉我们:收集数据的时候,要尽可能地把关联关系建立起来;没有关联关系,数据很容易成为垃圾。这种情况并不少见:有些实验室,把针对同一试样的各项实验结果分别保存起来,而没有建立统一的ID、关联关系丢失。这样的数据,再多也没有用处。

    2、人们要挖掘的知识和信息,就是找映射关系

    知识(或信息)的发现与挖掘,其本质是寻找映射关系:通过已知的、对象的一部分属性,把对象的另外一部分属性或对象本身找出来(或缩小范围)。产生这类问题的原因是:只有一部分属性已知、容易得到、容易识别、容易表述,而另外一部分未知、不容易得到、不容易识别、不容易描述。

    例如,我们可以说:张三就是那个穿红衣服的——这里“穿红衣服”比其他特征容易识别。从衣服识别出张三,就是从张三的衣着特征(属性)找到关联对象(张三)的信息;从一个人的身高预估他的体重,就是从一个根据一类属性估计另外一类属性。

    我习惯于把信息挖掘和知识发现分开。

    在本文中,信息挖掘指的是预测某个特定对象的属性,如上海市的人口是多少;知识发现是确定一类对象的属性之间的关系,如一类人群中身高和体重的关系。当然,这种区分不是绝对的。

    3、映射关系的差别

    正确的识别,最好的办法是找到好的素材(数据)。素材与结果之间的关联强度是不一样的:有的比较强,是因果关系、必然联系;有的比较弱,是相关关系、偶然联系。

    例如,我们可以根据DNA、相貌、衣服来识别一个人。但三者相比,DNA的联系是强的必然性联系、衣服是弱的偶然性联系,相貌是介于两者之间的联系。大数据的一个著名案例,是网站根据客户买的药判断她已怀孕、并推送有关产品:因为这种药只有孕妇才吃,是很强的关联。

    从数据得到的知识和信息,往往不是绝对正确。一般来说,可靠的结论基于可靠的数据和可靠的分析方法。数据量大了以后,滤除干扰的可能性增大,从而可以从原来可靠度低的数据中,得到可靠性相对较高的数据。

    所以,尽量找到好的素材,是做好分析的第一步。

    在很多情况下,我们找不到好的素材。这时,首先要做的尽量提高数据质量。数据质量不仅是精度问题,还包括数据来源的可靠性:为此,需要把数据来源的相关过程要搞清楚,否则很可能会误导人的分析。

    4、相关与因果

    有些相关性的背后,一般会有因果关系存在。两个要素由因果产生关联的机制大概可以分成两类:1、两个要素具有因果的关系:比如刚做父亲的青年人常会买尿布;2、共同原因导致的两个结果之间的关系:比如孩子的父亲会常买啤酒,也常买尿布;于是,啤酒和尿布就可能关联起来。

    有些相关性,看似没有因果,但背后往往有某些特殊的规律或因素其作用(上述第二种情况)。比如,女孩子往往喜欢花衣服,与基因和文化的共性有关。但这种因果关系可能相隔太远,以至于难以考证了。

    当人们需要根据关系作出决策时,需要研究因果的逻辑关系:到底是谁影响了谁。否则,根据分析结构的盲目行为可能适得其反。 “到底谁影响了谁”为什么会成为问题?大概有两类原因:

    第一类原因是:忽视了时间因素。如“统计结果表明,练太极拳的身体差”。现实却是:很多人身体变差(包括衰老)以后,才练太极拳。一般来说,具有因果关系的两个要素之间,时间上有前后关系:原因早前,结果在后。

    第二类原因是:忽视了前导因素。“公鸡一叫,天就亮了”。现实却是,天量之前的迹象被公鸡察觉到了。两者是第二种因果关系,只是看似“原因在后、结果在前”了。

    一般来说,工业大数据分析更重视因果,而商务大数据分析对因果性的要求较弱。

    5、数据分析的先导因素

    从某种意义上说,数据分析的过程,就是寻找强的相关关系(必然性、因果性),或对弱的相关关系进行综合、得到强的相关关系。

    用数据发现信息,需要用到各种知识。例如,把“云南白药是用于治疗外伤的”放入计算机,当某人购买白药的行为判断他或家人可能受伤,从而可以推荐相关产品。但注意到:这种类型的知识很可能是被人事先装入计算机的,而不是靠计算机自动学习得到的。

    所有的学习过程,本质上都是基于这样一种假设:A和B的一部分属性类似,则推测另一部分属性也应该类似。例如,A和B的身高相似,则体重也可能相似。现实中,两个属性确实具有强烈的相关性,但身高相同而体重不同的也大有人在。这时,如果我们还知道他的体型,是瘦弱、偏瘦、正常、偏胖、肥胖型,对体重的估计就可以准确一些。由此可见,用数据发现知识的过程,本质上就是提高相关性、可靠性的过程。

    一般来说,人们在做数据分析之前,一定会有一定的知识积淀, 但认识不清却是一种常态;人们希望通过对数据的分析,来改变这种常态。而改变认识的过程依赖于数据的质量和分析数据的方法。所以,刨除分析方法外,分析过程依赖于两个先导性因素:1、数据质量(包含多方面的含义)如何;人们已有的认识如何。

    注意,这段说法有个潜台词:强调了人类可认识的知识,而不是机器用复杂函数关系表述的、人类难以用逻辑关系认知的知识(如神经元)。的确如此,笔者一直认为:这类方法的作用被学术界有意识地夸大了。

    6、数据分析的过程

    与商业大数据相比,工业大数据更重视可靠性和精确性。在很多情况下,猜出一个结论并不难,难的是论证一个结论。一般来说,凡是可靠的知识,都应该能够被机理和数据双重认证。

    大数据分析的一个重要特征是:传统概率理论的假设往往不成立。例如:大数定理的条件往往不成立、模型的结构往往未知、因果关系不是天然清晰、自变量的误差往往不能忽略、数据分布往往是没有规律的。所以,为了得到可靠的结果,人们工作的重点很可能是验证这些条件、构造这些条件。从某种意义上说,数据分析的过程,主要是排除干扰的过程、特别是排除系统干扰的过程。而且,如果完全依照逻辑、用纯粹数学的办法加以论证,则数据需求量会遭遇“组合爆炸”,永远是不够的。这时,已有的领域知识就是降低数据需求量的一种手段。要记住:求得可靠性是一个过程而不是结果、可能永远没有终点;分析的过程只是不断增加证据而已。这个过程,是修正人的认识的过程;所以,错误或不恰当的认识常常是分析过程中最大的干扰——这个干扰一旦去除,我们可能就发现了真正的知识。

    数据量大的直接好处,是排除随机性干扰。但排除系统性干扰却不那么容易,数据量大是必要条件但不充分,需要深入的方法研究才能解决问题。

    系统性的干扰往往体现在:对主体进行分组,所体现的规律是不同的。比如,身高和体重的统计关系,男女是不同的、不同民族是有差异的、可能与年龄有关。如果不进行分类研究,统计的结果就会与样本的选取有很大关系。但分类研究也会遇到一个困难:遭遇组合爆炸,数据再多都不够用。这时,“领域知识”就会发生作用:

    认定一个结论成立的办法,是确认它的“可重复性”。在许多情况下,“可重复性”指的是在各种分组下都成立的结论:最好能在不同时间分组中也能成立。分组越多、分组的维度越多、结论的可靠性越高。

    但具有“可重复性”的结论,往往只在一定的范围内成立。在很多情况下,“明确结论成立的范围”也是数据分析的重要内容。

    如何分组、如何确定范围、如何构筑逻辑链条、数据结果的解读、数据结果与领域知识的融合,都是重要的能力。事实上,根据领域知识,常常用于构造证据链、进行有效的数据选取和分组。

    在精密论证时,我们就会发现:基础数据的质量很重要。因为许多干扰就来源于数据本身。从某种意义上说,数据的采集方法和环境不同,就是不同的数据。

    在构建数据分析体系的过程中,也会发现,企业经营的数据分析也确实需要一个可展示的平台,实时展示业务,有问题就优化更新。

    FineReport 数据决策系统

    7、关于预测数字

    许多问题分析的目的得到一个数字:如钢的强度、用电量、人口数量、钢产量。这类问题的特点之一是:最终的结果是各种影响因素相加得到的。

    对于这种问题,我的观点是:要想得到可靠的结果,一定要拆成若干子问题来分析。其中,各个子问题要尽可能利用规律性的结果来分析。我认为:把人的认识和数据用到极致的时候,才能得到最好的结果。随便地建立回归模型是不懂数据的表现。

  • ?

    浅谈大数据概念及大数据的运行与解析

    默然

    展开

    今天我们谈谈大数据概念理论,首先我们要了解大数据,如今人们都在谈论大数据,感觉不不熟悉大数据都有点时代的落伍。现在阿里巴巴,腾讯等一些大公司都在向着大数据发展,大数据时代是一个时代的象征,也是一个改变人们的生活的一个常态。大数据不只是分析数据的一个时代,更是方便人们选择的一种个数据分析。例如今天我们说看到的产品,大数据会通过分析你的需求,为您推送更好的产品,让你有更多的选择。体现了一个智能化,便捷性,高效性。

    浅谈大数据概念及大数据的运行与解析

    大数据运行分析

    大数据的字面理解意思是指大小超出了常用的软件工具在运行时间内可以承受的收集,管理和处理数据能力的数据集;大数据是目前存储模式与能力、计算模式与能力不能满足存储与处理现有数据集规模产生的相对概念。

    大数据在运行过程中首先要进行预处理

    主要完成对已接收数据的辨析、抓取、分类等操作。

    (1)辨析:通过接收输入需求进行辨析产品或数据。

    (2)抓取:由于获取的数据可能具有多种结构和类型,数据抽取的过程可以帮助我们将这些复杂的数据转化为单一的或者便于处理的构型,以达到快速分析处理的目的。

    (3)分类:对于大数据接收的数据,并不都是有价值的,有些数据是我们不关心的内容,还有一些数据是完全错误的干扰项,所以要对数据过滤从而提取出更为有效数据。

    首先,我认为大数据就是互联网发展到现今阶段的一种表象或特征而已,在以云计算为代表的技术创新大幕的衬托下,这些原本很难收集和使用的数据开始容易被利用起来了,通过各行各业的不断创新,大数据会逐步为人类创造更多的价值。

    大数据人工智能机器是未来的一个发展趋势,现在跟多互联网企业开展大数据人工智能,联想在举办的第三届全球创新科技大会上,作为主办方的联想集团首度公开了其在在人工智能领域的战略布局。此外,在会上联想高级副总裁兼CTO芮勇表示,联想集团目前正在积极研发人工智能模块CAVA,据悉这个模块可以植入到用户的手机中,并能进行人脸识别。

    浅谈大数据概念及大数据的运行与解析

    首先,想要系统的了解大数据,我们从最基础的三个方面进行解析。

    第一是理论,理论是认知的必经途径,也是被广泛认同和传播的基线。我会从大数据的特征定义理解行业对大数据的整体描绘和定性;从对大数据价值的探讨来深入解析大数据的珍贵所在;从对大数据的现在和未来去洞悉大数据的发展趋势;从大数据隐私这个特别而重要的视角审视人和数据之间的长久博弈。

    第二是技术,技术是大数据价值体现的手段和前进的基石。我将分别从云计算、分布式处理技术、存储技术和感知技术的发展来说明大数据从采集、处理、存储到形成结果的整个过程。

    第三是实践,实践是大数据的最终价值体现。我将分别从互联网的大数据,政府的大数据,企业的大数据和个人的大数据四个方面来描绘大数据已经展现的美好景象及即将实现的蓝图。

    今天人们在谈论数据的时候,经常将大数据与信息混为一谈。甚至将数据处理等同于信息处理。虽然两者是有共同之处,但还是有细微差别。

    信息是对世界人和事等描述,它比数据更加抽象。信息是隐藏在数据背后的规律,需要人类的挖掘和探索才能够发现。例如一个物体的重量,体积的大小等,这些都是可以计算。

    从数据到信息到所掌握的知识,我们要清楚的知道概念的范围,这样有利于我们今后学习大数据。从数据到信息,涉及到不同的处理方法,这就涉及到机器学习处理技术。不同的技术处理,可能会得到不同的信息。而从信息到知识,更加体现一个人的概括总结能力,它直接导致了后期的数据的应用场景和使用价值。最后才能到达最高层级就是具有智慧。

    对大数据感兴趣的小伙伴们欢迎关注小编,我们一起来学习交流进步。本文由大数据创作者(扣3五路451贰6伍)创作。

  • ?

    大数据分析:最难的不是分析,而是大数据

    煜城

    展开

    从先进的BI工具到机器学习,人工智能,现代企业拥有着各式各样整理分析数据的方法和途径。数据科学家和企业领导人都关注着这些新技术的巨大潜力,然而,当我们将焦点放在分析工具身上时,我们也可能忽略了数据本身的重要性。毕竟如果没有正确的数据,视觉化和预测分析也没有任何用处。

    每一个企业需要将他们的基础数据进行分析和甄别,在此基础上,对数据进行不同层次和结构的分类。原因如下:

    数据深度融入在商业的各个环节

    现代企业逐渐意识到,纷繁复杂的数据固然重要,而这些数据是否真的被企业职工运用,并对其工作产生了相关性的影响,才是企业领导所看重的。不同的层级岗位和职位角色都需要做出正确的决策,而良好的决策必须是基于用户数据所提出的。因此,不仅仅是数据科学团队,从产品部门到客户服务部门,再到销售等各个部门都应该获得这些数据资源和信息。

    在现代企业中,对数据的处理还仅仅是在每个月的全体会议上查看各项指标还远远不够。组织必须要将数据驱动纳入到决策制定中。以现代营销团队为例。营销人员有大量的丰富的数据可供他们自由支配,尤其是在智能手机,平板电脑,社交媒体平台爆炸式普及的今天,这样,一个品牌可以远距离地与观众互动,并了解顾客的相关信息。如果所有的这些数据被收集到一个中心位置,进行数据分析,那么对客户的长期行为分析并进行消费预判则成为了可能。同样地,根据这样的方法,其他部门,如销售、产品和客户服务部门也能获得前所未有的数据量。

    零碎数据共同形成宏观趋势判断

    如今,数据在各个行业和企业扮演着越来越重要的角色,企业应该将数据视为机会。每个数据集——CRM、CMS、ERP、营销软件,都包含大量信息和基础数据。现在或许看起来很微小,可是对数据深入的挖掘和分析将会给企业带来巨大的财富。而在现实生活当中,由于不可能预先知道哪些数据很重要,所以企业需要收集尽可能多的数据,这样即使市场环境发生大的改变,企业也能够做出合理的预判和尽可能贴近市场的决策。

    基础数据和数据分析同样重要

    数据质量是重中之重,倾斜的数据会导致错误的结果。如果你的判断来源于不完整的数据基础,你的决策便会产生一定的偏差甚至产生错误,而这最终将会侵蚀在数据驱动文化背景下人们对数据分析的信心。因此,简洁、完整和正确的数据是有效决策产生的必要前提。

    2016年美国总统大选的预测分析,很好地证明了数据质量的重要性。在当时的预测中,大多数数据是基于州级和国家级的电话投票进行的。但是电话调查中很容易出现无人接听的现象,而各州无人接听的占比率也存在着很大的区别,这会很大程度上影响选举团的预测(选举团制度是美国特有的一种选举方式, 选民在大选日投票时,不仅要在总统候选人当中选择,而且要选出代表50个州和华盛顿特区的538名选举人,以组成选举团。当选的选举人必须宣誓在选举团投票时把票投给在该州获胜的候选人。美国总统由选举团选举产生,并非由选民直接选举产生,获得半数以上选举人票者当选总统),结果就是,倾斜的数据产生错误的预测。

    如今,机器学习已经受到了大量的炒作。而机器依据大数据分析出来的预判,是否真的能符合事实情况,很大程度上决定于是否拥有坚实的数据基础:一个将数据驱动纳入到组织文化的企业,采集到的简介、完整和正确的数据。”数据驱动”一词已存在多年,但在今天快节奏和迅猛发展的数字经济中,它将成为当代企业的文化使命。

  • ?

    大数据挖掘与大数据分析一样吗?有什么区别?

    戒情人2002

    展开

    大数据挖掘与大数据分析一样吗?随着大数据越来越火,与大数据相关的职位也开始粉墨登场,引人关注。作为大数据行业最为重要的两种职位,大数据挖掘和大数据分析更是受到了与众不同的待遇。现在有许多的朋友都会问:大数据挖掘和大数据分析有什么区别,不是都是搞数据的吗?在这里,魔据小编认为:尽管大数据挖掘和大数据分析同属于大户数据行业,但是依然有着很大的区别。

    大数据挖掘与大数据分析一样吗?

    一.什么是数据

    不谈数据,就无以谈大数据挖掘和大数据分析,因此,我们先说一下什么是数据。

    其实很简单,数据就是观测值。例如测量数据。大家可能有个误区,认为客户填写的表单就是数据,对编程序而言,是的,但是不是常规的数据。当然填写的内容,一旦落入到观测空间,自然就成了数据。

    二.什么是大数据挖掘和大数据分析

    大数据挖掘指对大数据数据分析手段后的信息,进行价值化的分析。

    大数据分析指对大数据的一种操作手段,或者算法。目标是针对先验的约束,对数据进行整理、筛选、加工,由此得到信息。

    三.大数据挖掘和大数据分析有什么区别

    大数据挖掘是对信息的价值化的获取。价值化自然不会考虑数据本身,而是考虑数据是否有价值。由此,一批数据,你尝试对它做不同的价值评估,这是大数据挖掘。

    大数据分析是以输入的数据为基础,通过先验的约束,对数据进行处理,但是不以结论何如为调整。例如你需要图像识别,这个属于大数据分析。你要分析人脸,数据就是通过先验的 方法,就是出来个猫脸。你的数据分析也没有问题,你需要默默承受结果,并且尊重事实。因此大数据分析的重点在于数据的有效性、真实性和先验约束的正确性。

    大数据挖掘与大数据分析一样吗?

    此时对比大数据分析,最大的特点就是你需要调整你不同的先验约束,再次对数据进行分析。而先验的约束已经不是针对数据来源自身的特点,例如信噪比处理算法。你期望得到的一个有价值的内容,做先验的约束,以观测,数据根据这个约束,是否有正确的反馈。

    大数据挖掘与大数据分析一样吗?

    不管大数据挖掘和大数据分析有什么不同,这两个职位的前景都是十分好的,现在入行,正是最好的时机。

  • ?

    什么叫大数据分析

    凡星

    展开

    大数据行业发展如火如荼,国家政策利好,互联网大佬纷纷在大数据行业布局,我们想让自己的职业生涯在一个朝阳行业发展,肯定又要学习相关技术,让自己与时俱进,但是难就难在大数据是一个新兴事物,目前我国大学的专业里面还鲜少有这个专业,国家刚批的大数据专业,全国目前35个高校,但是从17年开始招生,2021年才有第一批毕业生进入职场,在四年期间,是大数据行业发展的飞速时期,没有行业发展是等着人才进入的,而是需要要虚位以待、蓄势待发,所以在没有高等教育准备好的大数据教育,如何高效的学习大数据,如何快速的与行业发展想契合,那么需要我们成为第一个吃螃蟹的人,作为一个随着大数据行业成长的职业人,首先要知道大数据是个啥?

    大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    那来帮大家分析下:如何高效的学习大数据。

    经常有初学者会问,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高……首先,如果你确定了想往这个方面发展,先考虑自己的过去从业经历、专业、兴趣是什么。计算机专业——操作系统、硬件、网络、服务器?软件专业——软件开发、编程、写代码?还是数学、统计学专业——对数据和数字特别感兴趣?

    那么你能找师傅带吗?

    但凡有这种想法的人,或多或少都会存有侥幸之心,或者叫做“天真,单纯”。希望不花一分钱,就能更快速的学到更优质,更实用的技能。

    关于这一点,我只想反问一句你:“如果你是大师,你凭什么愿意带我?”

    其实这就是想告诉你大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/设计/架构、数据分析/挖掘。

    先说一下大数据的4V特征:

    数据量大,TB->PB

    数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;

    商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;

    处理时效性高,海量数据的处理需求不再局限在离线计算当中。

    现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

    文件存储:Hadoop HDFS、Tachyon、KFS

    离线计算:Hadoop MapReduce、Spark

    流式、实时计算:Storm、Spark Streaming、S4、Heron

    K-V、NOSQL数据库:HBase、Redis、MongoDB

    资源管理:YARN、Mesos

    日志收集:Flume、Scribe、Logstash、Kibana

    消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ

    查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid

    分布式协调服务:Zookeeper

    集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager

    数据挖掘、机器学习:Mahout、Spark MLLib

    数据同步:Sqoop

    任务调度:Oozie

    ······

    第一步:初识Hadoop

    1.1 学会百度与Google

    不论遇到什么问题,先试试搜索并自己解决。

    Google首选,翻不过去的,就用百度吧。

    1.2 参考资料首选官方文档

    特别是对于入门来说,官方文档永远是首选文档。

    相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。

    1.3 先让Hadoop跑起来

    Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。

    关于Hadoop,你至少需要搞清楚以下是什么:

    · Hadoop 1.0、Hadoop 2.0

    · MapReduce、HDFS

    · NameNode、DataNode

    · JobTracker、TaskTracker

    · Yarn、ResourceManager、NodeManager

    自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。

    建议先使用安装包命令行安装,不要使用管理工具安装。

    另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0.

    1.4 尝试使用Hadoop

    · HDFS目录操作命令;

    · 上传、下载文件命令;

    · 提交运行MapReduce示例程序;

    · 打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。

    · 知道Hadoop的系统日志在哪里。

    1.5了解它们的原理

    MapReduce:如何分而治之;

    HDFS:数据到底在哪里,什么是副本;

    Yarn到底是什么,它能干什么;

    NameNode到底在干些什么;

    ResourceManager到底在干些什么;

    1.6 自己写一个MapReduce程序

    仿照WordCount例子,自己写一个(照抄也行)WordCount程序,

    打包并提交到Hadoop运行。

    不会Java的话,Shell、Python都可以,有个东西叫Hadoop Streaming。

    如果能认真完成了以上几步,恭喜你,你的一只脚已经进来了。

    第二步:更高效的WordCount

    2.1 学点SQL吧

    如果不懂数据库的童鞋先学习使用SQL句。

    2.2 SQL版WordCount

    在1.6中,你写(或者抄)的WordCount一共有几行代码?

    如果用SQL的话:

    SELECT word,COUNT(1) FROM wordcount GROUP BY word;

    这便是SQL的魅力,编程需要几十行,甚至上百行代码,SQL一句就搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。

    2.3 安装配置Hive

    Hive算是数据仓库工具,安装不难,网上有很多教程,配置完成后,可以正常进入Hive命令行。

    2.4 试试使用Hive

    尝试在Hive中创建wordcount表,并运行2.2中的SQL语句。在Hadoop WEB界面中找到刚才运行的SQL任务。看SQL查询结果是否和1.4中MapReduce中的结果一致。

    明明写的是SQL,为什么Hadoop WEB界面中看到的是MapReduce任务?

    2.5 学会Hive的基本命令

    创建、删除表;加载数据到表;下载Hive表的数据;并学习更多关于Hive的语法和命令。

    0和Hadoop2.0的区别

    MapReduce的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);

    HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;

    自己会写简单的MapReduce程序,运行出现问题,知道在哪里查看日志;

    会写简单的SELECT、WHERE、GROUP BY等SQL语句;

    Hive SQL转换成MapReduce的大致流程;

    Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;

    从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。

    第三步:把别处的数据搞到Hadoop上

    此处也可以叫做数据采集,把各个数据源的数据采集到Hadoop上。

    3.1 HDFS PUT命令

    put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。建议需熟练掌握。

    3.2 HDFS API

    HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API。

    实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。

    可以尝试了解原理,试着写几个Demo。

    3.3 Sqoop

    Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库Oracle/MySQL/SQLServer等之间进行数据交换的开源框架。

    就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换。

    自己下载和配置Sqoop(建议先使用Sqoop1,Sqoop2比较复杂)。

    了解Sqoop常用的配置参数和方法。

    使用Sqoop完成从MySQL同步数据到HDFS;

    使用Sqoop完成从MySQL同步数据到Hive表;

    PS:如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。

    3.4 Flume

    Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。

    下载和配置Flume。使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;

    PS:Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。

    3.5 阿里开源的DataX

    之所以介绍这个,是因为以前某公司客户目前使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,个人感觉非常好用。现在DataX已经是3.0版本,支持很多数据源。你也可以在其之上做二次开发。

    PS:有兴趣的可以研究和使用一下,对比一下它与Sqoop。

    至此,你的“大数据平台”应该是这样的:

    第四步:把Hadoop上的数据搞到别处去

    前面介绍了如何把数据源的数据采集到Hadoop上,数据到Hadoop上之后,便可以使用Hive和MapReduce进行分析了。那么接下来的问题是,分析完的结果如何从Hadoop上同步到其他系统和应用中去呢?

    其实此处的方法和第三步基本一致的。

    4.1 HDFS GET命令

    把HDFS上的文件GET到本地。需要熟练掌握。

    4.2 HDFS API

    原理同3.2。

    4.3 Sqoop

    原理同3.3。

    使用Sqoop完成将HDFS上的文件同步到MySQL;

    使用Sqoop完成将Hive表中的数据同步到MySQL;

    4.4 DataX

    原理同3.4

    此时,“你的大数据平台”应该是这样的:

    走完第三步和第四步的流程,那么你应该已经具备以下技能和知识点:

    · 知道如何把已有的数据采集到HDFS上,包括离线采集和实时采集;

    · 知道sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交换工具;

    · 知道flume可以用作实时的日志采集;

    至此,对于大数据平台,应该已经掌握如何搭建Hadoop集群,把数据采集到Hadoop上,使用Hive和MapReduce来分析数据,把分析结果同步到其他数据源。

    接下来的问题就是,Hive使用的越来越多,你会发现很多不愉快的地方,特别是速度慢,

    大多情况下,明明我的数据量很小,它都要申请资源,启动MapReduce来执行。

    第五步:快一点吧,我的SQL

    其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。因此SQL On Hadoop的框架越来越多,按我的了解,最常用的按照流行度依次为SparkSQL、Impala和Presto.这三种框架基于半内存或者全内存,提供了SQL接口来快速查询分析Hadoop上的数据。

    目前我们的方案使用的是SparkSQL,至于为什么用SparkSQL,原因大概如下:

    · 使用Spark还做了其他事情,不想引入过多的框架;

    · Impala对内存的需求太大,没有过多资源部署;

    5.1 关于Spark和SparkSQL

    什么是Spark,什么是SparkSQL。

    Spark有的核心概念及名词解释。

    SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。

    5.2 如何部署和运行SparkSQL

    Spark有哪些部署模式?

    如何在Yarn上运行SparkSQL?

    使用SparkSQL查询Hive中的表。

    PS:Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。

    第六步:一夫多妻制

    其实我想说的是数据的一次采集、多次消费。

    在实际业务场景下,特别是对于一些监控日志,想即时的从日志中了解一些指标(关于实时计算,后面步节会有介绍),这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。

    为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka。

    6.1 关于Kafka

    Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    6.2 如何部署和使用Kafka

    使用单机部署Kafka,并成功运行自带的生产者和消费者例子。

    使用Java程序自己编写并运行生产者和消费者程序。

    Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

    至此,“大数据平台”应该扩充成这样:

    这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS。

    总结:

    为什么Spark比MapReduce快。

    使用SparkSQL代替Hive,更快的运行SQL。

    使用Kafka完成数据的一次收集,多次消费架构。

    自己可以写程序完成Kafka的生产者和消费者。

    前面的学习已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务...

  • ?

    大数据是什么?超全的大数据分析工具

    Haile

    展开

    大数据是什么?大数据处理分析的工具有哪些?不管是即将学习大数据的人亦或是转型向学大数据的人都想要了解的。

    1,什么是大数据

    简言之,从各种各样类型的数据中,快速获得有价值信息的能力,就是大数据技术。

    2,大数据最核心的价值

    大数据最核心的价值就是在于对于海量数据进行存储和分析。相比起现有的其他技术而言,大数据的“廉价、迅速、优化”这三方面的综合成本是最优的。

    3,大数据处理分析的六大最好工具

    一、 Apache Hadoop

    Hadoop 是一个能够对大量数据进行分布式处理的软件框架。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。

    Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

    ⒈高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

    ⒉高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

    ⒊高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

    ⒋高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

    Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

    二、HPCC

    HPCC,High Performance Computing and Communications(高性能计算与通信)的缩写。1993年,由美国科学、工程、技术联邦协调理事会向国会提交了“重大挑战项目:高性能计算与 通信”的报告,也就是被称为HPCC计划的报告,即美国总统科学战略项目,其目的是通过加强研究与开发解决一批重要的科学与技术挑战问题。HPCC是美国 实施信息高速公路而上实施的计划,该计划的实施将耗资百亿美元,其主要目标要达到:开发可扩展的计算系统及相关软件,以支持太位级网络传输性能,开发千兆 比特网络技术,扩展研究和教育机构及网络连接能力。

    该项目主要由五部分组成:

    1、高性能计算机系统(HPCS),内容包括今后几代计算机系统的研究、系统设计工具、先进的典型系统及原有系统的评价等;

    2、先进软件技术与算法(ASTA),内容有巨大挑战问题的软件支撑、新算法设计、软件分支与工具、计算计算及高性能计算研究中心等;

    3、国家科研与教育网格(NREN),内容有中接站及10亿位级传输的研究与开发;

    4、基本研究与人类资源(BRHR),内容有基础研究、培训、教育及课程教材,被设计通过奖励调查者-开始的,长期 的调查在可升级的高性能计算中来增加创新意识流,通过提高教育和高性能的计算训练和通信来加大熟练的和训练有素的人员的联营,和来提供必需的基础架构来支 持这些调查和研究活动;

    5、信息基础结构技术和应用(IITA ),目的在于保证美国在先进信息技术开发方面的领先地位。

    三、Storm

    Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。 Storm很简单,支持许多种编程语言,使用起来非常有趣。Storm由Twitter开源而来,其它知名的应用企业包括Groupon、淘宝、支付宝、阿里巴巴、乐元素、Admaster等等。

    Storm有许多应用领域:实时分析、在线机器学习、不停顿的计算、分布式RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务)、 ETL(Extraction-Transformation-Loading的缩写,即数据抽取、转换和加载)等等。Storm的处理速度惊人:经测 试,每个节点每秒钟可以处理100万个数据元组。Storm是可扩展、容错,很容易设置和操作。

    四、Apache Drill

    为了帮助企业用户寻找更为有效、加快Hadoop数据查询的方法,Apache软件基金会近日发起了一项名为“Drill”的开源项目。Apache Drill 实现了 Google's Dremel.

    据Hadoop厂商MapR Technologies公司产品经理Tomer Shiran介绍,“Drill”已经作为Apache孵化器项目来运作,将面向全球软件工程师持续推广。

    该项目将会创建出开源版本的谷歌Dremel Hadoop工具(谷歌使用该工具来为Hadoop数据分析工具的互联网应用提速)。而“Drill”将有助于Hadoop用户实现更快查询海量数据集的目的。

    “Drill”项目其实也是从谷歌的Dremel项目中获得灵感:该项目帮助谷歌实现海量数据集的分析处理,包括分析抓取Web文档、跟踪安装在Android Market上的应用程序数据、分析垃圾邮件、分析谷歌分布式构建系统上的测试结果等等。

    通过开发“Drill”Apache开源项目,组织机构将有望建立Drill所属的API接口和灵活强大的体系架构,从而帮助支持广泛的数据源、数据格式和查询语言。

    五、RapidMiner

    RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。

    功能和特点

    免费提供数据挖掘技术和库

    100%用Java代码(可运行在操作系统)

    数据挖掘过程简单,强大和直观

    内部XML保证了标准化的格式来表示交换数据挖掘过程

    可以用简单脚本语言自动进行大规模进程

    多层次的数据视图,确保有效和透明的数据

    图形用户界面的互动原型

    命令行(批处理模式)自动大规模应用

    Java API(应用编程接口)

    简单的插件和推广机制

    强大的可视化引擎,许多尖端的高维数据的可视化建模

    400多个数据挖掘运营商支持

    耶鲁大学已成功地应用在许多不同的应用领域,包括文本挖掘,多媒体挖掘,功能设计,数据流挖掘,集成开发的方法和分布式数据挖掘。

    六、 Pentaho BI

    Pentaho BI 平台不同于传统的BI 产品,它是一个以流程为中心的,面向解决方案(Solution)的框架。其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。

    Pentaho BI 平台,Pentaho Open BI 套件的核心架构和基础,是以流程为中心的,因为其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在BI 平台上执行的商业智能流程。流程可以很容易的被定制,也可以添加新的流程。BI 平台包含组件和报表,用以分析这些流程的性能。目前,Pentaho的主要组成元素包括报表生成、分析、数据挖掘和工作流管理等等。这些组件通过 J2EE、WebService、SOAP、HTTP、Java、JavaScript、Portals等技术集成到Pentaho平台中来。 Pentaho的发行,主要以Pentaho SDK的形式进行。

    Pentaho SDK共包含五个部分:Pentaho平台、Pentaho示例数据库、可独立运行的Pentaho平台、Pentaho解决方案示例和一个预先配制好的 Pentaho网络服务器。其中Pentaho平台是Pentaho平台最主要的部分,囊括了Pentaho平台源代码的主体;Pentaho数据库为 Pentaho平台的正常运行提供的数据服务,包括配置信息、Solution相关的信息等等,对于Pentaho平台来说它不是必须的,通过配置是可以用其它数据库服务取代的;可独立运行的Pentaho平台是Pentaho平台的独立运行模式的示例,它演示了如何使Pentaho平台在没有应用服务器支持的情况下独立运行;Pentaho解决方案示例是一个Eclipse工程,用来演示如何为Pentaho平台开发相关的商业智能解决方案。

    Pentaho BI 平台构建于服务器,引擎和组件的基础之上。这些提供了系统的J2EE 服务器,安全,portal,工作流,规则引擎,图表,协作,内容管理,数据集成,分析和建模功能。这些组件的大部分是基于标准的,可使用其他产品替换之。

    4. 大数据特点

    第一,数据体量巨大。从TB级别,跃升到PB级别。

    第二,数据类型繁多,如前文提到的网络日志、视频、图片、地理位置信息,等等。

    第三,价值密度低。以视频为例,连续不间断监控过程中,可能有用的数据仅仅有一两秒。

    第四,处理速度快。1秒定律。最后这一点也是和传统的数据挖掘技术有着本质的不同。物联网、云计算、移动互联网、车联网、手机、平板电脑、PC以及遍布地球各个角落的各种各样的传感器,无一不是数据来源或者承载的方式。

    如果对于大数据还有更多的疑问,可以持续关注作者,也可以留言或者私信问题。

  • ?

    大数据工程师和数据分析师有何区别?

    梅希约内斯

    展开

    大数据并不是一种概念,而是一种方法论。简单来说,就是通过分析和挖掘全量的非抽样的数据辅助决策。大数据可以实现的应用可以概括为两个方向,一个是精准化定制,第二个是预测。比如像通过搜索引擎搜索同样的内容,每个人的结果却是大不相同的。

    随着大数据的愈演愈热,相关大数据的职业也成为热门,给人才发展带来带来了很多机会。数据工程师、数据分析师已经成为大数据行业最热门的职位。

    数据分析师是什么?

    数据分析师不同行业中获取数据,并通过获取到的数据对问题进行解答。最后还需要以合适的方式对结果进行展示,以辅助企业做出商业决策。一般来讲,数据分析师的任务是对数据进行清洗、分析以及可视化。

    根据行业的不同,数据分析师的头衔也可能不同。比如:业务分析师、商业智能分析师、运营分析师、数据库分析师等等。不管头衔是什么,数据分析师都可谓是通才。他们能够胜任诸多岗位与团队角色,同时也能在极大程度上帮助企业做出基于数据的决策。

    数据分析师所需技能

    编程,统计学和数学,机器学习,数据可视化和通信技术,数据处理和数据集定义

    数据工程师是什么?

    在大数据的时代,数据工程师的角色愈发地重要。数据工程师一般被定义成“深刻理解统计学科的明星软件工程师”。数据工程师是系统的构建者与优化者,所有公司正常运营的基础之一,数据工程师的职责就是保证数据在接收、转移的准确性,并且保证其它用户对数据的可访问性。

    和数据分析师不同,他们不太关注统计、分析技能、建模等。他们的工作重点在于数据架构、计算、数据存储、数据流等。因此,数据工程师必须具备相当强的编程能力—包括编写数据查询程序的能力。也就是说,他们的能力必须达到开发运营高手的级别。

    数据工程师还负责数据库设计、仓储数据库、建立数据库等。 这就意味着,他们必须十分熟悉现有的数据库技术和数据管理系统,比如和大数据有关的Hadoop与HBase 等。此外,非功能性的基础设施问题,如数据的可扩展性、可靠性、韧性、有效性,备份等也由数据工程师来负责。

    数据工程师所需技能

    数学和统计学,程序设计和计算机科学,分析技能,商业战略

    对于招聘市场端在大数据工程师和大数据分析师二个方向所涉及的岗位具体名称如下图所示:

    大数据工程师方向:

    大数据分析师方向:

    总结:

    数据工程师的重心在“后端”,他们需要持续的优化数据通道,才能保证企业数据的准确性与可用性。同时还需确保在需要的时候能够顺畅地将数据提供给用户。

    数据分析师则是通过使用数据工程师所构建的自定义API来提取新的数据集,并对其中的数据趋势进行识别,同时对异常数据进行分析。分析师们将会对结果进行总结,并以一种清晰直观的方式来展示这些结果,以便于其它非技术团队能够更好地了解他们目前的工作效果。

    有了以上信息,数据分析师和大数据工程师之间的差异应该清楚。对于数据驱动的职位来说,通过数据来找到正确的问题,并据此进行更加精确的试验,这就是其最根本的工作内容。进一步的,数据科学领域将不断发展进步,同时也会对相关从业人员提出持续学习的要求。

    分享 IT 技术和行业经验,请关注-技术学派。

  • ?

    干货 | 这是一份完整的大数据处理技术总结与分析

    姜晓啸

    展开

    一 数据分析处理需求分类

    1 事务型处理

    在我们实际生活中,事务型数据处理需求非常常见,例如:淘宝网站交易系统、12306网站火车票交易系统、超市POS系统等都属于事务型数据处理系统。

    这类系统数据处理特点包括以下几点:

    一是事务处理型操作都是细粒度操作,每次事务处理涉及数据量都很小。

    二是计算相对简单,一般只有少数几步操作组成,比如修改某行的某列;

    三是事务型处理操作涉及数据的增、删、改、查,对事务完整性和数据一致性要求非常高。

    四是事务性操作都是实时交互式操作,至少能在几秒内执行完成;

    五是基于以上特点,索引是支撑事务型处理一个非常重要的技术。

    在数据量和并发交易量不大情况下,一般依托单机版关系型数据库,例如ORACLE、MYSQL、SQLSERVER,再加数据复制(DataGurad、 RMAN、MySQL数据复制等)等高可用措施即可满足业务需求。

    在数据量和并发交易量增加情况下,一般可以采用ORALCE RAC集群方式或者是通过硬件升级(采用小型机、大型机等,如银行系统、运营商计费系统、证卷系统)来支撑。

    事务型操作在淘宝、12306等互联网企业中,由于数据量大、访问并发量高,必然采用分布式技术来应对,这样就带来了分布式事务处理问题,而分布式事务处理很难做到高效,因此一般采用根据业务应用特点来开发专用的系统来解决本问题。

    2 数据统计分析

    数据统计主要是被各类企业通过分析自己的销售记录等企业日常的运营数据,以辅助企业管理层来进行运营决策。典型的使用场景有:周报表、月报表等固定时间提供给领导的各类统计报表;市场营销部门,通过各种维度组合进行统计分析,以制定相应的营销策略等。

    数据统计分析特点包括以下几点:

    一是数据统计一般涉及大量数据的聚合运算,每次统计涉及数据量会比较大。

    二是数据统计分析计算相对复杂,例如会涉及大量goupby、 子查询、嵌套查询、窗口函数、聚合函数、排序等;有些复杂统计可能需要编写SQL脚本才能实现。

    三是数据统计分析实时性相对没有事务型操作要求高。但除固定报表外,目前越来越多的用户希望能做做到交互式实时统计;

    传统的数据统计分析主要采用基于MPP并行数据库的数据仓库技术。主要采用维度模型,通过预计算等方法,把数据整理成适合统计分析的结构来实现高性能的数据统计分析,以支持可以通过下钻和上卷操作,实现各种维度组合以及各种粒度的统计分析。

    另外目前在数据统计分析领域,为了满足交互式统计分析需求,基于内存计算的数据库仓库系统也成为一个发展趋势,例如SAP的HANA平台。

    3 数据挖掘

    数据挖掘主要是根据商业目标,采用数据挖掘算法自动从海量数据中发现隐含在海量数据中的规律和知识。

    数据挖掘主要过程是:根据分析挖掘目标,从数据库中把数据提取出来,然后经过ETL组织成适合分析挖掘算法使用宽表,然后利用数据挖掘软件进行挖掘。传统的数据挖掘软件,一般只能支持在单机上进行小规模数据处理,受此限制传统数据分析挖掘一般会采用抽样方式来减少数据分析规模。

    数据挖掘的计算复杂度和灵活度远远超过前两类需求。一是由于数据挖掘问题开放性,导致数据挖掘会涉及大量衍生变量计算,衍生变量多变导致数据预处理计算复杂性;二是很多数据挖掘算法本身就比较复杂,计算量就很大,特别是大量机器学习算法,都是迭代计算,需要通过多次迭代来求最优解,例如K-means聚类算法、PageRank算法等。

    因此总体来讲,数据分析挖掘的特点是:

    1、数据挖掘的整个计算更复杂,一般是由多个步骤组成计算流,多个计算步骤之间存在数据交换,也就是会产生大量中间结果,难以用一条sql语句来表达。

    2、计算应该能够非常灵活表达,很多需要利用高级语言编程实现。

    二 大数据背景下事务型处理系统相关技术

    在google、facebook、taobao等大互联网公司出现之后,这些公司注册和在线用户数量都非长大,因此该公司交易系统需要解决“海量数据+高并发+数据一致性+高可用性”的问题。

    为了解决该问题,从目前资料来看,其实没有一个通用的解决方案,各大公司都会根据自己业务特点定制开发相应的系统,但是常用的思路主要包括以下几点:

    (1)数据库分片,结合业务和数据特点将数据分布在多台机器上。

    (2)利用缓存等机制,尽量利用内存,解决高并发时遇到的随机IO效率问题。

    (3)结合数据复制等技术实现读写分离,以及提高系统可用性。

    (4)大量采用异步处理机制,对应高并发冲击。

    (5)根据实际业务需求,尽量避免分布式事务。

    1相关系统介绍

    1) 阿里CORBAR系统

    阿里COBAR系统是一个基于MYSQL数据库的分布式数据库系统,属于基于分布式数据库中间件的分布式数据库系统。该系统是前身是陈思儒开发的“变形虫”系统(以前调研过),由于陈思儒离开阿里去了盛大,阿里当心“变形虫”稳定性等问题,重新开发该项目。

    该系统主要采用数据库分片思路,实现了:数据拆分、读写分离、复制等功能。由于此系统由于只需要满足事务型操作即可,因此相对真正并行数据库集群(例如TeraData等),此类系统提供操作没有也不需要提供一些复杂跨库处理,因此该系统存在以下限制:

    (1)不支持跨库的join、分页、排序、子查询。

    (2)insert等变更语句必须包括拆分字段等。

    (3)应该不支持跨机事务(以前变形虫不支持)。

    说白了此类系统不具备并行计算能力,基本上相当于数据库路由器!

    另外此类系统的在实际应用的关键问题是,根据什么对数据进行切分,因为切分不好会导致分布式的事务问题。

    2) 阿里OceanBase系统

    该系统也是淘宝为了解决高并发、大数据环境下事务型处理而定制开发的一个系统。该系统主要思路和特点如下:

    (1)他们发现在实际生成环境中,每天更新的数据只占总体数据的1%不到,因此他们把数据分为:基线数据和增量更新数据。

    (2)基线数据是静态数据,采用分布式存储方式进行存储。

    (3)只在一台服务器上存储和处理增量更新数据,并且是在内存中存储和处理更新数据。

    (4)在系统负载轻的时候,把增量更新批量合并到基线数据中。

    (5)数据访问时同时访问基线数据和增量更新数据并合并。

    因此这样好处是:

    (1)读事务和写事务分离

    (2)通过牺牲一点扩展性(写是一个单点),来避免分布式事务处理。

    说明:该系统虽然能处理高并发的事务型处理,号称很牛逼,但其实也只是根据电商的事务处理来定制开发的专用系统,个人认为其技术难度小于oracle等通用型的数据库。该系统无法应用到银行或者12306等,因为其事务处理的逻辑远远比电商商品买卖处理逻辑复杂。

    在目前的大数据时代,一定是基于应用定制才能找到好的解决方案!

    3) 基于Hbase的交易系统

    在hadoop平台下,HBASE数据库是一个分布式KV数据库,属于实时数据库范畴。支付宝目前支付记录就是存储在HBASE数据库中。

    HBASE数据库接口是非SQL接口,而是KV操作接口(基于Key的访问和基于key范围的scan操作),因此HBASE数据库虽然可扩展性非常好,但是由于其接口限制导致该数据库能支持上层应用很窄。基于HBASE应用的设计中,关键点是key的设计,要根据需要支持的应用来设计key的组成。

    可以认为HBASE数据库只支持作为KEY的这一列的索引。虽然目前HBASE有支持二级索引的方案,二级索引维护将会比较麻烦。

    2并发和并行区别

    并发是指同时执行通常不相关的各种任务,例如交易型系统典型属于高并发系统。

    并行是通过将一个很大的计算任务,划分为多个小的计算任务,然后多个小计算任务的并行执行,来缩短该计算任务计算时间。

    两者主要区别在于:

    (1)通讯与协调方面:在并行计算中,由于多个小任务同属一个大的计算任务,因此小任务之间存在依赖关系,小任务之间需要大量通讯和协调;相反,并发中的多个任务之间基本相互独立,任务与任务之间相关性很小。

    (2)容错处理方面:由于并发任务之间相互独立,某个任务执行失败并不会影响其它的任务。但是并行计算中的多个任务属于一个大任务,因此某个子任务的失败,如果不能恢复(粗粒度容错与细粒度容错),则整个任务都会失败。

    3本章总结

    数据量大不一定需要并行计算,虽然数据量大,数据是分布存储,但是如果每次操作基本上还是针对少量数据,因此每次操作基本上都是在一台服务器上完成,不涉及并行计算。只是需要通过数据复制、数据缓存、异步处理等方式来支撑高并发访问量

    三 大数据背景下数据统计分析技术介绍

    随数据量变大,和事务处理不同的是,单个统计分析涉及数据量会非常大,单个统计分析任务涉及数据会分散在多台服务器上,且由于计算量大,采用单台服务器进行计算,会导致计算时间非常长,单个统计分析任务必须采用并行计算方式来加快单个统计分析任务执行速度。

    1并行查询与并行计算技术介绍

    在大数据背景下的数据统计分析技术门类很多,常见的有:

    n MPP并行数据库 : TeraData、GreenPlum、Vertica等。

    n 基于MapReduce并行计算框架的数据仓库:

    HIVE(Hadoop平台) 、Tenzing(Google公司)

    n 基于Hbase的Phoenix系统

    n HadoopDB系统

    n EMC公司的hapt系统

    n MPP分布式查询引擎: Dremel、Impala、Presto、Shard query、Citusdb。

    n 基于SPARK的Shark、基于Dryad的SCOPE、基于Tez的stinger。

    n 基于hadoop+index的JethroData系统

    n 基于内存计算的Druid系统

    这些系统都解决了海量数据下的数据统计分析的问题,并且这些系统另外一个共同特点是都提供了SQL或者类SQL接口。

    为了能够较好研究这些系统,我们需要对并行查询与并行计算的相关技术做一个简要的介绍。

    首先所有的系统都可以分为三个层次: 语义层、并行计算引擎层、分布式存储层。语义层提供一个编程接口让用户表达所需要计算,并负责把该计算翻译成底层并行计算引擎可以执行的执行计划,并由并行计算引擎来执行,最下面一层是分布式存储层。

    对于提供类SQL接口并行计算系统,语义层可以认为是SQL解析层。

    1) 语义层

    SQL语言是一种声名式语言,SQL只是表达了要做什么,而没有表达怎么做。为此,SQL解析层主要作用是:将用户提交的基于SQL的统计分析请求,转化为底层计算引擎层可以执行的执行计划。也就是解决“怎么做”的问题。

    SQL解析层工作主要包括两个大方面:

    (1) 通过语法分析技术来理解要做什么。在关系数据库中,一般会把SQL语言分析后,形成树型结构的执行计划。

    (2) 在语法分析技术上,利用各种优化技术和算法,找出一种最经济物理执行计划。

    优化可以分为两个方面:一是逻辑层面优化、二是物理执行层面优化。

    (1) 逻辑层优化

    逻辑层面个人认为主要是因为同样表达一个分析请求,有的人SQL写的好,有的人SQL写的烂,因此在逻辑层面可以通过一些等价关系代数变换,实现查询重写,将写的比较烂的sql变换为好的写法。

    比较典型优化是:“把投影和过滤下沉,先执行过滤和投影操作”,减少中间结果。

    (2) 物理层优化

    物理层面优化是在逻辑优化后,结合实际物理执行过程,找出最优的物理执行计划。生成物理查询计划的工作包括:

    ü 增加一些操作符: 包括扫描和排序等。

    ü 确定各个操作符实现算法。例如扫描是全表扫描还是利用索引;Join是采用HASH连接、索引连接、合并排序等实现算法中的那一种。

    ü 确定操作符之间的数据流转方法:物化还是流水线方式。

    ü 采用基于代价估算方法确定最优的物理执行计划,目前代价估算主要是以估算该物理计划需要的IO量。另外对于并行数据库,则还要考虑通讯代价,即尽量减少数据在各个机器之间的传递。

    在物理层优化的代价估算过程中,代价估算需要依靠很多统计信息,如表有多大,表中相关列的值分布是什么样子等。传统数据库在数据Load过程中会事先计算好这些统计信息。并行计算中还需要考虑通讯代价。

    需要指出是,由于imapla、Presto、HIVE等系统只是一个查询引擎,它们可以直接查询以普通文件方式存储在HDFS系统上的文件,因此这些系统一般无法使用索引和各种统计信息来进行物理执行计划的优化,这些系统一般只能在逻辑层进行一些基于规则静态优化。根据SHARK论文,SHARK系统支持根据前面一些节点计算获得的信息,来动态优化后面执行计划。

    (3) 物化与流水线执行方法

    一条SQL语句对开发人员而言,感觉只是一次调用,但是实际上在数据库内部,一条SQL语句执行其实是有多个操作符组合而成的的树型结构计算流。如下图:

    针对该计算流有两种执行方式:一是基于物化或者是实体化执行方式,另外一种是基于数据流的执行方式。

    第一种方法的过程是: 把各个操作运算排序,并把每个操作运算的输出的中间结果存储在磁盘上,直到被另外一个操作运算所...

  • ?

    大数据分析与数据分析的根本区别在哪里?

    妙风衫

    展开

    作者:CDA数据分析师

    大数据分析与数据分析这几年一直都是个高频词,很多人都开始纷纷转行到这个领域,也有不少人开始跃跃欲试,想找准时机进到大数据或数据分析领域。如今大数据分析和数据分析火爆,要说时机,可谓处处都是时机,关键要明了的一点是,大数据分析和数据分析两者的根本区别在哪里,只有真正了解了,才会知晓更加适合自己的领域是大数据分析师还是数据分析师。毕竟职场如战场,时间就是生活,不容儿戏,更不容怠慢。下面我来好好告诉大家两者的本质区别到底是什么!

    大数据分析:指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》 中大数据分析指不用随机分析法(抽样调查)这样的捷径,而采用所有数据进行分析处理,因此不用考虑数据的分布状态(抽样数据是需要考虑样本分布是否有偏,是否与总体一致)也不用考虑假设检验,这点也是大数据分析与一般数据分析的一个区别。

    数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。

    大数据分析与数据分析最核心的区别是处理的数据规模不同,由此导致两个方向从业者的技能也是不同的。在CDA人才能力标准中从理论基础、软件工具、分析方法、业务分析、可视化五个方面对数据分析师与大数据分析师进行了定义。

    【数据分析师的要求】

    数据分析师的理论要求:统计学、概率论和数理统计、多元统计分析、时间序列、数据挖掘。

    工具要求:必要:Excel、SQL可选:SPSS MODELER、R、Python、SAS等

    分析方法要求:除掌握基本数据处理及分析方法以外,还应掌握高级数据分析及数据挖掘方法(多元线性回归法,贝叶斯,神经网络,决策树,聚类分析法,关联规则,时间序列,支持向量机,集成学习等)和可视化技术。

    业务分析能力:可以将业务目标转化为数据分析目标;熟悉常用算法和数据结构,熟悉企业数据库构架建设;针对不同分析主体,可以熟练的进行维度分析,能够从海量数据中搜集并提取信息;通过相关数据分析方法,结合一个或多个数据分析软件完成对海量数据的处理和分析。

    结果展现能力:报告体现数据挖掘的整体流程,层层阐述信息的收集、模型的构建、结果的验证和解读,对行业进行评估,优化和决策。

    【大数据分析师的要求】

    理论要求:统计学、概率论和数据库、数据挖掘、JAVA基础、Linux基础。

    工具要求:必要: SQL、Hadoop、HDFS、Mapreduce、Mahout、Hive、Spark可选:RHadoop、Hbase、ZooKeeper等

    分析方法要求:熟练掌握hadoop集群搭建;熟悉nosql数据库的原理及特征,并会运用在相关的场景;熟练运用mahout、spark提供的进行大数据分析的数据挖掘算法,包括聚类(kmeans算法、canopy算法)、分类(贝叶斯算法、随机森林算法)、主题推荐(基于物品的推荐、基于用户的推荐)等算法的原理和使用范围。

    业务分析能力:熟悉hadoop+hive+spark进行大数据分析的架构设计,并能针对不同的业务提出大数据架构的解决思路。掌握hadoop+hive+ Spark+tableau平台上Spark MLlib、SparkSQL的功能与应用场景,根据不同的数据业务需求选择合适的组件进行分析与处理。并对基于Spark框架提出的模型进行对比分析与完善。

    结果展现能力:报告能体现大数据分析的优势,能清楚地阐述数据采集、大数据处理过程及最终结果的解读,同时提出模型的优化和改进之处,以利于提升大数据分析的商业价值。

    综上大数据分析与数据分析的根本区别就是分析的思维与分析所用的工具不同。大家在求职或转行过程认清自己对两者的偏好和自己的兴趣所在,以及自己的能力更适合在哪个领域发挥,还有自己所在城市对两者的职业需求,综合天时地利人和三个条件,我们才能做出更理智更客观更科学的抉择。

大数据与分析

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP