架构设计04–技术实现02–搭建大数据框架(十分钟学会)

Python publisher01 20℃

架构设计系列文章,请参见连接。

十分钟让你透彻理解大数据的工作方式。大数据并不是深不可测、高不可攀的技术,这里用18页ppt为你深入的理解大数据,学习大数据做好充分的准备。

结合大数据实际使用与开发流程讲述大数据中方方面面的内容。可以一次完整的了解大数据落地过程中需要考虑的问题,需要解决的问题呈现出一个可以真实,完整,落地的大数据服务平台。

概述

说明大数据分析的意义,并抽象大数据处理过程。以更通用的理解方式说明大数据的特点。

大数据过程

用通俗的语言介绍大数据分析、挖掘过程。


大数据过程

原始的数据是十分杂乱的,在数据经过梳理和清洗,才能够称为信息。信息会包含很多规律,我们需要从信息中将规律总结出来,称为知识(Knowledge),而知识改变命运。有了知识,然后利用这些知识去应用于实战,有的人会做得非常好,这个东西叫做智慧(Intelligence)。

用一种简单的方式说明就是收集来的数据有很多噪音,异常不能直接成为有效信息,进过梳理,过滤,清洗之后形成有用信息。然后在有用的信息中找到某种规律就变成了可以提高认知的知识。然后知识运用到之后的工作中就变成了智慧。

最终的阶段是很多企业都想要的。你看我收集了这么多的数据,能不能基于这些数据来帮我做下一步的决策,改善我的产品。

大数据分析也不是绝对的,有漏洞也有失误,我们不能迷信。虽然大数据分析通常是会凌驾于专家直觉经验之上的,但直觉在选择数据分析之初起着关键性作用。所以,未来我们需要同过直觉、经验、统计数字来做好很多决策。而学好大数据分析,除了那些大的政府决策或者行业、机构决策(医疗改革、影视发行、图书名称等),我们的日常生活也是可以通过这种思维受益的。
统计中所谓的“因果”是“某种”意义的“因果”,即统计学只讨论“原因的结果”,而不讨论“结果的原因”。前者是可以用数据证明或者证伪的;后者是属于科学研究所探索的。用科学哲学家卡尔·波普的话来说,科学知识的积累是“猜想与反驳”的过程:“猜想”结果的原因,再“证伪”原因的结果;如此循环即科学。

大数据分析过程

介绍大数据分析实施过程


image.png

  • 大数据分析过程是从数据建模开始,然后是将模型加入的系统中,然后等待真实数据的反馈再进行。再进入对数据模型的持续优化过程中。
  • 整体规划:整体规划是规划系统中数据的建模规范,分析维度,分析过程,技术体系,实践规范等等内容。用以管理整个DMP体系中所有的内容。
  • 数据建模:根据业务对业务关心的指标、维度进行定义。并针对这些指标维度进行相关的数据算法的统计。
  • 分析实践:根据建模结果,通过技术的支持形成真正能够在实践环境中使用的代码或者展示。
  • 效果反馈:数据分析结果是有度量的。怎样定义一个数据模型在真实数据环境中的效果是一门独立的学问。
  • 技术支持:以最高效、最低正本支持数据分析的各种工具。包括数据建模,数据可视化,数据挖掘,数据分析等等工具的技术支持。
  • 总结:很多地方不说明大数据的整体过程,只说明其中的很小一部分。导致技术落地困难。

数据建模

数据建模是大数据分析的核心。它决定了大数据分析的最终效果。

适合分析的业务

大数据能够解决的问题。说明大数据处理问题的特点。


image.png

  • 在对复杂问题进行分析与解决时总会使用的解决步骤:
    1. 发生了什么?
    2. 为什么会发生?
    3. 可能会发生什么?
    4. 需要做什么?

