大数据和NoSQL系统
大数据和NoSQL系统是为应对关系型数据库在容量、速度和多样性方面遇到的挑战而构建的数据管理技术,它们以牺牲严格的关系型保证为代价,换取了水平可伸缩性、灵活的模式和高可用性。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
大数据系统是为处理传统单节点数据库无法处理的过大、过快或过于多样的数据集而设计的数据管理平台;NoSQL系统是非关系型存储,采用灵活的数据模型和宽松的一致性,以实现水平可伸缩性和可用性。
Scope
该领域涵盖为大规模数据设计的系统:NoSQL存储(键值、文档、宽列和图数据库)及其灵活的数据模型;源自MapReduce的数据并行处理框架;CAP定理所体现的一致性-可用性权衡以及一致性模型的范围;以及用于大规模分析的数据仓库和OLAP。它探讨了这些系统如何为实现规模化而放宽或重组关系型假设。它不包括分布式提交和并行查询执行的内部机制,这些内容在分布式和并行数据库领域中讨论。
Sub-topics
Core questions
- 哪些可伸缩性和灵活性需求推动了超越关系型数据库的转变?
- 主要的NoSQL类别提供了哪些数据模型?
- 数据并行框架如何在集群中处理海量数据集?
- CAP定理描述了哪些一致性-可用性权衡?
- 数据仓库和OLAP如何支持大规模分析查询?
Key concepts
- 键值、文档、宽列、图存储
- 水平可伸缩性
- 模式灵活性
- MapReduce和数据并行处理
- CAP定理
- 最终一致性
- BASE与ACID
- 数据仓库和OLAP
Key theories
- 水平可伸缩的NoSQL存储
- NoSQL系统放弃了单节点关系模型,转而采用键值、文档、宽列或图模型,这些模型在商用集群中进行分片和复制,优先考虑可伸缩性和可用性,而非丰富的查询和强一致性。
- 数据并行处理
- 遵循MapReduce模型的框架将大规模计算表示为在分区数据上进行的并行映射和归约阶段,从而向程序员隐藏了分布式、调度和容错的复杂性。
- CAP权衡
- CAP定理指出,分布式数据存储不能同时保证一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),这迫使设计者在网络分区期间必须在一致性和可用性之间做出选择。
Clinical relevance
大数据和NoSQL系统为现代网络的底层数据基础设施提供支持:键值和宽列存储支持高流量服务,数据并行框架大规模处理日志和点击流,数据仓库服务于业务分析,使这些系统成为数据工程和大规模应用的核心。
History
2000年代的互联网规模工作负载超出了单节点关系型数据库的处理能力。谷歌的MapReduce(2004/2008)和开源Hadoop生态系统实现了集群规模的数据处理;亚马逊的Dynamo(2007)和谷歌的Bigtable启发了NoSQL存储的浪潮;Brewer的CAP定理则阐明了这些系统所体现的一致性-可用性权衡。
Debates
- 强一致性与最终一致性
- NoSQL系统通常选择可用性和最终一致性,以在分区下保持响应,但这将冲突处理推给了应用程序;该领域争论的是,何时最终一致性是可接受的,以及何时新系统应恢复更强的保证。
Key figures
- Jeffrey Dean
- Sanjay Ghemawat
- Eric Brewer
- Werner Vogels
Related topics
Seminal works
- dean2008
- decandia2007
- brewer2012
Frequently asked questions
- NoSQL是否意味着完全没有SQL?
- 不是。NoSQL通常被解读为“不仅仅是SQL”。它指的是不基于关系模型且不以SQL为中心的数据存储,但许多NoSQL系统提供类似SQL的查询接口,并且该术语涵盖了广泛的家族——键值、文档、宽列和图数据库——而非单一技术。
- 何时应选择NoSQL系统而非关系型数据库?
- 当您需要跨多台机器进行水平扩展、存储灵活或快速演变的数据,或为简单的访问模式最大化可用性时,NoSQL系统具有吸引力。当您需要对结构化数据进行丰富的查询、复杂的连接和强大的事务一致性时,关系型数据库仍然是更好的选择。