DDIA-派生数据

存储和处理数据的系统可分为:

  1. 记录系统(真实数据系统),拥有数据的权威版本。

  2. 派生数据系统:获取数据并进行转换或处理的结果,可以认为是对现有信息的不同视角的复制。

我们来对下面三种类型系统进行考察:

  • 服务(在线系统,online systems) 处理请求或指令。响应时间通常是衡量一个服务性能的最主要指标,且可用性通常也很重要。之前章节我们主要在讨论此类系统。

  • 批处理系统(离线系统,offline systems) 一个批处理系统通常会接受大量数据作为输入,然后在这批数据上跑任务(job),进而产生一些数据作为输出。吞吐量通常是衡量批处理任务最主要指标。我们本章会主要围绕该类型系统进行讨论。

  • 流式系统(近实时系统,near-real-time systems) 流式处理介于在线处理和离线处理(批处理)之间(因此也被称为近实时,near-real-time,或者准在线处理,nearline processing)。和批处理系统类似,但一个流式任务通常会在事件产生不久后就对其进行处理,而无需等足批单位的输入

批处理系统

MapReduce 查询

image.png

MongoDB 使用 MapReduce ,是一种介于

  • 声明式:用户不必显式定义数据集的遍历方式、shuffle 过程等执行过程。

  • 命令式:用户又需要定义针对单条数据的执行过程。 两者间的混合数据模型。

其中:

  1. 要求 Map 和 Reduce 是纯函数。即无任何副作用,在任意地点、以任意次序执行任何多次,对相同的输入都能得到相同的输出。因此容易并发调度。

  2. 非常底层、但表达力强大的编程模型。可基于其实现 SQL 等高级查询语言,如 Hive。

最后更新于

这有帮助吗?