大数据分析其实就是对复杂问题进行分析与解决的过程。所以也是使用域这个解决过程的。在大数据分析中每一个步骤都有它自己独立的意义。可以帮助我们了解数据中到底包含了那些意义。每一个步骤都能让我们更深入的了解,深入的认识系统的情况,最终可以根据具体的数字化情况决定下一步的动作。

  • 问题域:大数据分析只有需要解决这些问题时才有作用。如果业务需求不是在这个范围内的需求,则不适用与使用大数据分析方法进行问题的分析与解决。

  • 解决域:针对不同的业务需求选择的不同的分析模型,也可以组合这些分析模型进行级联解决。在这些分析模型下定义了不同的分析算法,可以自顶向下的确定使用哪个分析模型,选用哪个分析算法,怎样进行组合。这样就形成了一套完整的大数据分析模型。

分析建模技术介绍

大数据分析为我们提供了什么样的方法,来解决问题。


image.png

大数据分析建模技术依赖的还是机器学习,人工智能提供算法。然后才可以对大量的数据进行聚类、分类、回归等等计算。在计算过程中需要对大量数据的访问,分布式计算等才是大数据技术。

要对数据中的特征进行量化或抽取特征需要进行机器学习。对数据进行分类也需要对其进行识别。针对下一阶段可能发生的情况还是需要量化。

数据挖掘建模过程

怎样建立数据挖掘模型。


image.png

  • 目标定义需要定义清楚大数据需要解决的问题,并依据这些问题形成大数据分析时使用的指标体系。
  • 抽取数据,使用能够反映整个情况的数据的选择方式是需要根据不同的方面进行选择的。
  • 在大数据分析过程中数据质量是非常重要的。在数据分析、人工智能方面有一个重要的原则:Garbage In Garbage Out原则。就是说明数据质量的重要性。
  • 建模:大数据分析与挖掘的基础。有了指标体系有了样本数据,需要通过模型算法得出业务所需要的结果。
  • 模型评价:对建模结果的评价。评价也是有一套完整的系统的。
  • 模型建立完成,并通过评价之后。就可以发布上线了。不过发不上线还是在线上持续反馈模型效果,并持续- 对建模结果进行优化。

– 目标定义

明确大数据分析目标,并之后针对目标进行分析与建设。


image.png

对大数据不了解导致看似明确的需求无法落地,所以需要进行引导性需求调研。

– 指标和维度

分析中关注的指标和维度,定义了之后能够分析哪些内容。


指标和维度

  • 特征工程:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
  • 指标体系:指标可以分为绝对数指标和相对数指标,绝对数指标反映的是规模大小的指标
  • 分析维度:维度是事物或现象的某种特征

分析模型介绍

分析模型的建立过程


分析模型介绍

在建模过程中需要不断的尝试不同的模型,不同的算法,不同的参数。所以,在建模过程中还是需要有不断的迭代的过程。

在整体大数据分析过程中也是一个大迭代。从建模、上线、反馈再到建模。这样才可以根据现实中的业务场景进行不断的调优。

建模过程中需要有训练数据,测试数据和验证数据。验证数据是人工对数据进行分析后的结果。使用分析结果和训练结果进行对比,然后得出模型的的评价情况。

模型评价中包含很多指标。例如:误差率,准确率、精确率、召回率等

建模工具


建模工具

建模实例

介绍大体的建模过程的一个实际例子。


实例

  • 明确业务目标。对业务目标进行分析,得出业务中的具体需求点。并整理形成完整贯穿整个的业务流程。
  • 根据业务目标中的需求点整理出数据模型和数据维度。
  • 根据数据模型和数据维度再次制定出指标体系。
  • 根据业务类型,数据类型,指标体系等特点选定分析模型。
  • 将数据输入到分析模型,计算出分析结果。

分析实践

具体讲模型推送到、实现到大数据框架中的方法。

分析模型工具

建模后在大数据分析平台上实现模型。


分析模型工具

开源的算法库,模型库。只需要选择合适业务的算法、模型组织出来一套分析模型。并持续优化即可。不需要再自行完成算法的编写工作。很多算法工程师会直接在分析框架上进行建模,并直接进行调优操作。

  • 在业界大数据分析技术栈上有很多种技术栈。针对分析框架可以分为分布式分析框架,非分布式分析框架。分布式分析框架是借助分布式计算框架完成的分布式计算任务。非分布式分析框架也可以借助类似于Ray的框架完成分布式计算。
  • 分析框架在不同的计算平台上不太相同。例如:Hadoop大数据分析挖掘工具Mahout,Spark大数据分析挖掘工具MLlib,Flink机器学习工具库FlinkML,Python下的分析挖掘工具Pandas,tensorflow即使计算框架也是分析框架等等。
  • 这些分析框架有基于流式处理的,有基于批处理的。针对不同的业务特点可以选用不同的计算方式进行处理。
  • 最后计算出来的结果会存储到数据库或者其他地方以供之后展示使用。

