- ?
什么是数据分析、数据分析本质又是什么?
彭桐
展开
一般情况下,我们所说的分析是指,使用大量数据、统计和定量分析、解释和预测以及基于事实的管理来推动决策过程与实现价值增生。
根据分析的方法和目的,分析可以被划分为描述性分析(descri-ptive analytics)、预测性分析(predictive analytics)和规范性分析(prescriptive analytics)。描述性分析包括数据收集、整理、制表、制图以及描述正要研究的食物的特征,这类分析以往被称为“报告”。描述性分析可能非常有用,但它不能解释某种结果出现的原因或者未来可能会发生的事情。
预测性分析不仅可以对数据特征和变量(可以假定取消范围的因素)之间的关系进行描述,还可以基于过去的数据预测未来。预测性分析首先会确定变量值之间的关联,然后基于这种已知的关联预测另一种现象出现的可能性,比如在看到某个广告后,一位消费者可能会去买产品的可能性。虽然预测性分析中的预测是基于变量之间的关系做出来的,但这不代表预测性分析中都需要明确因果关系。事实上,准确的预测并不一定与需要基于因果关系。
规范性分析是更高层次的分析,如实验设计和优化等。就像医生会在出处方建议患者采取什么行动一样,实验设计试图通过做实验给出某些事情发生的原因。为了能够在因果关系研究中信心饱满地做出推断,研究人员必须妥善处理一个或多个独立的变量,并有效控制其他的变量。如果处于试验环境下的测试组的表现大大优于照相,决策制定者就应该立即推广这种实验环境。
优化是规范性分析采用的一种方法,指试图识别出一个特定变量和另一个变量之间理想的关系水平。例如,我们可以能会对识别最有可能让产品实现高收益的价格感兴趣。同样地,优化这种方法能够识别出使了零售企业最大限制避免缺货情况的库存水平。
根据分析采用的方法以及收集和分析的数据类型,我们可以将分析分为定性分析(qualitative analysis)和定量分析(quantitative analysis)。定性分析的目的是深入了解某种现象的根本原因和诱因。非结构化数据通常是从少数非代表性案例中收集而来,并进行了非统计性分析。定量分析是分析的最初阶段,他通常是探索性分析的有效工具,定量分析是指通过统计、数学或者计算的方式对现象进行系统的实证研究。通常情况下,结构化数据是从大量典型案例中收集而来,并进行统计分析。
为了服务于研究者的不同研究目的,存在以下几种类型的分析:
*统计学:收集、整理、分析、说明和呈现数据的学科;
*预测:根据已有数据,预测一下一些感兴趣的变量在未来某个特定的时间点的情况;
*数据挖掘:通常使用算法和统计技术,自动或半自动地提取大量数据中未知的有趣模式;
*文字挖掘:用类似数据挖掘的方式从文本中得模式和趋势的过程;
*优化:在同时满足约束条件的情况下,按照某些标准利用数学方法来寻找最优的解决方案;
*实验设计:给各组随机分配被试。然后使用测试组和对照组来推导出特定结果中存在的因果关系。
虽然此处给出了一些列常用的分析方法,但在使用过程中会不可避免地出现相当大的重叠。例如,回归分析(regression analysis)是预测分析中最常用的方法,与此同时,他也是统计学、预测和数据挖掘中常用的方法。此外,时间序列分析(time seties analysis)是用于分析数据随时间变化的一种具体统计方法、在统计学和预测中经常被用到。
- ?
数据分析建立六步骤
格温多琳
展开
一、什么是数据分析?
二、数据分析的分类
数据分析的三大作用:现状分析、原因分析、预测分析。
三、数据分析的六部曲
1.明确目的和思路
首先先明确分析目的,然后梳理分析思路,并搭建分析框架,把分析目的分解成若干个不同的分析要点,即如何具体开展数据分析,需要从哪几个角度进行分析,采用哪些分析指标(各类分析指标需合理搭配使用)。同时,确保分析框架的体系化和逻辑性。
2.数据收集
一般数据来源于四种方式:数据库、第三方数据统计工具、专业的调研机构的统计年鉴或报告、市场调查。
3.数据处理
数据处理主要包括数据清洗、数据转化、数据抽取、数据合并、数据计算等处理方法,将各种原始数据加工成为数据分析所要求的样式。
4.数据分析
常用的数据分析工具,掌握Excel的数据透视表,就能解决大多数的问题。需要的话,可以再有针对性的学习SPSS、R等工具。
数据挖掘是一种高级的数据分析方法,侧重解决四类数据分析问题:分类、聚类、关联和预测,重点在寻找模式与规律。
5.数据展现
一般情况下,数据是通过表格和图形的方式来呈现的。
常用的数据图表包括饼图、柱形图、条形图、折线图、气泡图、散点图、雷达图等。进一步加工整理变成我们需要的图形,如金字塔图、矩阵图、漏斗图、帕雷托图等。
一般能用图说明问题的就不用表格,能用表说明问题的就不用文字。
图表制作的五个步骤:
1、确定要表达主题
2、确定哪种图表最适合
3、选择数据制作图表
4、检查是否真实反映数据
5、检查是否表达观点
常用图表类型和作用:
6.报告撰写
一份好的数据分析报告,首先需要有一个好的分析框架,并且图文并茂,层次明晰,能够让阅读者一目了然。
结构清晰、主次分明可以使阅读者正确理解报告内容;图文并茂,可以令数据更加生动活泼,提高视觉冲击力,有助于阅读者更形象、直观地看清楚问题和结论,从而产生思考。
好的数据分析报告需要有明确的结论、建议或解决方案。
四、数据分析的四大误区
1.分析目的不明确,为了分析而分析,这是菜鸟常常容易出现的问题;
2.缺乏行业、公司业务认知,分析结果偏离实际。数据必须和业务结合才有意义。摸清楚所在产业链的整个结构,对行业的上游和下游的经营情况有大致的了解,再根据业务当前的需要,制定发展计划,归类出需要整理的数据。同时,熟悉业务才能看到数据背后隐藏的信息;
3.为了方法而方法,为了工具而工具,只要能解决问题的方法和工具就是好的方法和工具;
4.数据本身是客观的,但被解读出来的数据是主观的。同样的数据由不同的人分析很可能得出完全相反的结论,所以一定不能提前带着观点去分析。
内容来源:小蚊子数据分析
百家号-【袁帅数据分析运营】运营者:袁帅,互联网数据分析运营实践者。会展业信息化、数字化领域专家。认证数据分析师、网络营销师、SEM搜索引擎营销师、SEO工程师、电子商务职业经理人。
- ?
十种常用的数据分析方法
Cytheria
展开
道家强调四个字,叫“道、法、术、器”。
层次区别:
“器”是指物品或工具,在数据分析领域指的就是数据分析的产品或工具,“工欲善其事,必先利其器”;
“术”是指操作技术,是技能的高低、效率的高下,如对分析工具使用的技术(比如用Excel进行数据分析的水平);
“法”是指选择的方法,有句话说“选择比努力重要”;
“道”是指方向,是指导思想,是战略。
在数据分析和产品、运营优化方面,数据分析方法是其核心,属于“法”和“术”的层次。
那么如何做好数据分析呢,今天我们来讲讲互联网运营中的十大数据分析方法。
01 细分分析
细分分析是分析的基础,单一维度下的指标数据的信息价值很低。
细分方法可以分为两类, 一类逐步分析, 比如:来北京市的访客可分为朝阳,海淀等区; 另一类是维度交叉, 如:来自付费SEM的新访客。
细分用于解决所有问题。
比如漏斗转化,实际上就是把转化过程按照步骤进行细分,流量渠道的分析和评估也需要大量用到细分的方法。
02 对比分析
对比分析主要是指将两个相互联系的指标数据进行比较,从数量上展示和说明研究对象的规模大小,水平高低,速度快慢等相对数值, 通过相同维度下的指标对比,可以发现,找出业务在不同阶段的问题。
常见的对比方法包括: 时间对比,空间对比,标准对比。
时间对比有三种: 同比,环比,定基比。
例如: 本周和上周进行对比就是环比;本月第一周和上月第一周对比就是同比;所有数据同今年的第一周对比则为定基比。通过三种方式,可以分析业务增长水平,速度等信息。
03 漏斗分析
转化漏斗分析是业务分析的基本模型, 最常见的是把最终的转化设置为某种目的的实现,最典型的就是完成交易。但也可以是其他任何目的的实现,比如一次使用app的时间超过10分钟。
漏斗帮助我们解决两方面的问题:
在一个过程中是否发生泄漏,如果有泄漏,我们能在漏斗中看到,并且能够通过进一步的分析堵住这个泄漏点。
在一个过程中是否出现了其他不应该出现的过程,造成转化主进程收到损害。
04 同期群分析
同期群(cohort)分析在数据运营领域十分重要,互联网运营特别需要仔细洞察留存情况。 通过对性质完全一样的可对比群体的留存情况的比较,来分析哪些因素影响用户的留存。
同期群分析深受欢迎的重要原因是十分简单,但却十分直观。 同期群只用简单的一个图表,直接描述了用户在一段时间周期(甚至是整个LTV)的留存或流失变化情况。
以前留存分析只要用户有回访即定义为留存,这会导致留存指标虚高。
05 聚类分析
聚类分析具有简单,直观的特征, 网站分析中的聚类主要分为:用户,页面或内容,来源。
用户聚类主要体现为用户分群,用户标签法;页面聚类则主要是相似,相关页面分组法;来源聚类主要包括渠道,关键词等。
例如: 在页面分析中,经常存在带?参数的页面。 比如: 资讯详情页面,商品页面等,都属于同一类页面。简单的分析容易造成跳出率,退出率等指标不准确的问题,通过聚类分析可以获取同类页面的准确数据用于分析场景。
06 AB测试
增长黑客的一个主要思想之一,是不要做一个大而全的东西,而是不断做出能够快速验证的小而精的东西。 快速验证,那如何验证呢?主要方法就是AB测试。
比如: 你发现漏斗转化中中间有漏洞,假设一定是商品价格问题导致了流失,你看到了问题-漏斗,也想出了主意-改变定价。但主意是否正确,要看真实的用户反应,于是采用AB测试,一部分用户还是看到老价格,一部分用户看到新价格,若你的主意真的管用,新价格就应该有更好的转化,若真如此,新价格就应该确定下来,如此反复优化。
07 埋点分析
只有采集了足够的基础数据,才能通过各种分析方法得到需要的分析结果。
通过分析用户行为,并细分为:浏览行为,轻度交互,重度交互,交易行为,对于浏览行为和轻度交互行为的点击按钮等事件,因其使用频繁,数据简单,采用无埋点技术实现自助埋点,即可以提高数据分析的实效性,需要的数据可立即提取,又大量减少技术人员的工作量,需要采集更丰富信息的行为。
如: 重度交互(注册,邀请好友等)和交易事件(加购物车,下订单等)则通过SDK批量埋点的方式来实施。
08 来源分析
流量红利消失,我们对获客来源的重视度极高,如何有效的标注用户来源,至关重要。
传统分析工具,渠道分析仅有单一维度,要深入分析不同渠道不同阶段效果,SEM付费搜索等来源渠道和用户所在地区进行交叉分析,得出不同区域的获客详细信息,维度越细,分析结果也越有价值。
09 用户分析
用户分析是互联网运营的核心, 常用的分析方法包括:活跃分析,留存分析,用户分群,用户画像,用户细查等。
可将用户活跃细分为浏览活跃,互动活跃,交易活跃等,通过活跃行为的细分,掌握关键行为指标;通过用户行为事件序列,用户属性进行分群,观察分群用户的访问,浏览,注册,互动,交易等行为,从而真正把握不同用户类型的特点,提供有针对性的产品和服务。
用户画像基于自动标签系统将用户完整的画像描绘清晰,更有力的支撑运营决策。
10 表单分析
填写表单是每个平台与用户交互的必备环节,优秀的表单设计,对转化率的提升起到重要作用。
用户从进入表单页面之时起,就产生了微漏斗,从进入总人数到最终完成并成功提交表单人数,这个过程之中,有多少人开始填写表单,填写表单时,遇到了什么困难导致无法完成表单,都影响最终的转化效果。
以上是常见的数据分析方法,更多应用方法需要根据业务场景灵活应用。
- ?
评价数据的分析处理
童迎梅
展开
数据收集
数据收集是进行安全评价最关键的基础工作。所收集的数据要以满足安全评价需要为前提。由于相关数据可能分别掌握在管理部门(设备、安全、卫生、消防、人事、劳动工资、财务等)、检测部门(质量科、技术科)以及生产车间,因此,数据收集时要做好协调工作。尽量使收集到的数据全面、客观、具体、准确。
数据范围
收集数据的范围以已确定的评价边界为限,兼顾与评价项目相联系的接口。如:对改造项目进行评价时,动力系统不属改造范围,但动力系统的变化会导致所评价系统的变化,因此,数据收集应该将动力系统的数据包括在内。
数据内容
安全评价要求提供的数据内容一般分为:人力与管理数据、设备与设施数据、物料与材料数据、方法与工艺数据、环境与场所数据。
数据来源
被评价单位提供的设计文件(可行性研究报告或初步设计)、生产系统实际运行状况和管理文件等;
其它法定单位测量、检测、检验、鉴定、检定、判定或评价的结果或结论等;
评价机构或其委托检测单位,通过对被评价项目或可类比项目实地检查、检测、检验得到的相关数据,以及通过调查、取证得到的安全技术和管理数据。
相关的法律法规、相关的标准规范、相关的事故案例、相关的材料或物性数据、相关的救援知识,
数据的真实性和有效性控制
对收集到的安全评价资料数据,应关注以下几个方面:
收集的资料数据,要对其真实性和可信度进行评估,必要时可要求资料提供方书面说明资料来源;
对用作类比推理的资料要注意类比双方的相关程度和资料获得的条件;
代表性不强的资料(未按随机原则获取的资料)不能用于评价;
安全评价引用反映现状的资料必须在数据有效期限内。
数据汇总及数理统计
通过现场检查、检测、检验及访问,得到大量数据资料,首先应将数据资料分类汇总,再对数据进行处理,保证其真实性、有效性和代表性,必要时可进行复测,经数理统计将数据整理成可以与相关标准比对的格式,采用能说明实际问题的评价方法,得出评价结果。
数据分类
定性检查结果,如:符合、不符合、无此项或文字说明等;
定量检测结果,如:20mg/m3、30mA、88dB(A)、0.8MPa等,带量纲的数据;
汇总数据,如:起重机械30台/套,职工安全培训率89%等,计数或比例数据;
检查记录,如:易燃易爆物品储量12t、防爆电器合格证编号等;
照片、录像,如:法兰间采用四氟乙烯垫片、反应釜设有防爆片和安全阀、将器具放入冲压机光电感应器生效联锁切断电源等用录像记录安全装置试验结果,效果更好,特别是制作评价报告电子版本时,图像数据更为直观。
其它数据类型,如:连续波形对比数据、数据分布、线性回归、控制图等,图表数据。
数据结构(格式)
汇总类,如:厂内车辆取证情况汇总、特种作业人员取证汇总;
检查表类,如:安全色与安全标志检查表;
定量数据消除量纲加权变成指数进行分级评价,如:有毒作业分级;
定性数据通过因子加权赋值变成指数进行分级评价,如:机械工厂安全评价;
引用类,如:引用其它法定检测机构“专项检测、检验”的数据;
其它数据格式,如:集合、关系、函数、矩阵、树(林、二叉树)、图(有向图、串)、形式语言(群、环)、偏集和格、逻辑表达式、卡诺图等。
数据处理
在安全检测检验中,通常用随机抽取的样本来推断总体。为了使样本的性质充分反映总体的性质,在样本的选取上遵循随机化原则:
样本各个体选取要具有代表性,不得任意删留;
样本各个体选取必须是独立的,各次选取的结果互不影响。
对获得的数据在使用之前,要进行数据处理,消除或减弱不正常数据对检测结果的影响。若采用了无效或无代表性的数据,会造成检查、检测结果错误,得出不符合实际情况的评价结论。
概率
随机事件在若干次观测中出现的次数叫频数,频数与总观测次数之比叫频率。当检测次数逐渐增多时,某一检测数据出现的频率总是趋近某一常数,此常数能表示现场出现此检测数据的可能性,这就是概率。在概率论中,把事件发生可能性的数称为概率。在实际工作中,我们常以频率近似地代替概率。
显著性差异
概率在0至1的范围内波动。当概率为1时,此事件必然发生;当概率为0时,此事件必然不发生。数理统计中习惯上认为概率P≤0.05为小概率,并以此作为事物间差别有无显著性的界限。
原设定的系统,若系统之间无显著性差异(通过显著性检验确定),就可将其合并,采用相同的安全技术措施;若系统之间存在显著性差异,就应分别对待。
数据整理和加工有三种基本形式
按一定要求将原始数据进行分组,作出各种统计表及统计图;
将原始数据由小到大顺序排列,从而由原始数列得到递增数列;
按照统计推断的要求将原始数据归纳为一个或几个数字特征。
“异常值”和“未检出”的处理
“异常值”的处理
异常值是指现场检测或实验室分析结果中偏离其它数据很远的个别极端值,极端值的存在导致数据分布范围拉宽。当发现极端值与实际情况明显不符时,首先要在检测条件中直接查找可能造成干扰的因素,以便使极端值的存在得到解释,并加以修正。
若发现极端值属外来影响造成则应舍去。
若查不出产生极端值的原因时,应对极端值进行判定再决定取舍。
对极端值有许多处理方法。在这里介绍一种“Q值检验法”。
“Q值检验法”是迪克森(W.J.Dixon)在1951年专为分析化学中少量观测次数(n<10)提出的一种简易判据式。检验时将数据从小到大依次排列:X1,X2,X3,……,Xn-1,Xn,然后将极端值代入以下公式求出Q值,将Q值对照表1-6的Q0.90,若Q值≥Q0.90则有90%的置信此极端值应被舍去。
例:现场仪器测在同一点上4次测出:0.1014,0.1012,0.1025,0.1016,其中0.1025与其它数值差距较大,是否应该舍去?
根据“Q值检验法”:
Xn - Xn-1 0.1025-0.1016
Q=—————=—————————=0.69<0.76 (4次观测的Q0.90=0.76)
Xn - X1 0.1025-0.1012
所以: 0.1025不能舍弃,测出结果应用4次观测均值0.1017
“未检出”的处理
在检测上,有时因采样设备和分析方法不够精密,会出现一些小于分析方法“检出限”的数据,在报告中称为“未检出”。这些“未检出”并不是真正的零值,而是处于“零值”与“检出限”之间的值,用“0”来代替不合理(可造成统计结果偏低)。“未检出”的处理在实际工作中可用两种方法进行处理:
将“未检出”按标准的1/10加入统计整理;
将“未检出”按分析方法“最低检出限”的1/2加入统计。
总之,在统计分组时不要轻易将“未检出”舍掉。
检测数据质量控制
检测质量控制经常采用两种控制方式来保证获得数据的正确性:一是用线性回归方法对原制作的“标准曲线”进行复核;二是核对精密度和准确度。
记录精密度和准确度最简便的方法是制作“休哈特控制图”,通过控制图可以看出检测、检验是否在控制之中,有利于观察正、负偏差的发展趋势,及时发现异常,找出原因,采取措施。
安全评价的数据处理
收集到的数据要经过筛选和整理,才能用于安全评价。
来源可靠:收集到的数据要经过甄别,捨去不可靠的数据。
数据完整:凡安全评价中要使用的数据都应设法收集到。
取值合理:评价过程取值带有一定主观性,取值正确与否往往影响评价结果。
为提高取值准确性可从以下三方面着手:
严格按技术守则规定取值;
有一定范围的取值,可采用内插法提高精度;
较难把握的取值,可采用向专家咨询方法,集思广益来解决。
- ?
什么叫大数据分析
马绿竹
展开
大数据行业发展如火如荼,国家政策利好,互联网大佬纷纷在大数据行业布局,我们想让自己的职业生涯在一个朝阳行业发展,肯定又要学习相关技术,让自己与时俱进,但是难就难在大数据是一个新兴事物,目前我国大学的专业里面还鲜少有这个专业,国家刚批的大数据专业,全国目前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的生产者和消费者。
前面的学习已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务...
- ?
11种常用的数据分析处理软件
Malcolm
展开
BI(BusinessIntelligence)即商业智能,越来越多的智能软件供应商推出可视化数据分析工具,应对企业业务人员的大数据分析需求。然而如果你觉得不是数据分析专业、没有挖掘算法基础就无法使用BI工具?NO,自助式分析工具已经让数据产品链条变得大众化。为了更好地帮助读者选择分析工具,重庆IT培训的老师将为大家介绍数说立方、数据观、BDP等11款BI-商业智能产品,排名不分先后!
1、数说立方
数说立方是数说故事新推出的一款面向数据分析师的在线商业智能产品。最重要的特点是配备百亿级社交数据库,同时支持全网公开数据实时抓取,从数据源端解决分析师难点;另外数说立方搭载了分布式搜索、语义分析、数据可视化三大引擎系统的海量计算平台,实现数据处理“探索式分析”和“秒级响应”的两个核心功能。同时数说立方是数说故事三大主打产品之一,并与其他两大产品数说聚合和数说雷达实现从数据源、数据分析、到数据展示完整的数据解决方案。
优点:
即便是个人免费版,体验和功能仍然非常好;
与自家产品“数说聚合”的无缝接入,支持定向抓取微信、微博等数据;
功能完善,集数据处理、特征工程、建模、文本挖掘为一体的机器学习平台;
可视化视图展现、友好的客户感知页面;
支持SAAS,私有化部署,有权限管理;
缺点:
产品新上市,操作指导页不太完善;
体验过程中有一些小bug;
2、数加平台
数加是阿里云发布的一站式大数据平台,可以提供数据采集、结构化、加工到展示分析整套的一站式数据服务。 可采集不同系统及物理存储的源头数据,在分布式计算平台上进行数据的深度整合、计算、挖掘,将计算的结果通过可视化的工具进行个性化的数据分析和展现,也可直观的展示分析现有云上业务系统的数据库数据。
优点:
有完整的产品规划,功能完善;
图形展示和客户感知良好;
提供SQL查询;
缺点:
需要捆绑阿里云才能使用,一般用户还不能真正使用起来;
部分体验功能一般,有一定的学习成本;
3、Tableau
Tableau是目前市面上较为成功的BI工具。产品既有针对性,又有普适性。拖放式界面,操作简单。数据兼容性强,适用于多种数据文件与数据库,同时也兼容多平台,windows、mac、Online均可使用。而且重要的一点是免费为用户安排现场培训或按需求进行在线培训。
优点:
处于行业领导者地位,功能完善;
有较好的图形展现与客户感知;
新产品开始支持云端展现,但是需要客户端支持;
缺点:
相比于商业智能BI,更像一个基于数据查询的数据展示工具;
处理不规范数据、转化复杂模型比较难;
无法处理大量数据;
国内网络连接Online版速度较慢;
4、Qlik
QlikView只需轻轻单击几下,就可以对所有数据源进行合并、搜索、可视化和分析,可在不影响性能的前提下连接到多个数据源;其次视图种类丰富,界面简洁,互动性强,总体来说是一款简单易用的BI产品。Qlik用户可通过各类可视化效果,将Qlik扩展到任何应用程序中。另外用户也可以通过使用标准的和最新的网络API,可将可视化效果数据嵌入网站或应用程序。
优点:
产品功能完善,图形展现和客户感知良好;
支持SAAS,有权限管理功能;
缺点:
有一定的学习成本;
报表规范性要求很高;
数据抓取功能都非常弱,需要有非常好的数据仓库作为基础;
5、Spotfire
Spotfire服务对象是一线工作人员和日常决策人员,其交互界面形象易懂,无需写脚本语言和编写程序就可以对数据进行添加、分离操作。内置搜索引擎,可以随意查找任意信息。支持R、S+等统计、挖掘功能;有丰富、开源的R模型。标记有自身特色,提供了过滤、钻取等功能,多个标记同时还可以实现图形化的集合运算。
优点:
交互界面形象易懂,即使是普通的业务人员也能轻而易举地进行复杂的数据分析;
不一定要建数据仓库,还可以直接从多个异构数据源提取数据进行分析;
支持SAAS,有权限管理功能;
缺点:
SAAS版只支持30M,由于是国外服务器所以上传很慢;
不适合中国式的固定报表;
进军中国市场较晚,国内案例较少;
工具的适应性范围广,但是难易跨度大;
6、神策分析
神策分析的产品有完整的使用文档,每个模块都有详细的使用说明以及示例,降低了用户的学习成本。而且支持私有部署、任意维度的交叉分析,并帮助客户搭建专属的数据仓库。目前提供事件分析、漏斗分析、留存分析、数据管理等功能,未来预计会增加用户分群、用户人群分析、推送和异常维度组合挖掘等,工具需要付费使用。
优点:
专注于用户行为数据分析,不追求做大而追求做全;
有详细的产品使用文档以及案例;
提供SQL查询;
缺点:
更多的是demo示例,不能开箱即用;
纯dashboard展示,并不能对单独一块数据作自定义分析;
7、BDP
BDP个人版使用免费,只需导入数据,设定分析维度,即可实时得到图表分析结果。产品示例和视频教学很细致,交互页面很友好。每次数据更新,对应的图表也会自动更新,可以免去一些重复分析、制作图表的数据工作。另外,分享环节也很贴心,数据仪表盘可以一键导出,也可直接生成链接分享给他人或分享到微信、微博等社交平台。
优点:
产品支持移动端;手机同步呈现最新数据
用户可以免费使用工具,还有免费公开的数据源;
操作体验流畅,界面友好,功能全,总体来说是一款不错的产品;
即便是个人免费版,体验和功能仍然非常好;
数据可以同步更新,免去了重复劳动的工作;
缺点:
官网的介绍比较简单;
8、永洪BI
永洪BI是一款可在前端进行多维分析和报表展现的BI软件。支持拖拽操作,数据源格式多样,提供不同级别的查询支持,支持跨库跨源连接。另外永洪提供了一款数据存储、数据处理的软件——MPP数据集市,可与BI打通,使得数据查询,钻取和展示的速度大幅度提高。不过其产品用户体验一般,拖拽过于自由,导致仪表盘布局不好控制;主题样式虽多但是给人感觉样式还是很传统。
优点:
商业流程完善,给人专业的感觉;
产品定制化的版本效果不错;
支持的数据接入较多;
缺点:
SAAS版体验很差,有一定的学习成本;
UI的视觉效果一般,整体可视化效果不够现代化;
9、数据观
数据观的功能设计理念是极简、无门槛,所以它最大的特点就是简单。数据观数据来自云端,如:百度 网盘、微盘、salesforce等。数据上传后,马上有推荐图表,引导明确。另外产品的使用没有技术门槛,无需专业IT知识,同时适用于非专业分析师出身的业务人员,可以快速将数据转化成直观的图表,适合一开始接触数据分析工具的非专业数据从业人员。
优点:
注册只需填写邮箱,且支持明道账号登陆;
使用引导明确,支持salesforce、百度云数据导入;
分析结果支持链接分享,大大降低用户的沟通成本;
缺点:
不支持超过20MB的数据上传;
数据导入后,数据分析体验方面存在bug;
产品的使用以点击为主,不支持拖拽操作;
10、FineBI
FineBI分为数据处理、可视分析和分享公用三大功能模块。支持多种数据源,图表风格清爽美观,可选择任意维度分析。分析页面由控件和组件组成,控件和组件的数量是可以添加至任意多个,但是布局的交互比较僵硬,且使用逻辑有点乱,引导不明确。需要安装本地客户端才能使用。
优点:
有较为详细的行业案例与技术方案;
产品演示和资源中心也较为清晰
缺点:
需要使用客户端,增加了使用的不便利性
只有仪表盘展示,BI报表需要另一款产品;
无法处理大量的数据;
11、魔镜
魔镜支持自动拖拽建模,同时可视化效果库十分酷炫。用户可以邀请团队成员到自己的项目,合作进行探索分析,并且按照需求有效控制访问数据的成员权限。产品模块规划完整,有基础企业版到hadoop等5种选择为,而且可以支持定制化服务。但是可能是云平台版的缘故,使用过程中出现不少BUG,企业版的体验可能会相对好一点。
优点:
产品模块的规划比较健全,其中包括数据源导入、数据分析、仪表盘、数据挖掘和数据工厂;
官网的设计不错,模板选择性大,颜值控可能会喜欢;
工具使用指导清晰,使用篇和方法篇等比较详细;
缺点:
产品存在较多的BUG,UI和功能相对其他产品来说较简陋;
部分产品模块并不能切实用于数据分析;
选择一款适用的BI产品,能够大大简化数据分析的繁杂工作,提高分析效率与质量。当然,以上每个工具各有优点,工具地址都给大家了,接下来就是轮到你动手的时候了,找一个自己喜欢的工具,开始吧!
- ?
大数据是什么?超全的大数据分析工具
翁弗勒尔
展开
大数据是什么?大数据处理分析的工具有哪些?不管是即将学习大数据的人亦或是转型向学大数据的人都想要了解的。
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以及遍布地球各个角落的各种各样的传感器,无一不是数据来源或者承载的方式。
如果对于大数据还有更多的疑问,可以持续关注作者,也可以留言或者私信问题。
- ?
数据分析全流程(内附案例)
星舞
展开
(图片来源于网络)
作者:苏格兰折耳喵
来源: 运营喵是怎样炼成的 (yymzylc)
(温馨提示:图片显示毛糙和不清楚,是分辨率过高的缘故,点击图片,即可看到高清大图。 )
本文将对一个案例进行从数据采集、数据清洗、数据分析再到数据可视化的全流程分析,力求条理清晰的展现外部数据分析的强大威力。以下是本文的写作框架:
1 分析背景
1.1 分析原理---为什么选择分析虎嗅网
在现今数据爆炸、信息质量良莠不齐的互联网时代,我们无时无刻不身处在互联网社会化媒体的“信息洪流”之中,因而无可避免的被它上面泛滥的信息所“裹挟”,也就是说,社会化媒体上的信息对现实世界中的每个人都有重大影响,社会化媒体是我们间接了解现实客观世界和主观世界的一面窗户,我们每时每刻都在受到它的影响。
综合上述两类情形,可以得出这样的结论,透过社会化媒体,我们可以观察现实世界:
由此, 社会化媒体是现实主客观世界的一面镜子,而它也会进一步影响人们的行为,如果我们对该领域中的优质媒体所发布的信息进行分析,除了可以了解该领域的发展进程和现状,还可以对该领域的人群行为进行一定程度的预判。
鉴于此种情况,作为互联网从业者的笔者想分析一下互联网行业的一些现状,于是想到了虎嗅网。
虎嗅网创办于2012年5月,是一个聚合优质创新信息与人群的新媒体平台。该平台专注于贡献原创、深度、犀利优质的商业资讯,围绕创新创业的观点进行剖析与交流。虎嗅网 的核心,是关注互联网及传统产业的融合、一系列明星公司(包括公众公司与创业型企业)的起落轨迹、产业潮汐的动力与趋势。
因此,对该平台上的发布内容进行分析,对于研究互联网的发展进程和现状有一定的实际价值。
1.2 本文的分析目的
笔者在本项目中的分析目的主要有4个:
(1)对虎嗅网内容运营方面的若干分析,主要是对发文量、收藏量、评论量等方面的描述性分析;
(2)通过文本分析,对互联网行业的一些人、企业和细分领域进行趣味性的分析;
(3)展现文本挖掘在数据分析领域的实用价值;
(4)将杂芜无序的结构化数据和非结构化数据进行可视化,展现数据之美。
1.3 分析方法---分析工具和分析类型
本文中,笔者使用的数据分析工具如下:
Python3.5.2(编程语言)
Gensim(词向量、主题模型)
Scikit-Learn(聚类和分类)
Keras(深度学习框架)
Tensorflow(深度学习框架)
Jieba(分词和关键词提取)
Excel(可视化)
Seaborn(可视化)
新浪微舆情(情绪语义分析)
Bokeh(可视化)
Gephi(网络可视化)
Plotly(可视化)
使用上述数据分析工具,笔者将进行2类数据分析:第一类是较为传统的、针对数值型数据的描述下统计分析,如阅读量、收藏量等在时间维度上的分布;另一类是本文的重头戏---深层次的文本挖掘,包括关键词提取、文章内容LDA主题模型分析、词向量/关联词分析、DTM模型、ATM模型、词汇分散图和词聚类分析。
2 数据采集和文本预处理
2.1 数据采集
笔者使用爬虫采集了来自虎嗅网主页的文章(并不是全部的文章,但展示在主页的信息是主编精挑细选的,很具代表性),数据采集的时间区间为2012.05~2017.11,共计41,121篇。采集的字段为文章标题、发布时间、收藏量、评论量、正文内容、作者名称、作者自我简介、作者发文量,然后笔者人工提取4个特征,主要是 时间特征 (时点和周几)和 内容长度特征 (标题字数和文章字数),最终得到的数据如下图所示:
2.2 数据预处理
数据分析/挖掘领域有一条金科玉律:“Garbage in, Garbage out”,做好数据预处理,对于取得理想的分析结果来说是至关重要的。本文的数据规整主要是对文本数据进行清洗,处理的条目如下:
(1) 文本分词
要进行文本挖掘,分词是最为关键的一步,它直接影响后续的分析结果。笔者使用jieba来对文本进行分词处理,它有3类分词模式,即全模式、精确模式、搜索引擎模式:
· 精确模式:试图将句子最精确地切开,适合文本分析;
· 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
· 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
现以“新浪微舆情专注于社会化大数据的场景化应用”为例,3种分词模式的结果如下:
【全模式】: 新浪/ 微舆情/ 新浪微舆情/ 专注/于/ 社会化/ 大数据/ 社会化大数据/ 的/ 场景化/ 应用
【精确模式】: 新浪微舆情/ 专注/于/ 社会化大数据/ 的/ 场景化/ 应用
【搜索引擎模式】:新浪,微舆情,新浪微舆情,专注,于,社会化,大数据,社会化大数据,的,场景化,应用
为了避免歧义和切出符合预期效果的词汇,笔者采取的是精确(分词)模式。
(2) 去停用词
这里的去停用词包括以下三类:
标点符号:, 。! /、*+-
特殊符号:▲等
无意义的虚词: “the”、“a”、“an”、“that”、“你”、“我”、“他们”、“想要”、“打开”、“可以”等
(3) 去掉高频词、稀有词和计算Bigrams
去掉高频词、稀有词是针对后续的主题模型(LDA、ATM)时使用的,主要是为了排除对区隔主题意义不大的词汇,最终得到类似于停用词的效果。
Bigrams是为了自动探测出文本中的新词,基于词汇之间的共现关系---如果两个词经常一起毗邻出现,那么这两个词可以结合成一个新词,比如“数据”、“产品经理”经常一起出现在不同的段落里,那么,“数据_产品经理”则是二者合成出来的新词,只不过二者之间包含着下划线。
3 描述性分析
该部分中,笔者主要对数值型数据进行描述性的统计分析,它属于较为常规的数据分析,能揭示出一些问题,做到知其然。
3.1 发文数量、评论量和收藏量的变化走势
从下图可以看出,在2012.05~2017.11期间,以季度为单位,主页的发文数量起伏波动不大,在均值1800上下波动,进入2016年后,发文数量有明显提升。
此外,一头(2012年第二季)一尾(2017年第四季)因为没有统计完全,所以发文数量较小。
下图则是该时间段内收藏量和评论量的变化情况,评论量的变化不愠不火,起伏不大,但收藏量一直在攀升中,尤其是在2017年的第二季达到峰值。收藏量在一定程度上反映了文章的干货程度和价值性,读者认为有价值的文章才会去保留和收藏,反复阅读,含英咀华,这说明虎嗅的文章质量在不断提高,或读者的数量在增长。
3.2 发文时间规律分析
笔者从时间维度里提取出“周”和“时段”的信息,也就是开题提到的“人工特征”的提取,现在做文章分布数量的在“周”和“时”上的交叉分析,得到下图:
上图是一个热力图,色块颜色上的由暖到冷表征数值的由大变小。很明显的可以看到,中间有一个颜色很明显的区域,即由“6时~19时”和“周一~周五”围成的矩形,也就是说,发文时间主要集中在工作日的白天。另外,周一到周五期间,6时~7时这个时间段是发文的高峰,说明虎嗅的内容运营人员倾向于在工作日的清晨发布文章,这也符合它的人群定位---TMT领域从业、创业者、投资人,他们中的许多人有晨读的习惯,喜欢在赶地铁、坐公交的过程中阅读虎嗅讯息。发文高峰还有9时-11时这个高峰,是为了提前应对读者午休时间的阅读,还有17时~18时,提前应对读者下班时间的阅读。
3.3 相关性分析
笔者一直很好奇,文章的评论量、收藏量和标题字数、文章字数是否存在统计学意义上的相关性关系。基于此,笔者绘制出能反映上述变量关系的两张图。
首先,笔者做出了标题字数、文章字数和评论量之间的 气泡图 (圆形的气泡被六角星替代,但本质上还是气泡图)。
上图中,横轴是文章字数,纵轴是标题字数,评论数大小由六角星的大小和颜色所反映,颜色越暖,数值越大,五角星越大,数值越大。从这张图可以看出,文章评论量较大的文章,绝大部分分布于由文章字数6000字、标题字数20字所构成的区域内。虎嗅网上的商业资讯文章大都具有原创、深度的特点,文章篇幅中长,意味着能把事情背后的来龙去脉论述清楚,而且标题要能够吸引人,引发读者的大量阅读,合适长度标题和正文篇幅才能做到这一点。
接下来,笔者将收藏量、评论量和标题字数、文章字数绘制成一张3D立体图,X轴和Y轴分别为标题字数和正文字数,Z轴为收藏量和评论量所构成的 平面 ,通过旋转这个3维的Surface图,我们可以发现收藏量、评论量和标题字数、文章字数之间的相关关系。
注意,上图的数值表示和前面几张图一样,颜色上的由暖到冷表示数值的由大到小,通过旋转各维度的截面,可以看到在正文字数5000字以内、标题字数15字左右的收藏量和评论量形成的截面出现“华山式”陡峰,因而这里的收藏量和评论量最大。
3.4 城市提及分析
在这里,笔者通过构建一个包含全国1~5线城市的词表,提取出经过预处理后的文本中的城市名称,根据提及频次的大小,绘制出 一张反映城市提及频次的地理分布地图 , 进而间接地了解各个城市互联网的发展状况(一般城市的提及跟互联网产业、产品和职位信息挂钩,能在一定程度上反映该城市互联网行业的发展态势)。
上图反映的结果比较符合常识,北上深广杭这些一线城市的提及次数最多,它们是互联网行业发展的重镇。值得注意的是,长三角地区的大块区域(长江三角洲城市群,它包含 上海 , 江苏省 的 南京 、 无锡 、 常州 、 苏州 、 南通 、 盐城 、 扬州 、 镇江 、 泰州 , 浙江省 的 杭州 、 宁波 、 嘉兴 、 湖州 、 绍兴 、 金华 、 舟山 、 台州 , 安徽省 的 合肥 、 芜湖 、 马鞍山 、 铜陵 、 安庆 、 滁州 、 池州 、 宣城 )呈现出较高的热度值,直接说明这些城市在虎嗅网各类资讯文章中的提及次数较多,结合国家政策和地区因素,可以这样理解地图中反映的这个事实:
长三角城市群是“一带一路”与长江经济带的重要交汇地带,在中国国家现代化建设大局和全方位开放格局中具有举足轻重的战略地位。中国参与国际竞争的重要平台、经济社会发展的重要引擎,是长江经济带的引领发展区,是中国城镇化基础最好的地区之一。
长三角城市群是“一带一路”与长江经济带的重要交汇地带,在中国国家现代化建设大局和全方位开放格局中具有举足轻重的战略地位。中国参与国际竞争的重要平台、经济社会发展的重要引擎,是长江经济带的引领发展区,是中国城镇化基础最好的地区之一。
接下来,笔者将抽取文本中城市之间的 共现关系 ,也就是城市之间两两同时出现的频率,在一定程度上反映出城市间经济、文化、政策等方面的相关关系,共现频次越高,说明二者之间的联系紧密程度越高,抽取出的结果如下表所示:
将上述结果绘制成如下动态的流向图:
由于虎嗅网上的文章大多涉及创业、政策、商业方面的内容,因而这种城市之间的共现关系反映出城际间在资源、人员或者行业方面的关联关系,本动态图中,主要反映的是北上广深杭(网络中的枢纽节点)之间的相互流动关系和这几个一线城市向中西部城市的单向流动情形。流动量大、交错密集的区域无疑是中国最发达的3个城市群和其他几个新兴的城市群:
京津冀城市群
长江三角洲城市群
珠江三角洲城市群
中原城市群
成渝城市群
长江中游城市群
上面的数据分析是基于数值型数据的描述性分析,接下来,笔者将进行更为深入的文本挖掘。
4 文本挖掘
数据挖掘是从有结构的数据库中鉴别出有效的、新颖的、可能有用的并最终可理解的模式;而文本挖掘(在文本数据库也称为文本数据挖掘或者知识发现)是从大量非结构的数据中提炼出模式,也就是有用的信息或知识的半自动化过程。
本文的文本挖掘部分主要涉及高频词统计/关键词提取/关键词云、文章标题聚类、文章内容聚类、文章内容LDA主题模型分析、词向量/关联词分析、ATM模型、词汇分散图和词聚类分析。
4.1 关键词提取
对于关键词提取,笔者没有采取词频统计的方法,因为词频统计的逻辑是:一个词在文章中出现的次数越多,则它就越重要。因而,笔者采用的是 TF-IDF (termfrequency–inverse document frequency)的关键词提取方法:
它用以评估一字/词对于一个文件集或一个语料库中的其中一份文件的重要程度,字/词的重要性会随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
由此可见,在提取某段文本的关键信息时,关键词提取较词频统计更为可取,能提取出对某段文本具有重要意义的关键词。
下面是笔者利用jieba在经预处理...
- ?
干货 | 这是一份完整的大数据处理技术总结与分析
卫小萱
展开
一 数据分析处理需求分类
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语句执行其实是有多个操作符组合而成的的树型结构计算流。如下图:
针对该计算流有两种执行方式:一是基于物化或者是实体化执行方式,另外一种是基于数据流的执行方式。
第一种方法的过程是: 把各个操作运算排序,并把每个操作运算的输出的中间结果存储在磁盘上,直到被另外一个操作运算所...
- ?
技巧 | 数据分析处理前,你的第一步是什么?
洪向薇
展开
又到一年年终汇报时,相信大家都在回顾2017,展望2018。这其中少不了一些年度汇报。针对年度汇报,我们都希望呈现出自己工作业绩完美的一面,形成一个个内容充实,视觉可观的报告,像这样:
视觉效果很不错,会给你的成绩汇报加分。
而形成这样的报告,其前提是要对你的业务数据进行分析,而分析的第一步,你是什么做的呢?
比如看看下面的一个简单例子:每个省/市有代码,现在系统通过代码来获取省/市的名称
公式:=VLOOKUP(D2,A:B,2,0)
从公式上看,没有问题,但是就是得不到所期望的结果,为什么呢?
俗语说:你看到的,未比就是你想象中那样,正确的。
现在看到的表格中,要查代码是11的省市,而11即可以作为文本,又可以作为数字,所以要采用Vlookup核查的时候,需要明确其类型是一致,故:数据处理的第一步的时候,你要明确你的数据类型,是文本,还是数值,或者还是其他?
那针对上述问题,我们校验一下:
公式1:ISTEXT(A2) 结果为False
公式2:ISTEXT(D2) 结果为True
很明显,数据类型不一致,结果很显然,对不了
那如何处理呢?
常规方法:采用数据分列的模式,让数值变为文本
再往下看:依旧是这个例子
首先公式没有问题,其次代码层面也检查了,都是文本类型了,但是为什么还是错呢?
还是那句俗语:你看到的,未比就是你想象中那样,正确的。
那要如何处理呢,请往下看
公式1:LEN(A2) 结果为3
公式2:LEN(D2) 结果为2
很明显,虽然都是文本,但是长度不一样,那基本可以判定,里面肯定含有空格,针对这种空格,显然不是我什么所需的,那此时可以通过
通过公式:=SUBSTITUTE(A2," ","") 进行处理
将空格替换为了空("")
这样就可以完美的解决了。
除了SUBSTITUTE函数,Trim函数也可以就可以处理。如下:
那整理下:SUBSTITUTE与Trim的区别
两者本质上都是将空格去掉,前者是采用替换的方式,凡是遇到空格,全部替换为空;但是后者在执行的时候,不是全部替换,而是有选择性的替换(主要在英文方面使用,比如My name is Pangsiji,很明显,英文词之间的空格就是不需要替换的)
所以在处理数据时,需要清除你的数据时中文还是英文,然后在考虑用SUBSTITUTE或Trim
再往下看,我们经常会从ERP系统里面到出数据,然后进行加工处理,此时有一些数字看着是一样,也都是文本,长度也一致,但是就是不对,如下:
为什么呢?
因为数据从外部获取,这些数据中,由于计算机的处理,会存在一些非打印字符(是什么可以暂时不考虑),由于你看不到,同时也满足了相应的文本条件和字符串长度条件,导致结果出错,所以你需要处理这些非打印字符。
处理方式,用CLEAN函数,将非打印字符去掉即可
说道这里,你以为完了?No,No,No……
还有一种,比较变态,胖斯基也经常遇到,就是全角和半角符号输入的内容(这里主要说的是空格)
在上文中采用SUBSTITUTE(A2," ","")进行了空格的替换,一般情况下,基本都能解决。但是有时候,你分列变为文本,Clean处理了非打印字符,TRIM和SUBSTITUTE处理了空格,依旧不对,此时你需要考虑下这个空格是不是全角空格(尤其是从系统里面输出的数据),这里,你可以在你的SUBSTITUTE(A2," ","")公式中,空格的地方,输入全角符号的空格,怎么输入?切换你的输入法
So,说了这么多,胖斯基是想告诉你,当你在进行数据分析处理的时候,第1步要做:
1. 明确原始数据的类型,是文本还是数值;
2. 明确文本类型的数值情况下,采用采用Clean将非打印字符去掉,也可以采用Trim和Substitue函数将空格去掉(注意用法区别)
3. 如果还不行,你就要考虑考虑是不是有全角符号在里面输入(这个最为常见也最为变态)
这样,数据处理时才能提高你的效率!
加油吧,少年!
数据分析处理是什么
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并