《大数据分析原理与实践》——1.4 大数据分析的过程、技术与难点

简介: 本节书摘来自华章计算机《大数据分析原理与实践》一书中的第1章,第1.4节,作者 王宏志,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.4 大数据分析的过程、技术与难点

1.大数据分析的过程

大数据分析的过程大致分为下面6个步骤:

(1)业务理解
最初的阶段集中在理解项目目标和从业务的角度理解需求,同时将业务知识转化为数据分析问题的定义和实现目标的初步计划上。
(2)数据理解
数据理解阶段从初始的数据收集开始,通过一些活动的处理,目的是熟悉数据,识别数据的质量问题,首次发现数据的内部属性,或是探测引起兴趣的子集去形成隐含信息的假设。
(3)数据准备
数据准备阶段包括从未处理数据中构造最终数据集的所有活动。这些数据将是模型工具的输入值。这个阶段的任务有的能执行多次,没有任何规定的顺序。任务包括表、记录和属性的选择,以及为模型工具转换和清洗数据。
(4)建模
在这个阶段,可以选择和应用不同的模型技术,模型参数被调整到最佳的数值。有些技术可以解决一类相同的数据分析问题;有些技术在数据形成上有特殊要求,因此需要经常跳回到数据准备阶段。
(5)评估
在这个阶段,已经从数据分析的角度建立了一个高质量显示的模型。在最后部署模型之前,重要的事情是彻底地评估模型,检查构造模型的步骤,确保模型可以完成业务目标。这个阶段的关键目的是确定是否有重要业务问题没有被充分考虑。在这个阶段结束后,必须达成一个数据分析结果使用的决定。
(6)部署
通常,模型的创建不是项目的结束。模型的作用是从数据中找到知识,获得的知识需要以便于用户使用的方式重新组织和展现。根据需求,这个阶段可以产生简单的报告,或是实现一个比较复杂的、可重复的数据分析过程。在很多案例中,由客户而不是数据分析人员承担部署的工作。

2.大数据分析涉及的技术

作为大数据的主要应用,大数据分析涉及的技术相当广泛,主要包括如下几类。

1)数据采集:大数据的采集是指利用多个数据库来接收发自客户端(Web、App或者传感器形式等)的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。例如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。阿里云的DataHub是一款数据采集产品,可为用户提供实时数据的发布和订阅功能,写入的数据可直接进行流式数据处理,也可参与后续的离线作业计算,并且DataHub同主流插件和客户端保持高度兼容。

在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,例如火车票售票网站和淘宝,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑。并且,如何在这些数据库之间进行负载均衡和分片的确需要深入的思考和设计。ETL工具负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。

2)数据管理:对大数据进行分析的基础是对大数据进行有效的管理,使大数据“存得下、查得出”,并且为大数据的高效分析提供基本数据操作(比如Join和聚集操作等),实现数据有效管理的关键是数据组织。面向大数据管理已经提出了一系列技术。随着大数据应用越来越广泛,应用场景的多样化和数据规模的不断增加,传统的关系数据库在很多情况下难以满足要求,学术界和产业界开发出了一系列新型数据库管理系统,例如适用于处理大量数据的高访问负载以及日志系统的键值数据库(如Tokyo Cabinet/Tyrant、Redis、Voldemort、Oracle BDB)、适用于分布式大数据管理的列存储数据(如Cassandra、HBase、Riak)、适用于Web应用的文档型数据库(如CouchDB、MongoDB、SequoiaDB)、适用于社交网络和知识管理等的图形数据库(如Neo4J、InfoGrid、Infinite Graph),这些数据库统称为NoSQL。面对大数据的挑战,学术界和工业界拓展了传统的关系数据库,即NewSQL,这是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL的特性。典型的NewSQL包括VoltDB、ScaleBase、dbShards、Scalearc等。例如,阿里云分析型数据库可实现对数据的实时多维分析,百亿量级多维查询只需100毫秒。

