请使用支持现代 CSS 与 JavaScript 的浏览器播放课件
DBPA · 15.1

大数据特征与键值、文档数据库

从数据特征与访问模式推导管理模型

VER. 2608.3 Built with impress.js

学习目标

完成本节后,你应该能够

  1. 01根据 4V 识别数据管理压力
  2. 02用 GET、SET、SCAN 和 DELETE 表达点查、更新和范围访问
  3. 03按点查、范围查和写入比例比较哈希、有序索引和 LSM-tree
  4. 04解释文档嵌套与模式灵活性带来的应用维护责任
  5. 05追踪 MongoDB 请求从路由到分片与结果聚合的路径
  6. 06根据数据形态、访问模式和系统代价选择管理模型
2/13
LEARNING OBJECTIVES

4V 让大数据成为管理压力

数据量、类型、速度和价值分别改变存储、建模、响应与服务要求

第 15 章键值、文档、图和时序模型的总览关系
数据模型总览与 4V 管理压力

数据量 Volume

规模持续膨胀 → 需要分布式存储与横向扩展

数据多样性 Variety

结构化、半结构化和非结构化并存 → 需要多种模型与接口

到达速度 Velocity

数据到达快且响应时限短 → 需要高吞吐与低延迟处理

潜在价值 Value

价值要通过处理、分析或服务转化 → 需要把数据接入业务流程

3/13
4V

大数据系统的架构倾向

不同系统在部署、架构、数据质量和扩展上的典型差异

维度典型关系系统倾向典型大数据系统倾向
部署常见单机或有限集群常见多节点集群
架构部分系统紧耦合部分系统存算分离或松耦合
数据质量约束更多集中在数据库约束与清洗职责更分散
扩展纵向扩展或受限横向扩展横向与弹性扩展更常见

放宽前置模式或完整性约束后,数据质量责任会更多落在采集、平台与应用治理

数据真实性 veracity 也是常见扩展维度;4V 可作为大数据特征的主要分析框架

4/13
BIG DATA SYSTEM

键值模型用可定位的键连接访问与数据

先把键的定位职责与值的内容职责分开,再判断具体查询能力

范围扫描不是所有键值系统的共同能力;通常需要有序键值组织或具体系统提供的范围接口

5/13
KEY VALUE

键值接口把访问模式直接暴露出来

接口简单不等于每一种访问都同样便宜

接口课程中的抽象含义典型访问条件或边界
GET(key)按键读取一个值点查询需要可定位键
SET(key,value)插入或更新键值对写入或状态更新写入语义由系统定义
SCAN(key,count)从起点读取若干键连续读取具体接口可能不同
SCAN(key1,key2)读取键范围范围访问通常依赖有序组织
DELETE(key)删除键值对生命周期管理删除和回收语义由系统定义
Takeaway

点查、范围查和写入需求决定接口与索引选择

6/13
KEY VALUE API

组织结构决定键值数据库的访问边界

点查、范围查和写入吞吐不能只看一个指标

组织结构通常擅长局限或代价
哈希按键点查与更新不擅长按键顺序的范围访问
B/B+ 树点查和范围查更新可能带来外存随机写成本
LSM-tree写入较多的工作负载读取可能跨层搜索,后台合并会增加读写放大
Takeaway

LSM-tree 以写入路径和后台合并换取吞吐,具体性能仍取决于负载和实现

7/13
INDEX CHOICE

文档模型保留嵌套结构

结构可演进,但解释、校验和迁移责任更多在应用

JSON
[
  {"_id":"s1","name":"Wang","major":"IMIS"},
  {"_id":"s2","name":"Li","phones":{"main":"..."}}
]

两个文档可以有不同字段;缺失字段不自动等于错误

8/13
DOCUMENT

MongoDB 文档集群的三类服务器

请求先由路由端定位目标分片,再返回单片结果或聚合结果

分片服务器

保存数据子集;实际部署可由副本集承载

配置服务器

保存分片范围和集群元信息

路由服务器

接收请求、转发并聚合结果;本身不保存业务数据

9/13
MONGODB CLUSTER

模式自由仍需应用维护结构

集合像表、文档像记录只是帮助理解的类比,不是严格等价

Takeaway

文档数据库适合结构变化快或嵌套内容多的场景;关键事务与一致性仍需单独评估

10/13
SCHEMA FLEXIBILITY

数据形态、访问模式与系统代价

选择键值或文档模型要先明确访问方式、写入方式和扩展需求

4V 与压力

数据量、类型、速度和价值改变存储、建模、响应与服务要求

键值接口

GET、SET、SCAN、DELETE 把点查、更新和范围访问直接呈现出来

索引取舍

哈希、有序索引和 LSM-tree 分别回应点查、范围查和写入压力

文档与集群

嵌套灵活性、应用维护和路由分片共同决定系统边界

Takeaway

数据形态 → 访问模式 → 模型与索引 → 集群路由与系统代价

11/13
RECAP

本节知识地图

12/13
KNOWLEDGE MAP

本节问题

  1. 01订单、日志、资料、传感器数据分别体现哪些 4V 压力?
  2. 02学生记录如何选择键和值?如何执行点查、更新和范围扫描?
  3. 03点查与时间范围扫描分别优先哪类索引?为什么?
  4. 04档案字段变化且文档结构不同,模式灵活带来什么收益与责任?
  5. 05MongoDB 请求中,路由服务器、配置服务器和分片服务器各做什么?
  6. 06高吞吐写入兼顾范围访问时,哈希、有序索引和 LSM-tree 如何取舍?
13/13
CHECK YOUR UNDERSTANDING