效果反馈

在大数据分析的建模过程中需要对建模的结果进行评估。模型到线上之后也是需要评估的,因为建模过程中的数据和线上的真实数据是有差异的。并且最终客户的反馈和分析模型的选择可能会有偏差的问题。

大数据分析模型线上评估


大数据分析模型线上评估

  • 在模型上线之后,需要对模型的各项指标进行监控与评估。已确定线上的分析模型是否可以达到业务所要求的标准。
  • 在线上针对不同的分析模型,有不同的评估方式、方法。但最终是以使用结果是否对比之前有所改善做为标准。
  • 可以通过A/B Test完成对线上分析模型的对比评估过程。
  • 需要在分析模型上线之前制定好模型评估指标,并采集上线前指标与上线后指标。这样就可以评估出分析模型上线之后和之前的效果对比。
  • 例如一个推荐系统,它所推荐的内容客户是否愿意点击进入查看,是否反馈为不感兴趣,广告页面停留时间等等。
  • 在TensorFlow中有TensorFlow Model Analysis可以用于评估模型

技术支持

技术方面就不过多的探讨了,一方面是业界对于大数据方面的书籍,博客都很多了。另一方面作者也会在之后逐步的深入讲解技术部分的内容。

大数据分析技术栈

有很多技术可以实现大数据分析哦~


大数据分析技术栈

OLAP:使分析人员、管理人员能够从多种角度对从原始数据中转化出来的、能够真正为用户所理解的、并真实反映数据维特性的信息,进行快速、一致、交互地访问,从而获得对数据的更深入了解的一类软件技术。
Data Mining 是通过数学模型发现隐藏的、潜在的规律,以辅助决策。
传统的 BI 主要想实现从宏观到微观、从广度到深度、从定量到定性各种层次的决策分析。大数据同传统 BI 比较,多了一个专门的数据采集阶段,主要是因为数据种类多,数量大,从结构化的数据到非结构化的数据。但是其存储、处理及可视化的思想等都和传统 BI 如出一辙。

大数据技术情况介绍:

  • 采集层和传输层可以分为几个部分:从ETL转换过来的,从企业内容的纪录信息转过来,从互联网上抓取到的。每种方式都是用不同的技术进行数据的清洗,过滤,转换再进入系统存储。
  • 存储可以分为结构化数据存储,半结构化数据存储,无结构数据存储。也是用不同的存储机制完成,这个格式最终会影响使用的分析算法以及分析过程。
  • 计算层是前面提到的分布式计算框架部分。分布式计算框架使系统可以利用大量的、廉价的计算能力进行计算。
  • 工具层主要是对外提供各种类型的服务。包括分析模型的管理等等。
  • 服务层即大数据平台可以对提供的能力。这个能力可以发散到各个业务方向上。有助于大数据平台形成独立完成的平台
  • 总结:这里只是技术栈的内容。具体的实施部署以及稳定性维护方面会在下面的几页中介绍。

大数据质量监控

数据质量决定者分析结果的好坏。


数据质量监控

数据质量管理是测度、提高和验证质量,以及整合组织数据的方法等一套处理准则,而体量大、速度快和多样性的特点,决定了大数据质量所需的处理,有别于传统信息治理计划的质量管理方式。

针对大数据平台的运维监控

保证大数据平台的正常运行。


image.png

使用指标监控系统监控大数据平台的整体运行情况。

  • Telegraf:插件化的指标收集和指标报告服务,能定制化开发并轻松添加所需插件。已经内置了很多常用服-务的插件,这也是我们选择telegraf的原因之一,不用再重复造轮子
  • InfluxDB:高性能的布式时间序列指标数据库。监控指标收集是非常频繁的,否则就失去了实时性,高频收集的结果就是大数据量,也要对时间序列进行分析,InfluxDB就能满足这种应用场景
  • Grafana:时间序列分析和监控的开放平台,支持多种数据源(InfluxDB、OpenTSDB时间序列数据库)、丰富的展现形式、支持email/dingding报警