3)基础架构:从更底层来看,对大数据进行分析还需要高性能的计算架构和存储系统。例如用于分布式计算的MapReduce计算框架、Spark计算框架,用于大规模数据协同工作的分布式文件存储HDFS等。

4)数据理解与提取:大数据的多样性体现在多个方面。在结构方面,对大数据分析很多情况下处理的数据并非传统的结构化数据,也包括多模态的半结构和非结构化数据;在语义方面,大数据的语义也有着多样性,同一含义有着多样的表达,同样的表达在不同的语境下也有着不同的含义。要对具有多样性的大数据进行有效分析,需要对数据进行深入的理解,并从结构多样、语义多样的数据中提取出可以直接进行分析的数据。这方面的技术包括自然语言处理、数据抽取等。自然语言处理是研究人与计算机交互的语言问题的一门学科。处理自然语言的关键是要让计算机“理解”自然语言,所以自然语言处理又叫作自然语言理解(Natural Language Understanding,NLU),也称为计算语言学,它是人工智能(Artificial Intelligence,AI)的核心课题之一。信息抽取 (information extraction)是把非结构化数据中包含的信息进行结构化处理,变成统一的组织形式。

5)统计分析:统计分析是指运用统计方法及与分析对象有关的知识,从定量与定性的结合上进行的研究活动。它是继统计设计、统计调查、统计整理之后的一项十分重要的工作,是在前几个阶段工作的基础上通过分析达到对研究对象更为深刻的认识。它又是在一定的选题下,针对分析方案的设计、资料的搜集和整理而展开的研究活动。系统、完善的资料是统计分析的必要条件。统计分析技术包括假设检验、显著性检验、差异分析、相关分析、T检验、方差分析、卡方分析、偏相关分析、距离分析、回归分析、简单回归分析、多元回归分析、逐步回归、回归预测与残差分析、岭回归、逻辑回归分析、曲线估计、因子分析、聚类分析、主成分分析、因子分析、快速聚类法与聚类法、判别分析、对应分析、多元对应分析(最优尺度分析)、bootstrap技术等。

6)数据挖掘:数据挖掘指的是从大量数据中通过算法搜索隐藏于其中的信息的过程,包括分类(classification)、估计(estimation)、预测(prediction)、相关性分组或关联规则(affinity grouping or association rule)、聚类(clustering)、描述和可视化(cescription and visualization)、复杂数据类型挖掘(text、Web、图形图像、视频、音频等)。与前面统计和分析过程不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上进行基于各种算法的计算,从而起到预测的效果,实现一些高级别数据分析的需求。例如,阿里云的数加产品拥有一系列机器学习工具,可基于海量数据实现对用户行为、行业走势、天气、交通的预测,产品还集成了阿里巴巴核心算法库,包括特征工程、大规模机器学习、深度学习等。

7)数据可视化:数据可视化是关于数据视觉表现形式的科学技术研究。对于大数据而言,由于其规模、高速和多样性,用户通过直接浏览来了解数据,因而,将数据进行可视化,将其表示成为人能够直接读取的形式,显得非常重要。目前,针对数据可视化已经提出了许多方法,这些方法根据其可视化的原理可以划分为基于几何的技术、面向像素的技术、基于图标的技术、基于层次的技术、基于图像的技术和分布式技术等;根据数据类型可以分为文本可视化、网络(图)可视化、时空数据可视化、多维数据可视化等。

数据可视化应用包括报表类工具(如我们熟知的Excel)、BI分析工具以及专业的数据可视化工具等。阿里云2016年发布的BI报表产品,3分钟即可完成海量数据的分析报告,产品支持多种云数据源,提供近20种可视化效果。

3.大数据分析技术的难点

大数据分析不是简单的数据分析的延伸。大数据规模大、更新速度快、来源多样等性质为大数据分析带来了一系列挑战。

1)可扩展性:由于大数据的特点之一是“规模大”,利用大规模数据可以发现诸多新知识,因而大数据分析需要考虑的首要任务之一就是使得分析算法能够支持大规模数据,在大规模数据上能够在应用所要求的时间约束内得到结果。

2)可用性:大数据分析的结果应用到实际中的前提是分析结果的可用,这里“可用”有两个方面的含义:一方面,需要结果具有高质量,如结果完整、符合现实的语义约束等;另一方面,需要结果的形式适用于实际的应用。对结果可用性的要求为大数据分析算法带来了挑战,所谓“垃圾进垃圾出”,高质量的分析结果需要高质量的数据;结果形式的高可用性需要高可用分析模型的设计。

3)领域知识的结合:大数据分析通常和具体领域密切结合,因而大数据分析的过程很自然地需要和领域知识相结合。这为大数据分析方法的设计带来了挑战:一方面,领域知识具有的多样性以及领域知识的结合导致相应大数据分析方法的多样性,需要与领域相适应的大数据分析方法;另一方面,对领域知识提出了新的要求,需要领域知识的内容和表示适用于大数据分析的过程。

4)结果的检验:有一些应用需要高可靠性的分析结果,否则会带来灾难性的后果。因而,大数据分析结果需要经过一定检验才可以真正应用。结果的检验需要对大数据分析结果需求的建模和检验的有效实现。

相关文章
|
22天前
|
存储 消息中间件 监控
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
|
15天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
7天前
|
消息中间件 数据挖掘 Kafka
《区块链公链数据分析简易速速上手小册》第5章:高级数据分析技术(2024 最新版)(上)
《区块链公链数据分析简易速速上手小册》第5章:高级数据分析技术(2024 最新版)(上)
39 1
|
9天前
|
数据采集 数据可视化 数据挖掘
Seaborn在数据分析中的应用:案例分析与实践
【4月更文挑战第17天】本文介绍了Seaborn在数据分析中的应用,它是一个基于Python的可视化库,简化了复杂数据的图表创建。通过一个销售数据分析的案例,展示了数据加载、描述性统计、相关性分析、多变量分析及高级可视化步骤。实践技巧包括数据清洗、图表选择、颜色使用、注释标签和交互性。Seaborn助力高效数据探索和理解,提升分析效率。注意,实际使用需根据数据集和目标调整,并参考最新文档。
|
16天前
|
机器学习/深度学习 人工智能 安全
Azure Databricks实战:在云上轻松进行大数据分析与AI开发
【4月更文挑战第8天】Databricks在大数据分析和AI开发中表现出色,简化流程并提高效率。文中列举了三个应用场景:数据湖分析、实时流处理和AI机器学习,并阐述了Databricks的一体化平台、云原生弹性及企业级安全优势。博主认为,Databricks提升了研发效能,无缝集成Azure生态,并具有持续创新潜力,是应对大数据挑战和加速AI创新的理想工具。
41 0
|
23天前
|
存储 机器学习/深度学习 数据采集
数据分析师如何处理数据以进行分析?
【4月更文挑战第4天】数据分析师如何处理数据以进行分析?
19 9
|
24天前
|
NoSQL 大数据 数据挖掘
现代数据库技术与大数据应用
随着信息时代的到来,数据量呈指数级增长,对数据库技术提出了前所未有的挑战。本文将介绍现代数据库技术在处理大数据应用中的重要性,并探讨了一些流行的数据库解决方案及其在实际应用中的优势。
|
29天前
|
机器学习/深度学习 人工智能 数据可视化
基于Python的数据可视化技术在大数据分析中的应用
传统的大数据分析往往注重数据处理和计算,然而数据可视化作为一种重要的技术手段,在大数据分析中扮演着至关重要的角色。本文将介绍如何利用Python语言中丰富的数据可视化工具,结合大数据分析,实现更直观、高效的数据展示与分析。
|
2月前
|
分布式计算 DataWorks IDE
MaxCompute数据问题之忽略脏数据如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
47 0
|
2月前
|
SQL 存储 分布式计算
MaxCompute问题之下载数据如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
38 0