📚 章节笔记:大数据 (3.15.2) 📊

欢迎来到大数据这个迷人的世界!本章将带你走出传统数据库的范畴,进入现代系统所处理的海量信息领域——试想一下每秒数十亿次的交易量。理解大数据至关重要,因为它是数字时代面临的数据结构挑战。别担心这个概念听起来很庞大;我们将把这种“大”拆解成简单、易懂的部分!

1. 定义大数据:三个“V”

大数据 (Big Data) 是一个统称,指那些规模庞大、复杂且变化极快,以至于无法使用传统数据库方法(如单个标准关系型数据库服务器)进行有效存储、管理或处理的数据集。

为了理解大数据,我们通常使用三个关键特征来定义它,这被称为三个“V” (The Three Vs)

Volume(数据量大:无法单机存储)

Volume 指的是数据的规模大小。

  • 含义: 生成的数据量非常巨大——我们讨论的是拍字节 (PB) 和艾字节 (EB) 量级(10的巨大幂次方)。
  • 挑战: 数据量往往大到无法存储在单一服务器上
  • 类比: 想象一下想把整个湖泊的水装进一个水杯里,这显然需要一种全新的策略!
Velocity(速度极快:无法停止)

Velocity 指的是数据产生及处理的速度。

  • 含义: 数据通常是流式数据 (streaming data),意味着它在持续不断地到达(例如股票行情或社交媒体动态)。
  • 响应时间要求: 处理必须非常迅速,通常需要毫秒级或秒级的响应。
  • 示例: 欺诈检测系统必须在交易发生的瞬间对其进行分析。
Variety(多样性高:难以制表)

Variety 指的是数据所呈现的不同形式和结构。

  • 含义: 大数据有多种格式:
    • 结构化数据: 可以整齐地放入行和列的数据(如传统数据库)。
    • 非结构化数据: 没有定义格式的数据(如原始文本文档、电子邮件、社交媒体帖子)。
    • 多媒体数据: 视频、图像和音频文件。
  • 核心难题: 教学大纲指出,缺乏结构是大数据最棘手的一面,这使得分析比处理整齐的结构化数据要困难得多。


快速回顾:3V 助记法
Volume(容量/规模)
Velocity(速度)
Variety(种类/结构)

2. 为什么传统关系型数据库力不从心

在处理大数据时,传统关系型数据库(如使用 SQL 的数据库)通常不再适用

  • 它们要求数据必须符合严格的行和列格式(结构化数据)。
  • 当数据高度多样化或非结构化(占据了大数据约 90% 的份额)时,强行将其放入固定表格中既效率低下,也根本无法实现。
  • 关系型系统在设计之初,并未考虑到需要跨越成百上千台服务器进行分布式处理的需求。

核心要点: 大数据的定义特征在于其规模、速度和混乱的本质。它缺乏统一的结构,这打破了传统关系型数据库的规则。

3. 处理大数据:分布式处理

由于数据的容量 (Volume) 太大,无法在单个服务器上处理,因此解决方案是采用分布式处理

这意味着处理任务必须分布在多台协同工作的机器上同时进行。

函数式编程作为解决方案

编写能在多台独立服务器上同时运行的正确且高效的分布式代码是非常困难的。在大数据环境中,函数式编程 (FP) 通常是首选,因为它的核心特性简化了这一挑战:

  • 不可变数据结构 (Immutable Data Structures): 数据一旦创建就不能更改。这在分布式系统中至关重要,因为如果两台服务器读取同一数据,它们可以确定该数据不会被第三台服务器突然篡改。
  • 无状态性 (Statelessness): 函数不依赖或改变任何外部“状态”(函数本身之外的数据)。这使得服务器完成任务的顺序无关紧要,并防止了不可预知的副作用。
  • 高阶函数(如 Map-Reduce): 这些函数对于整合来自多台服务器的结果至关重要。
    • Map(映射): 在单个服务器上处理数据。
    • Reduce(归约): 将所有服务器的结果合并为单一的最终输出。

你知道吗? 大数据处理背后的许多核心技术(如 Hadoop 和 Spark)都严重依赖 Map-Reduce 原则,而这一概念深深根植于函数式编程之中。

核心要点: 大数据必须使用分布式计算进行处理,而函数式编程的概念(不可变性、无状态性、Map-Reduce)使得这项复杂的任务变得可控。

4. 大数据结构建模

由于数据不适合放入表格,我们使用不同的模型来理解其结构。

基于事实的模型 (Fact-Based Model)

基于事实的模型是一种简单的表示数据的方法,其中每一条信息都被捕获为单一的、不可否认的事实

  • 原则: 每个事实只捕捉一点极小的信息。
  • 示例: 系统不记录庞大的记录,而是记录三个独立的事实:“学生 X 的出生日期是 2012/03/11”、“学生 X 是男性”、“学生 X 是 11R 班的学生”。
图模式 (Graph Schema Model)

基于图的模式侧重于关系,非常适合对复杂、互联的数据(如社交网络或供应链)进行建模。

它使用三个组件来捕捉数据集的结构

  1. 节点 (Nodes / Entities): 代表存储数据的个体项目或实体。
    • 图示符号:椭圆形表示。
    • 示例: 一名学生、一门课程、一个房间。

  2. 属性 (Properties / Attributes): 描述实体的特征。
    • 图示符号: 画在矩形中,并通过虚线连接到实体的椭圆形上。
    • 示例: 学生的姓名、出生日期或性别。

  3. 边 (Edges / Relationships): 代表实体之间的连接或关系。
    • 图示符号: 用连接节点之间的实线表示。
    • 标注: 这些线条必须标注文字以描述关系的性质(例如:“参加”、“成员”、“由……教授”)。

图表绘制的重要提示: 请务必正确区分:将属性连接到实体节点时使用虚线,而连接实体之间时使用实线!

核心要点: 当关系表失效时,大数据通常会使用基于事实的模型或图模式(使用节点、属性和带标签的边)来管理结构。