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

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

    傲旋

    展开

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    结论

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

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

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

    关于葡萄城

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

  • ?

    Top30数据分析师常见面试题(附答案)!

    顾丹蝶

    展开

    【IT168 评论】这是一个用数据说话的时代,也是一个依靠数据竞争的时代。各大互联网公司都在不断完善自己的数据分析团队,数据分析师的薪酬也是水涨船高。业内人士透露,应届毕业生的平均薪资大概在6K左右,1至3年经验的大概在10K到20K之间,5至10年经验的大概在25K以上。薪资还是十分诱人的,那么,如何快速成长为一名年薪百万的数据分析师呢?快来看看,以下30道数据分析相关面试题,你会多少?

    1、分析数据还要写java代码是不是效率有点低?

    2、成为一名数据分析师需要具备哪些技能?

    要成为一名数据分析师,需要掌握丰富的报告软件包(Business Objects),编程语言(XML,Javascript或ETL框架),数据库(SQL,SQLite等);能够准确分析、组织、收集或传播数据;掌握数据库设计,数据模型,数据挖掘等方面的技术知识以及分析大型数据集(SAS,Excel,SPSS等)的统计软件包知识。

    3、分析项目的各个步骤是什么?

    分析项目的各个步骤包括:

    ·问题定义

    ·数据挖掘

    数据准备

    模型化

    数据认证

    实施跟踪

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

    5、列出数据清理的最佳实践?

    一些数据清理的最佳实践包括:

    按不同的属性排序数据

    对于大数据集,逐步清理并改进数据,直到获得良好的数据质量

    对大型数据集,可以先将其分解为小数据集,使用更少的数据将增加迭代速度

    要处理常见的清理任务,请创建一组实用程序函数/工具/脚本。它可能包括基于CSV文件或SQL数据库重映射值,或者正则表达式搜索和替换,消除所有不匹配正则表达式的值

    如果在数据清理方面存在问题,请按照估计的频率进行安排并解决问题

    分析每列的汇总统计数据(标准差,均值,缺失值的数量)

    保持对每一个清理操作的跟踪,以便可以根据需要更改或删除操作

    6、海量日志数据,提取出某日访问百度次数最多的那个IP。

    7、可用于数据分析的一些最佳工具清单有什么?

    Tableau

    RapidMiner

    OpenRefine

    KNIME

    Google Search Operators

    Solver

    NodeXL

    io

    Wolfram Alpha’s

    Google Fusion tables

    8、数据挖掘和数据分析之间的区别是什么?

    数据挖掘和数据分析之间的区别在于:

    数据分析:针对个别属性的实例分析。提供有关属性的各种信息,如值范围,离散值及其频率,空值的发生,数据类型,长度等。

    数据挖掘:重点关注聚类分析,异常记录检测,依赖关系,序列发现,多个属性之间的关系控制等。

    9、给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?

    10、用于处理分布式计算环境中应用程序大数据集的Apache框架有哪些?

    Hadoop和MapReduce是由Apache开发的用于处理分布式计算环境中应用程序大数据集的编程框架。

    11、腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在40亿个数当中?

    12、解释KNN插补方法是什么?

    在KNN插补中,通过使用与其值缺失的属性最相似的属性值来推断缺少的属性值。通过使用距离函数,确定两个属性的相似度。

    13、数据分析师使用的数据验证方法是什么?

    通常,数据分析师用于数据验证的方法是数据筛选和数据验证。

    14、解释应该如何处理可疑或缺失数据?

    准备提供所有可疑数据信息的验证报告。它应该提供信息,如失败的验证标准以及发生的日期和时间

    有经验的数据分析师应该检查可疑数据以确定其可接受性

    应该找出无效数据并用验证码替换

    对缺失数据进行处理,使用最佳分析策略,如删除,单一插补方法,基于模型的方法等。

    15、如何避免过拟合?

    过拟合表现在训练数据上的误差非常小,而在测试数据上误差反而增大。其原因一般是模型过于复杂,过分得去拟合数据的噪声和outliers。常见的解决办法是正则化:增大数据集,正则化

    16、解释异常值是什么?

    异常值是分析师使用的一个术语,指的是一个远远超出样本总体模式的值。有两种类型的异常值:

    Univariate

    Multivariate

    17、解释分层聚类算法是什么?

    分层聚类算法结合并划分现有的组,创建分层结构并展示组划分或合并的顺序。

    18、解释K均值算法是什么?

    K均值是一种著名的分区方法。对象被分类为属于K个组中的一个,k是先验选择的。

    在K均值算法中:

    簇是球形的:簇中的数据点以该簇为中心

    簇的方差/扩展是相似的:每个数据点属于最接近的簇

    19、数据分析师所需掌握的关键技能是什么?

    数据科学家必须具备以下技能:

    数据库知识

    数据库管理

    数据混合

    数据查询

    数据操作

    预测分析

    基本描述性统计

    预测建模

    高级分析

    大数据知识

    大数据分析

    非结构化数据分析

    机器学习

    演示技巧

    数据可视化

    报告设计

    20、解释协同过滤是什么?

    协同过滤是一种基于用户行为数据创建推荐系统的简单算法。协同过滤最重要的组件是用户对项目的兴趣。

    协同过滤一个很好的例子就是购物网站上出现的类似“为您推荐”的模块,该模块通常会获取用户的浏览记录信息,以弹出用户可能喜欢或需要的商品。

    21、大数据中通常会使用到哪些工具?

    大数据中使用的工具包括:

    Hadoop

    Hive

    Pig

    Flume

    Mahout

    Sqoop

    22、解释什么是KPI,实验设计和80/20规则?

    关键绩效指标(KPI):它代表关键绩效指标(Key Performance Indicator),它是关于业务流程的报告或图表

    实验设计:这是用于分解数据,采样和建立数据以进行统计分析的初始过程

    80/20规则:这意味着你收入的80%来自客户的20%

    23、解释Map Reduce是什么?

    Map-Reduce是一个处理大型数据集的框架,可以将它们分解成子集,在不同的服务器上处理每个子集,然后混合每个子集上获得的结果。

    24、解释聚类是什么?聚类算法的属性?

    聚类是一种应用于数据的分类方法。聚类算法将数据集划分为自然组或集群。

    聚类算法的属性是:

    Hierarchical or flat

    Iterative

    Hard and soft

    Disjunctive

    25、对数据分析师有用的统计方法是什么?

    对数据科学家有用的统计方法是

    贝叶斯方法

    马尔科夫过程

    空间和集群进程

    统计数据,百分位数,异常值检测

    计算技巧等

    简单的算法

    数学优化

    26、时间序列分析是什么?

    时间序列分析可以在频域和时域两个域中完成。在时间序列分析中,可以通过指数平滑,对数线性回归等各种方法分析数据,来预测特定过程输出。

    27、解释空间自相关分析是什么?

    空间自相关分析是地理空间分析的常用形式。它由一系列为不同空间关系计算的估计自相关系数组成。当原始数据表示为距离而不是单个点的值时,它可以用于构建基于距离的数据相关图。

    28、散列表是什么?散列表冲突是什么?如何避免?

    在计算中,哈希表(散列表)是键值对的映射,这是一个用于实现关联数组的数据结构。它使用散列函数来计算一个时隙阵列的索引,从中可以获取所需的值。

    当两个不同的键散列到相同的值时,发生散列表冲突。两个数据不能存储在阵列的同一个插槽中。

    为了避免散列表碰撞,有很多技巧,这里列出两个:

    分离链接:它使用数据结构来存储散列到同一个插槽的多个项目。

    再探测:在找到查找位置的index的index-1,index+1位置查找,index-2,index+2查找,依次类推。这种方法称为线性再探测。

    29、解释 imputation是什么?列出不同类型的插补技术?哪种插补方法更有利?

    在插补过程中,我们用替代值替换丢失的数据。插补技术涉及的类型有:

    单一插补

    热点插补:从随机选择的类似记录中推断缺失值

    冷却板插补:与热点插补相同,但更先进,从其他数据集中选择供体

    平均估算:在所有其他情况下,用该变量的平均值代替缺失值

    回归插补:用基于其他变量的变量预测值替换缺失值

    随机回归:与回归插补一样,但它将平均回归方差加入到回归估计中

    多重插补:与单个插补不同,多重插补会多次估计值

    虽然单一插补法被广泛使用,但并不能反映随机丢失数据所造成的不确定性。因此,在数据丢失的情况下,多重插补更有利。

    30、解释N-gram是什么?

    N-gram是来自给定序列文本或语音的n个项目的连续序列。这是一种以(n-1)形式预测下一个项目的概率语言模型。

  • ?

    数据分析的8种方法详解

    竹星云

    展开

    对于具体的业务场景问题,我们该怎么办呢?我们以一个电子商务网站为例,用数据分析产品 GrowingIO 对该网站进行快速地数据采集、清晰和可视化展示,然后给大家分享这 8 种常见的数据分析方法。

    1 数字和趋势

    看数字、看趋势是最基础展示数据信息的方式。

    在数据分析中,我们可以通过直观的数字或趋势图表,迅速了解例如市场的走势、订单的数量、业绩完成的情况等等,从而直观的吸收数据信息,有助于决策的准确性和实时性。

    对于电子商务网站,流量是非常重要的指标。

    上图中,我们将网站的访问用户量(UV)和页面浏览量(PV)等指标汇汇聚到统一的数据看板(Dashboard),并且实时更新。

    这样的一个数据看板,核心数字和趋势一目了然,对于首席增长官来说一目了然。

    2 维度分解

    当单一的数字或趋势过于宏观时,我们需要通过不同的维度对于数据进行分解,以获取更加精细的数据洞察。

    在选择维度时,需要仔细思考其对于分析结果的影响。

    举个例子,当监测到网站流量异常时,可以通过拆分地区、访问来源、设备、浏览器等等维度,发现问题所在。

    3 用户分群

    针对符合某种特定行为或背景信息的用户,进行归类处理,是我们常常讲到的用户分群(segmentation )的手段。

    我们也可以通过提炼某一群用户的特定信息,创建该群体用户的画像。 例如访问购物网站、寄送地址在北京的用户,可以被归类为“北京”用户群体。

    而针对“北京”用户群体,我们可以进一步观察他们购买产品的频度、类别、时间,这样我们就创建出该用户群体的画像。

    在数据分析中,我们往往针对特定行为、特定背景的用户进行有针对性的用户运营和产品优化,效果会更加明显。

    上图中,我们通过 GrowingIO 的用户分群功能将一次促销活动中支付失败的用户挑选出来,然后推送相应的优惠券。

    这样精准的营销推广,可以大幅度提高用户支付的意愿和销售金额。

    4 转化漏斗

    绝大部分商业变现的流程,都可以归纳为漏斗。

    漏斗分析是我们最常见的数据分析手段之一,无论是注册转化漏斗,还是电商下单的漏斗。

    通过漏斗分析可以从先到后还原用户转化的路径,分析每一个转化节点的效率。  其中,我们往往关注三个要点: 第一,从开始到结尾,整体的转化效率是多少?  第二,每一步的转化率是多少?  第三,哪一步流失最多,原因在什么地方?流失的用户符合哪些特征?

    上图中注册流程分为 3 个步骤,总体转化率为45.5%;

    也就是说有 1000 个用户来到注册页面,其中 455 个成功完成了注册。

    但是我们不难发现第二步的转化率是 56.8% ,显着低于第一步 89.3% 和第三步转化率 89.7%,可以推测第二步注册流程存在问题。

    显而易见第二步的提升空间是最大的,投入回报比肯定不低;如果要提高注册转化率,我们应该优先解决第二步。

    5 行为轨迹

    关注行为轨迹,是为了真实了解用户行为。

    数据指标本身往往只是真实情况的抽象,例如,网站分析如果只看访问用户量(UV)和页面访问量(PV)这类指标,断然是无法全面理解用户如何使用你的产品。通过大数据手段,还原用户的行为轨迹,有助于增长团队关注用户的实际体验、发现具体问题,根据用户使用习惯设计产品、投放内容。

    上图中展示了一位用户在某电商网站上的详细行为轨迹,从官网到落地页,再到商品详情页,最后又回到官网首页。

    网站购买转化率低,以往的业务数据无法告诉你具体的原因;通过分析上面的用户行为轨迹,可以发现一些产品和运营的问题(比如是不是商品不匹配等等),从而为决策提供依据。

    6 留存分析

    在人口红利逐渐消褪的时代,留住一个老用户的成本要远远低于获取一个新用户。

    每一款产品,每一项服务,都应该核心关注用户的留存,确保做实每一个客户。

    我们可以通过数据分析理解留存情况,也可以通过分析用户行为或行为组与回访之间的关联,找到提升留存的方法。

    在 LinkedIn,增长团队通过数据发现,如果新用户进来后添加 5 个以上的联系人(上图红色线条),那么他/她在 LinkedIn 上留存要远远高于那些没有添加联系人(上图绿色和紫色的线条)的留存。

    这样,添加联系人称为 LinkedIn 留存新用户的最核心手段之一。除了需要关注整体用户的留存情况之外,市场团队可以关注各个渠道获取用户的留存度,或各类内容吸引来的注册用户回访率,产品团队关注每一个新功能对于用户的回访的影响等等,这些都是常见的留存分析场景。

    7 A/B 测试

    A/B 测试用来对比不同产品设计/算法对结果的影响。

    产品在上线过程中经常会使用 A/B 测试来测试不同产品或者功能设计的效果,市场和运营可以通过 A/B 测试来完成不同渠道、内容、广告创意的效果评估。

    举个例子,我们设计了两种不同的产品交互形式,通过比较实验组(A 组)和对照组(B 组)的访问时长和页面浏览量两个衡量指标,来评估哪一种交互形式更佳。要进行 A/B 测试有两个必备因素:

    第一,有足够的时间进行测试;

    第二,数据量和数据密度较高。

    因为当产品流量不够大的时候,做 A/B 测试得到统计结果是很难的。而像 LinkedIn 这样大体量的公司,每天可以同时进行上千个 A/B 测试。所以 A/B 测试往往在公司数据规模较大时使用会更加精准,更快得到统计的结果。

    8 数学建模

    当一个商业目标与多种行为、画像等信息有关联性时,我们通常会使用数学建模、数据挖掘的手段进行建模,预测该商业结果的产生。

    作为一家 SaaS 企业,当我们需要预测判断客户的流失时,可以通过用户的行为数据、公司信息、用户画像等数据建立流失模型。

    利用统计学的方式进行一些组合和权重计算,从而得知用户满足哪些行为之后流失的可能性会更高。

    我们常常说,不能度量,就无法增长,数据分析对于企业商业价值的提升有着至关重要的作用。

    当然,仅仅掌握单纯的理论还远远不够,实践出真知。数据分析的方法大家不妨在自己日常工作中,有分析相关项目里尝试使用,相信可以事半功倍,创造更多商业价值。

  • ?

    什么叫大数据分析

    眷恋着

    展开

    大数据行业发展如火如荼,国家政策利好,互联网大佬纷纷在大数据行业布局,我们想让自己的职业生涯在一个朝阳行业发展,肯定又要学习相关技术,让自己与时俱进,但是难就难在大数据是一个新兴事物,目前我国大学的专业里面还鲜少有这个专业,国家刚批的大数据专业,全国目前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的生产者和消费者。

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

  • ?

    数据分析师应该具备哪种基本能力?

    延续

    展开

    在互联网时代,数据是重要的资源,随着数据的持续增长和大数据技术的成熟,数据分析变得越来越重要,要看清楚瞬息万变的网络世界,要知道表象背后的真相,非靠数据分析不可,不管是大数据分析还是传统数据分析,其本质是一样的。数据分析是为了通过对数据现象的查看来完成对产品,营销策略,运营策略的优化。达到最低成本,最优效果。因此,数据分析师对应的要求也越来越高。那么,作为一名优秀的数据分析师,需要有哪些基本能力,才能完成数据分析目标,保证结果的正确性?

    商业数据分析的根本目的就是要洞察数据背后的规律,基于此,企业可以制订决策、并采取相应措施和行动,进而达成想要的结果。这是商业数据分析的最大价值所在。

    数据分析的四个能力

    1. 对业务的理解能力

    数据分析之前,首先要进行的是业务梳理。只有在实践领域从事过数据分析工作,就会明白所有分析的重中之重都是业务知识本身。而业务知识的学习和掌握,需要的积累之深,培养一个业务专家,需要的周期之长,都远远超过后面所说的那些基本技能,成为业务专家实属不易,数据分析师其实是之于业务专家之上的更深层次的思考和总结,否则,谁指导谁都是个问题。业务学习的方式很多,比如将以前的分析报告和取数案例都拿过来研究一下,不懂就问,总是一个渐进的过程,但需要时间和行业的沉淀。数据分析师最需要不断提升的能力就是行业和业务知识,没有之一。

    提升业务理解能力有几个方法

    多使用产品本身,只有不断的尝试产品,体验和了解各种产品,才能在分析时有直观的思考和总结;与 产品相关的业务和技术同学沟通,尤其在进行数据理解和运营理解的时候,需要知道数据元素的含义以及当前运营的方式和形成这种运营方式的原因;多思考产品的内在逻辑,多问几个为什么,这样才不至于做分析方案的时候,遗漏其它的业务流程,或者进行错误的数据模型设计。2.有耐心,善于沟通

    数据处理和逻辑梳理需要足够的耐心,尤其是在各种数据格式不统一,数据表存放混乱,以及业务流程/逻辑异常复杂的情况下,作为数据分析师,一定要有足够的耐心,沉下来进行全面的数据流程确认,画出对应的流程图,理清分析重点。

    同时,数据分析贯穿BIT、数据、技术、业务整个链条,数据分析师将BIT最终转化成决策者理解的语言,跨越的流程很长,你需要面对不同的岗位,碰到不同的角色,采用不同的语言,表达你的要求和获得你需要的东西,成为数据和业务的桥梁,没有足够的沟通能力很难。所以,需要具备一定的沟通能力。在沟通之前,需要清楚的知道本次沟通的目的是什么,以及如何通过对方来达成自己有效数据分析的目标。与技术沟通,是理解参数含义,与运营沟通,是理解分析目标,与产品沟通,则是强调产品逻辑以及背后的思考。同时,如果你容易听取他人的意见,特别是智者的意见,则可以帮你找到另一条出路,你犯错的概率就会降低,相应的,你的分析就更有力量和说服力。

    3. 数据分析的技术

    数据分析有很多技术可以支持,包括SQL,Excle,SPSS,Matlab、Python等等,这些都是通过编程完成基本的数据分析语言编写,然后进行执行得出结果。

    因此,数据分析师必须掌握并精通一两种数据分析编程技巧。包括从数据仓库中获取数据,对数据进行清洗,简化,或者补全,处理数据,计算数据,最后进行可视化的表达。这样才能完成数据分析的目标。这种技术对产品和运营人员也非常重要,只有学会处理数据,分析数据,才能在每个决策上面有据可依。

    但在公司的数据分析中,你在看案例时,往往接触到的数据或使用的数据是局部的,因此,你的视野会受局限,在大多数公司里,很多数据分析师其实缺乏全局的数据视野,因为他不知道到底有多少数据,因此,永远只能在已知的数据里转圈圈,

    当然,大多数数据分析师可能不需要进行系统数据学习,在实践中慢慢熟悉就好了,但自顶向下的数据学习方式可以让你有一个更好的基础和更全局的数据视野。

    4.独立思考的能力

    数据分析并不仅仅是为了完成一些业务上面的数据需求和论证。数据分析者应该在理解业务的基础上,扩大自己的思考范围,提升洞察力。

    成为一个优秀的数据分析师,需要在不同的业务中进行磨练,同时需要足够的耐心和深入业务的思考进行决策支撑。一种客观,理性,同时又科学的数据分析心态是非常重要的,对于公司和产品的发展也是必需。

    数据总是在那里,它不会说话,你不仅要基于业务能力理解它,还要学会推演和分析,从中发现规律,迅速定位某个商业问题的关键属性和决定因素,形成自己独创性的见解,所谓心思缜密,滴水不漏,没有思考逻辑没有数据分析。而要形成独特的见解,则来自于个人不断的学习和思考,这里的学习更多的强调是跨领域和专业,思考则是更多的强调养成思考的习惯。思考本身就是一种实践,它可以将你的知识更加系统化和深入化,数据分析在一定程度上是用来验证思路和启发灵感的,“数据分析”从来不是“数据分析”本身,而是以“数据分析”为手段和表象,对业务的深刻理解、思考和判断。

    数据分析的四个层次

    描述性分析(Descriptive Analysis)诊断性分析(Diagnostic Analysis)预测性分析(Predictive Analysis)处方性分析(Prescriptive Analysis)描述性分析——发生了什么?

    如题目名字一样,该层次主要是对已经发生的事实用数据做出准确的描述。比如某企业本月订单签约额比上月增加2000万,至5500万,但是订单履约率从上月的98%下降到了95%,库存周转率从上月的0.8下降到了0.7。那么,这就是发生了什么?就需要去描述性分析。

    诊断性分析——为什么会发生?

    知道发生了什么,对我们的帮助不大,更重要的是,我们要明白为什么发生。比如经过分析,发现在描述性分析中提到的订单履约率下降的原因是成品生产不出来,无法完成交付。而成品生产不出来的原因则是部分原材料的供应商未能按时送货,导致原材料不齐套,无法开始生产。那么,这就是诊断性分析。

    预测性分析——可能会发生什么?

    基于上述两个层次的分析,我们发现了其中的规律,即原材料供应商的未能及时送货会影响成品订单的履约率。假如上月某原材料供应商A送货及时率只有70%,通过建模,我们可以预测本月该供应商会使我们的订单履约率下降2%。那么,这就是预测性分析。

    处方性分析——我们该做些什么?

    有了预测性分析的结果后,我们无需再做事后诸葛亮,而可以运筹帷幄,在事前就采取措施。上述中,供应商A会导致本月我们的订单履约率下降,我们可能采取的措施就是把A换掉,但是现在有B和C两个供应商供我们选择,该选择哪个呢?通过分析和计算得出:选用供应商B会比选C的订单履约率高1%,因此建议选择供应商B。这就是处方性分析。

    四个层次层层递进,经过这四个层次的分析以后,可以对企业的决策和行动提供有力支撑。

    分享 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语句执行其实是有多个操作符组合而成的的树型结构计算流。如下图:

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

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

  • ?

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

    Ianthe

    展开

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

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

    数据分析师是什么?

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

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

    数据分析师所需技能

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

    数据工程师是什么?

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

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

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

    数据工程师所需技能

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

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

    大数据工程师方向:

    大数据分析师方向:

    总结:

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

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

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

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

  • ?

    十种常用的数据分析方法

    小恐龙

    展开

    道家强调四个字,叫“道、法、术、器”。

    层次区别:

    “器”是指物品或工具,在数据分析领域指的就是数据分析的产品或工具,“工欲善其事,必先利其器”;

    “术”是指操作技术,是技能的高低、效率的高下,如对分析工具使用的技术(比如用Excel进行数据分析的水平);

    “法”是指选择的方法,有句话说“选择比努力重要”;

    “道”是指方向,是指导思想,是战略。

    在数据分析和产品、运营优化方面,数据分析方法是其核心,属于“法”和“术”的层次。

    那么如何做好数据分析呢,今天我们来讲讲互联网运营中的十大数据分析方法。

    01 细分分析

    细分分析是分析的基础,单一维度下的指标数据的信息价值很低。

    细分方法可以分为两类, 一类逐步分析, 比如:来北京市的访客可分为朝阳,海淀等区; 另一类是维度交叉, 如:来自付费SEM的新访客。

    细分用于解决所有问题。

    比如漏斗转化,实际上就是把转化过程按照步骤进行细分,流量渠道的分析和评估也需要大量用到细分的方法。

    02 对比分析

    对比分析主要是指将两个相互联系的指标数据进行比较,从数量上展示和说明研究对象的规模大小,水平高低,速度快慢等相对数值, 通过相同维度下的指标对比,可以发现,找出业务在不同阶段的问题。

    常见的对比方法包括: 时间对比,空间对比,标准对比。

    时间对比有三种: 同比,环比,定基比。

    例如: 本周和上周进行对比就是环比;本月第一周和上月第一周对比就是同比;所有数据同今年的第一周对比则为定基比。通过三种方式,可以分析业务增长水平,速度等信息。

    03 漏斗分析

    转化漏斗分析是业务分析的基本模型, 最常见的是把最终的转化设置为某种目的的实现,最典型的就是完成交易。但也可以是其他任何目的的实现,比如一次使用app的时间超过10分钟。

    漏斗帮助我们解决两方面的问题:

    在一个过程中是否发生泄漏,如果有泄漏,我们能在漏斗中看到,并且能够通过进一步的分析堵住这个泄漏点。

    在一个过程中是否出现了其他不应该出现的过程,造成转化主进程收到损害。

    04 同期群分析

    同期群(cohort)分析在数据运营领域十分重要,互联网运营特别需要仔细洞察留存情况。 通过对性质完全一样的可对比群体的留存情况的比较,来分析哪些因素影响用户的留存。

    同期群分析深受欢迎的重要原因是十分简单,但却十分直观。 同期群只用简单的一个图表,直接描述了用户在一段时间周期(甚至是整个LTV)的留存或流失变化情况。

    以前留存分析只要用户有回访即定义为留存,这会导致留存指标虚高。

    05 聚类分析

    聚类分析具有简单,直观的特征, 网站分析中的聚类主要分为:用户,页面或内容,来源。

    用户聚类主要体现为用户分群,用户标签法;页面聚类则主要是相似,相关页面分组法;来源聚类主要包括渠道,关键词等。

    例如: 在页面分析中,经常存在带?参数的页面。 比如: 资讯详情页面,商品页面等,都属于同一类页面。简单的分析容易造成跳出率,退出率等指标不准确的问题,通过聚类分析可以获取同类页面的准确数据用于分析场景。

    06 AB测试

    增长黑客的一个主要思想之一,是不要做一个大而全的东西,而是不断做出能够快速验证的小而精的东西。 快速验证,那如何验证呢?主要方法就是AB测试。

    比如: 你发现漏斗转化中中间有漏洞,假设一定是商品价格问题导致了流失,你看到了问题-漏斗,也想出了主意-改变定价。但主意是否正确,要看真实的用户反应,于是采用AB测试,一部分用户还是看到老价格,一部分用户看到新价格,若你的主意真的管用,新价格就应该有更好的转化,若真如此,新价格就应该确定下来,如此反复优化。

    07 埋点分析

    只有采集了足够的基础数据,才能通过各种分析方法得到需要的分析结果。

    通过分析用户行为,并细分为:浏览行为,轻度交互,重度交互,交易行为,对于浏览行为和轻度交互行为的点击按钮等事件,因其使用频繁,数据简单,采用无埋点技术实现自助埋点,即可以提高数据分析的实效性,需要的数据可立即提取,又大量减少技术人员的工作量,需要采集更丰富信息的行为。

    如: 重度交互(注册,邀请好友等)和交易事件(加购物车,下订单等)则通过SDK批量埋点的方式来实施。

    08 来源分析

    流量红利消失,我们对获客来源的重视度极高,如何有效的标注用户来源,至关重要。

    传统分析工具,渠道分析仅有单一维度,要深入分析不同渠道不同阶段效果,SEM付费搜索等来源渠道和用户所在地区进行交叉分析,得出不同区域的获客详细信息,维度越细,分析结果也越有价值。

    09 用户分析

    用户分析是互联网运营的核心, 常用的分析方法包括:活跃分析,留存分析,用户分群,用户画像,用户细查等。

    可将用户活跃细分为浏览活跃,互动活跃,交易活跃等,通过活跃行为的细分,掌握关键行为指标;通过用户行为事件序列,用户属性进行分群,观察分群用户的访问,浏览,注册,互动,交易等行为,从而真正把握不同用户类型的特点,提供有针对性的产品和服务。

    用户画像基于自动标签系统将用户完整的画像描绘清晰,更有力的支撑运营决策。

    10 表单分析

    填写表单是每个平台与用户交互的必备环节,优秀的表单设计,对转化率的提升起到重要作用。

    用户从进入表单页面之时起,就产生了微漏斗,从进入总人数到最终完成并成功提交表单人数,这个过程之中,有多少人开始填写表单,填写表单时,遇到了什么困难导致无法完成表单,都影响最终的转化效果。

    以上是常见的数据分析方法,更多应用方法需要根据业务场景灵活应用。

  • ?

    什么是数据分析、数据分析本质又是什么?

    何谷冬

    展开

    一般情况下,我们所说的分析是指,使用大量数据、统计和定量分析、解释和预测以及基于事实的管理来推动决策过程与实现价值增生。

    根据分析的方法和目的,分析可以被划分为描述性分析(descri-ptive analytics)、预测性分析(predictive analytics)和规范性分析(prescriptive analytics)。描述性分析包括数据收集、整理、制表、制图以及描述正要研究的食物的特征,这类分析以往被称为“报告”。描述性分析可能非常有用,但它不能解释某种结果出现的原因或者未来可能会发生的事情。

    预测性分析不仅可以对数据特征和变量(可以假定取消范围的因素)之间的关系进行描述,还可以基于过去的数据预测未来。预测性分析首先会确定变量值之间的关联,然后基于这种已知的关联预测另一种现象出现的可能性,比如在看到某个广告后,一位消费者可能会去买产品的可能性。虽然预测性分析中的预测是基于变量之间的关系做出来的,但这不代表预测性分析中都需要明确因果关系。事实上,准确的预测并不一定与需要基于因果关系。

    规范性分析是更高层次的分析,如实验设计和优化等。就像医生会在出处方建议患者采取什么行动一样,实验设计试图通过做实验给出某些事情发生的原因。为了能够在因果关系研究中信心饱满地做出推断,研究人员必须妥善处理一个或多个独立的变量,并有效控制其他的变量。如果处于试验环境下的测试组的表现大大优于照相,决策制定者就应该立即推广这种实验环境。

    优化是规范性分析采用的一种方法,指试图识别出一个特定变量和另一个变量之间理想的关系水平。例如,我们可以能会对识别最有可能让产品实现高收益的价格感兴趣。同样地,优化这种方法能够识别出使了零售企业最大限制避免缺货情况的库存水平。

    根据分析采用的方法以及收集和分析的数据类型,我们可以将分析分为定性分析(qualitative analysis)和定量分析(quantitative analysis)。定性分析的目的是深入了解某种现象的根本原因和诱因。非结构化数据通常是从少数非代表性案例中收集而来,并进行了非统计性分析。定量分析是分析的最初阶段,他通常是探索性分析的有效工具,定量分析是指通过统计、数学或者计算的方式对现象进行系统的实证研究。通常情况下,结构化数据是从大量典型案例中收集而来,并进行统计分析。

    为了服务于研究者的不同研究目的,存在以下几种类型的分析:

    *统计学:收集、整理、分析、说明和呈现数据的学科;

    *预测:根据已有数据,预测一下一些感兴趣的变量在未来某个特定的时间点的情况;

    *数据挖掘:通常使用算法和统计技术,自动或半自动地提取大量数据中未知的有趣模式;

    *文字挖掘:用类似数据挖掘的方式从文本中得模式和趋势的过程;

    *优化:在同时满足约束条件的情况下,按照某些标准利用数学方法来寻找最优的解决方案;

    *实验设计:给各组随机分配被试。然后使用测试组和对照组来推导出特定结果中存在的因果关系。

    虽然此处给出了一些列常用的分析方法,但在使用过程中会不可避免地出现相当大的重叠。例如,回归分析(regression analysis)是预测分析中最常用的方法,与此同时,他也是统计学、预测和数据挖掘中常用的方法。此外,时间序列分析(time seties analysis)是用于分析数据随时间变化的一种具体统计方法、在统计学和预测中经常被用到。

  • ?

    什么是数据分析?数据分析的作用是什么?

    风之眼

    展开

    1.什么是数据分析?

    数据分析的目的是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律。在实际工作中,数据分析能够帮助管理者进行判断和决策,以便采取适当策略与行动。比如:企业的高管希望通过市场分析和研究,把握当前产品的市场动向,从而制定合理的产品研发和销售计划,这就必须依赖数据分析才能够完成。

    简单的说,就是对数据进行分析,比较专业的说法是,数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,未提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。以求最大化地开发数据的功能,发挥数据的作用。

    数据分析包含“数据”和“分析”两个方面一方面包括加工和整理数据,另一方面也包括分析数据,从中提取有价值的信息并形成对业务有帮助的结论。

    数据分析的成果通常以分析报告的形式呈现。对于数据分析报告,分析就是论点,数据就是论据,两者缺一不可。

    2.数据分析类别

    其中,探索性数据分析侧重于在数据中发现新的特征,而验证性数据分析则侧重于验证已有假设的真伪证明。

    数据分析的划分:描述性数据分析、探索性数据分析、验证性数据分析。

    1)描述性数据分析:属于初级数据分析,常见的分析方法有对比分析法、平均分析法、交叉分析法。

    2)探索性数据分析:侧重于再数据之中发现新的特征

    3)验证性数据分析:侧重于验证已有假设的真伪证明

    其中探索性数据分析和验证性数据分析属于高级数据分析,常见的分析方法有相关分析、因子分析、回归分析等等。

    3.数据分析的作用

    数据分析在日常企业运营中主要有三大作用:

    1.现状分析

    简单的说就是告诉你过去发生了什么。

    具体表现在:

    第一,告诉你企业现阶段的整体运营情况,通过各个经营指标的完成情况来衡量企业的运营状态,以说明企业整体运营是更好了还是坏了,好的程度是如何,坏的程度又到哪里。

    第二,告诉你企业各项业务的构成,让你了解企业各项业务的发展及变动情况,对企业经营状况有更深入的了解。

    现状分析一般通过日常通报来完成,如日报、周报、月报等形式。

    2.原因分析

    简单的说就是告诉你某一现状为什么发生。经过第一阶段的现状分析,我们对企业的运营情况有了一个基本的了解,但是不知道运营情况具体好在哪里,差在哪里,是什么原因引起的。这时候我们就需要开展原因分析,以进一步确定业务变动的具体原因。

    原因分析一般通过专题分析来完成,根据企业运营情况选择针对某一现状进行原因分析。

    3.预测分析

    简单来说就是告诉你将来会发生什么。

    在了解企业运营现状后,有时候还需要对企业未来发展趋势做出预测,为企业制定经营目标以及提供有效的策略参考与决策依据,以确保企业的可持续健康发展。

    预测分析一般通过专题分析来完成,通常在制定企业季度、年度等计划时进行,其开展的频率没有现状分析及原因分析高。

    什么时候开展什么样的数据分析,需要根据自身的需求及目的来确定。

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

数据分析是

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

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

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP