大数据应用与规划考量
大数据分析生命周期
大数据分析与传统数据分析的主要区别在于其数据量庞大、速度极快且种类繁多。为了满足大数据分析的独特需求,需要一套循序渐进的方法来组织数据获取、处理、分析和再利用等活动和任务。接下来的章节将探讨一个特定的数据分析生命周期,该生命周期用于组织和管理与大数据分析相关的任务和活动。从大数据应用和规划的角度来看,除了生命周期之外,还必须考虑数据分析团队的培训、教育、工具和人员配备等问题。
大数据分析生命周期可以分为以下九个阶段,如图所示:
商业案例评估
数据识别
数据采集与过滤
数据提取
数据验证与清洗
数据聚合与表示
数据分析
数据可视化
分析结果的利用
上图为大数据分析生命周期的九个阶段。
商业案例评估
每个大数据分析生命周期都必须始于一个定义明确的商业案例,该案例需清晰阐述开展分析的理由、动机和目标。如图所示,商业案例评估阶段要求在进行实际的分析工作之前,先创建、评估并批准商业案例。
上图为大数据分析生命周期的第一阶段。
对大数据分析商业案例的评估有助于决策者了解需要利用的业务资源以及分析将要解决的业务挑战。在此阶段进一步确定关键绩效指标 (KPI) 有助于确定评估标准和指导分析结果的评估。如果 KPI 不易获得,则应努力使分析项目的目标符合 SMART 原则,即具体 (Specific)、可衡量 (Measurable)、可实现 (Attainable)、相关 (Relevant) 和有时限 (Time-bound)。
根据业务案例中记录的业务需求,可以判断所要解决的业务问题是否真正属于大数据问题。要符合大数据问题的定义,业务问题必须与大数据的一个或多个特征(例如数据量、数据速度或数据种类)直接相关。
另需注意的是,此阶段的另一项成果是确定开展分析项目所需的预算。任何必要的采购,例如工具、硬件和培训,都必须事先了解清楚,以便将预期投资与实现目标的预期收益进行权衡。与后续迭代相比,大数据分析生命周期的初始迭代需要对大数据技术、产品和培训进行更多的前期投资,因为这些早期投资可以重复利用。
数据识别
图所示的数据识别阶段专门用于识别分析项目所需的数据集及其来源。
上图为数据识别是大数据分析生命周期的第 2 阶段。
识别更广泛的数据源可以提高发现隐藏模式和关联的概率。例如,为了提供更深入的见解,尽可能多地识别相关数据源类型可能大有裨益,尤其是在不清楚具体要寻找什么的情况下。
根据分析项目的业务范围和所要解决的业务问题的性质,所需的数据集及其来源可以是企业内部的,也可以是企业外部的。
对于内部数据集,通常会编制一份来自内部来源(如数据集市和运营系统)的可用数据集列表,并将其与预定义的数据集规范进行匹配。
对于外部数据集,我们会编制一份可能的第三方数据提供商列表,例如数据市场和公开数据集。某些形式的外部数据可能嵌入在博客或其他类型的内容型网站中,在这种情况下,可能需要通过自动化工具进行采集。
数据采集与过滤
如图所示,在数据采集和过滤阶段,数据从上一阶段识别出的所有数据源中收集。然后,对采集到的数据进行自动过滤,以去除损坏的数据或被认为对分析目标没有价值的数据。
上图为大数据分析生命周期的第三阶段。
根据数据源的类型,数据可能以文件集合的形式存在,例如从第三方数据提供商处购买的数据,也可能需要通过 API 集成获取,例如与 Twitter 集成。在许多情况下,尤其是在处理外部非结构化数据时,部分或大部分获取的数据可能无关紧要(噪声),可以在过滤过程中被丢弃。
被归类为“损坏”的数据可能包含缺失值、无意义值或无效数据类型的记录。在一种分析中被过滤掉的数据,可能对另一种分析很有价值。因此,建议在进行过滤之前,先存储一份原始数据集的完整副本。为了最大限度地减少所需的存储空间,可以对这份副本进行压缩。
内部数据和外部数据一旦生成或进入企业边界,都需要进行持久化保存。对于批量分析,数据会在分析之前持久化到磁盘。而对于实时分析,数据会先进行分析,然后再持久化到磁盘。
如图所示,可以通过自动化方式向来自内部和外部数据源的数据添加元数据,以改进分类和查询。附加的元数据示例包括数据集的大小和结构、来源信息、创建或收集的日期和时间以及特定语言信息。至关重要的是,元数据必须能够被机器读取,并在后续分析阶段传递。这有助于在整个大数据分析生命周期中维护数据来源,从而有助于建立和保持数据的准确性和质量。
上图为元数据添加到来自内部和外部来源的数据中。
数据提取
部分被确定为分析输入的数据可能采用与大数据解决方案不兼容的格式。来自外部数据源的数据更容易出现不同类型的数据需要处理的情况。如图所示,数据提取生命周期阶段专门用于提取不同类型的数据,并将其转换为底层大数据解决方案可用于数据分析的格式。
上图为大数据分析生命周期的第 4 阶段。
所需的数据提取和转换程度取决于分析类型和大数据解决方案的功能。例如,如果底层大数据解决方案已经能够直接处理分隔符文本数据(例如 Web 服务器日志文件),则可能无需从中提取所需字段。
同样,如果底层大数据解决方案能够直接以原始格式读取文档,那么提取文本进行文本分析(需要扫描整个文档)就会变得简单得多。
下图展示了如何从 XML 文档中提取嵌入的评论和用户 ID,而无需进一步转换。
上图为从 XML 文档中提取评论和用户 ID。
下图展示了如何从单个 JSON 字段中提取用户的纬度和经度坐标。
上图从单个 JSON 字段中提取用户的用户 ID 和坐标。
为了按照大数据解决方案的要求将数据分离成两个独立的字段,还需要进行进一步的转换。
数据验证和清洗
无效数据会扭曲甚至篡改分析结果。与传统企业数据(其数据结构预先定义且数据经过预先验证)不同,大数据分析的输入数据可能是非结构化的,且没有任何有效性标识。其复杂性还会进一步增加制定一套合适的验证约束条件的难度。
如图所示,数据验证和清理阶段致力于建立通常很复杂的验证规则,并删除任何已知的无效数据。
上图为大数据分析生命周期的第 5 阶段。
大数据解决方案通常会从不同的数据集中接收到冗余数据。这种冗余可以被利用来探索相互关联的数据集,从而构建验证参数并填补缺失的有效数据。
例如,如图所示:
将数据集 B 中的第一个值与其在数据集 A 中的对应值进行验证。
数据集 B 中的第二个值未与数据集 A 中的对应值进行验证。
如果缺少某个值,则从数据集 A 中插入该值。
上图为数据验证可用于检查相互关联的数据集,以便填补缺失的有效数据。
对于批量分析,数据验证和清洗可以通过离线 ETL 操作实现。对于实时分析,则需要更复杂的内存系统来验证和清洗从源头到达的数据。数据来源信息在判断可疑数据的准确性和质量方面起着重要作用。看似无效的数据可能仍然有价值,因为它可能包含隐藏的模式和趋势,如图所示。
上图为无效数据的存在导致了峰值。虽然数据看起来异常,但这可能预示着一种新的模式。
数据聚合与表示
数据可能分散在多个数据集中,因此需要通过公共字段(例如日期或 ID)将这些数据集连接起来。在其他情况下,相同的数据字段可能出现在多个数据集中,例如出生日期。无论哪种情况,都需要一种数据协调方法,或者需要确定代表正确值的数据集。
如图所示,数据聚合和表示阶段致力于将多个数据集整合在一起,以得出统一的视图。
上图为大数据分析生命周期的第 6 阶段。
由于以下方面的差异,执行此阶段可能会变得复杂:
数据结构——即使数据格式相同,数据模型也可能不同。
语义——在两个不同的数据集中被标记为不同的值可能表示相同的意思,例如“姓氏”和“姓氏”。
大数据解决方案处理的海量数据使得数据聚合成为一项耗时耗力的操作。协调这些差异可能需要复杂的逻辑,而这些逻辑必须自动执行,无需人工干预。
在此阶段需要考虑未来的数据分析需求,以促进数据重用。无论是否需要数据聚合,都必须理解同一数据可以以多种不同形式存储。一种形式可能比另一种形式更适合特定类型的分析。例如,如果分析需要访问单个数据字段,那么以 BLOB 形式存储的数据就几乎没什么用处。
大数据解决方案标准化的数据结构可以作为通用标准,用于各种分析技术和项目。这可能需要建立一个中央标准分析存储库,例如 NoSQL 数据库,如图所示。
上图为数据聚合的简单示例,其中使用 Id 字段将两个数据集聚合在一起。
下图展示了同一条数据以两种不同格式存储的情况。数据集 A 包含所需数据,但它是 BLOB 的一部分,无法直接查询。数据集 B 包含相同的数据,但采用列式存储,因此可以单独查询每个字段。
上图为数据集 A 和 B 可以组合起来,通过大数据解决方案创建标准化的数据结构。
数据分析
如图所示,数据分析阶段专门用于执行实际的分析任务,通常涉及一种或多种分析方法。该阶段可能具有迭代性,尤其是在进行探索性数据分析时,需要重复分析,直到发现合适的模式或相关性。探索性分析方法和验证性分析将在稍后进行解释。
上图为大数据分析生命周期的第 7 阶段。
根据所需分析结果的类型,这一阶段可以很简单,例如查询数据集以计算用于比较的聚合值。另一方面,它也可能极具挑战性,例如结合数据挖掘和复杂的统计分析技术来发现模式和异常情况,或者生成统计或数学模型来描述变量之间的关系。
数据分析可分为验证性分析或探索性分析,后者与数据挖掘相关,如图所示。
上图为数据分析可以作为验证性分析或探索性分析进行。
验证性数据分析是一种演绎法,它预先提出被研究现象的原因。这个提出的原因或假设被称为假设。然后分析数据以验证或推翻该假设,并为特定问题提供明确的答案。通常会采用数据抽样技术。由于已经预先假设了原因,因此通常会忽略意外发现或异常情况。
探索性数据分析是一种归纳方法,与数据挖掘密切相关。它不预设任何假设或前提,而是通过分析数据来探索现象背后的原因。虽然这种方法可能无法提供确切的答案,但它提供了一个大致的方向,有助于发现其中的模式或异常情况。
数据可视化
如果只有分析师才能解读分析结果,那么分析海量数据并从中发现有用见解的能力就没什么价值。
如图所示,数据可视化阶段致力于使用数据可视化技术和工具,以图形方式传达分析结果,以便业务用户进行有效解读。
上图为大数据分析生命周期的第 8 阶段。
业务用户需要能够理解结果,才能从分析中获得价值,并随后能够提供反馈,如从阶段 8 回到阶段 7 的虚线所示。
完成数据可视化阶段后,用户即可进行可视化分析,从而发现用户尚未提出的问题的答案。本书后续章节将详细介绍可视化分析技术。
相同的结果可以用多种不同的方式呈现,这会影响对结果的解读。因此,在考虑业务背景的同时,选择最合适的可视化技术至关重要。
另一个需要记住的方面是,提供一种向下钻取到相对简单的统计数据的方法至关重要,以便用户了解汇总或聚合结果是如何生成的。
分析结果的利用
在将分析结果提供给业务用户以支持业务决策(例如通过仪表盘)之后,可能还存在进一步利用这些分析结果的机会。如图所示,“分析结果利用”阶段旨在确定如何以及在何处可以进一步利用已处理的分析数据。
上图为大数据分析生命周期的第 9 阶段。
根据所要解决的分析问题的性质,分析结果可以生成“模型”,这些模型概括了对所分析数据中存在的模式和关系的全新见解和理解。模型可以表现为数学方程式或一组规则。模型可用于改进业务流程逻辑和应用系统逻辑,并可作为新系统或软件程序的基础。
此阶段通常会探讨以下领域:
企业系统输入——数据分析结果可以自动或手动直接输入到企业系统中,以增强和优化其行为和性能。例如,可以将处理后的客户相关分析结果输入到在线商店,这些结果可能会影响其产品推荐的生成方式。新模型可用于改进现有企业系统中的编程逻辑,或作为新系统的基础。
业务流程优化——数据分析过程中发现的模式、关联性和异常情况可用于改进业务流程。例如,整合供应链流程中的运输路线。模型还可以帮助发现改进业务流程逻辑的机会。
警报——数据分析结果可用作现有警报的输入,也可作为创建新警报的基础。例如,可以创建警报,通过电子邮件或短信通知用户需要采取纠正措施的事件。