大数据架构模式

大数据有自身的特点,所以它也有自己的架构模式。


大数据架构模式

以上几种架构为目前数据处理领域使用比较多的几种架构,当然还有非常多其他架构,不过其思想都会或多或少的类似。数据领域和机器学习领域会持续发展,以上几种思想或许终究也会变得过时。

大数据平台

大数据技术平台包含的内容。


大数据平台

– 左侧:

这是一个典型的大数据技术架构,且对架构进行了「分层」,分为「数据源层」、「数据传输层」、「数据存储层」、「编程模型层」和「数据分析层」,如果继续往上走的话,还有「数据可视化层」和「数据应用层」。

– 右侧:

这是一个完整的大数据平台框架。虽然内容没有填写具体的内容,但是它包含了大数据平台的几大基本要素。整体大数据平台所需要的子系统。这些子系统都是为了保证大数据平台能够满足业务需求。保证大数据系统的可用,准确,并能够建立持续流动的模式。

整体规划

平台的整体规划


image.png

大数据平台的规划是一个历经磨炼、也卓有成效的长期过程。如书中所提到的,阿里巴巴不仅数据量超宇宙级,而且更是因为业务场景的复杂和多元化,其面对着甚至超过 Google 和 Facebook 的更复杂的难题。大部分时候,阿里巴巴都是在无人区艰难跋涉。每一组功能和逻辑,每-套架构与系统,都与业务和场景息息相关。这个黑洞膨胀之快,以至于大部分时候都是在出现痛点从而剌激了架构升级。换言之,大数据系统一一如果我们非要用一个系统去描述的话一一其复杂度之高,是几乎不可能在一开始就完整和完美地进行自上而下定义和设计的。从需求→设计→迭代→一寸大数据之路一一阿里巴巴大数据实践升华为理论,在无数次的迭代进化中,我们对大数据的理解才逐渐成形,慢慢能够在将数据黑洞为我所用的抗争中扳回一局。

这个系统生长和进化的过程实际上已经暗暗揭示了阿里巴巴对大数据真髓的理解。大、快、多样性只是表象,大数据的真正价值在于生命性和生态性。阿里巴巴称之为“活数据”。活数据是全本记录、实时驱动决策和迭代,其价值是随着使用场景和方式动态变化的 。简单地把数据定义为正/负资产都太简单。数据也不是会枯竭的能源。数据可以被重复使用,并在使用中升值;数据与数据链接可能会像核反应一样产生价值的聚变。数据使用和数据聚变又产生新的数据。活数据的基础设施就需要来承载、管理和促进这个生态体的最大价值实现(以及相应的成本最小化)。丰富的数据形式、多样化的参与角色和动机,以及迥异的计算场景都使得这个系统的复杂度无限升级。阿里巴巴的大数据之路就是在深刻理解这种复杂性的基础上,摸索到了一些重要的秩序和原理,并通过技术架构来验证和劳实。

总结

机器学习、人工智能、深度学习等,需要训练集来训练模型和参数,通常都会定义一个损失函数(Loss Function)或能量函数,设定约束条件,然后求解函数的能量最小值,通常需要使用优化求解器,或是根据特定问题自己编程求解。从这个意义上,人工智能、大数据,最终几乎都归结为一个求解能量最小的优化问题,而运筹学正是研究优化理论的学科。因此,我把运筹学/优化理论称为人工智能、大数据的“引擎”。

大数据其实就是为我们建立数据分析与数据存储的平台。算法工程师通过数据标签化,数据分群等操作将数据建立指标和维度进行数学分析得到分析结果的过程。但是就像上面所说的数学是大数据分析的基础,技术是大数据分析的实现手段。

参考:

转载请注明:Python量化投资 » 架构设计04–技术实现02–搭建大数据框架(十分钟学会)

喜欢 (0)or分享 (0)