序言

如果从事软件工程,特别是服务器端和后端系统,很多关于数据存储和处理的时髦词汇。

NoSQL、大数据、Web-Sacle、分片、最终一致性、ACID、CAP定理、云服务、MapReduce、实时。

仅仅十几年时间,谷歌、亚马逊、Meta、微软、推特、腾讯、字节跳动 等互联网公司获得巨大的流量与数据打交道,迫使他们去创造 能有效对应大规模的新工具。

即使一个小团队,现在也可以很容易地构建分布在多台计算机甚至多个地理区域的系统,归功于如亚马逊网络服务 AWS 等基础设施即服务 IaaS。

数据密集型应用(data-intensive application),一个应用被称为数据密集型,如果数据是其主要挑战(数据量、数据复杂度或数据变化速度),与之对应的是 计算密集型(即处理器速度是其瓶颈)。

分为三大部分

  1. 数据系统基础:数据系统架构中的权衡、定义非功能性需求、数据模型与查询语言、存储与检索、编码与演化
  2. 分布式数据:复制、分片、事务、分布式系统的麻烦、一致性与共识
  3. 派生数据:批处理、流处理、流式系统的哲学、做正确的事情