非关系型数据库存储模型深度解析
1. 列族存储概述
列族存储模型源自谷歌的 BigTable。它基于稀疏表,行可包含任意列,列的键提供自然索引。在讨论中,我们采用 Apache Cassandra 的术语,尽管它并非严格遵循 BigTable,但应用广泛且术语易理解。
列族数据库有四个常见构建块:
- 列 :存储的最小单位,由键值对组成。
- 超级列 :多个列组合而成,为排序的列集命名。
- 列族 :行仅包含列时称为列族。
- 超级列族 :行包含超级列时称为超级列族。
虽然数据模型表面上是按列组织,但行很重要,因为它们提供嵌套哈希映射结构,用于非规范化数据。例如,可将记录艺术家及其专辑映射到超级列族结构,逻辑上就是映射的映射。
在列族数据库中,表的每行代表一个特定的总体实体,如艺术家的所有信息。列族是相关数据的容器,如艺术家姓名和唱片目录。列族内包含实际的键值数据,如专辑发行日期和艺术家出生日期。
行导向视图可转换为列导向视图。行能提供单个实体的完整视图,而列视图能自然索引整个数据集的特定方面。例如,通过对齐键可找到所有艺术家为英国人的行,进而提取完整的艺术家数据。
列族数据库与文档和键值存储的区别不仅在于更具表现力的数据模型,还在于其操作特性。例如,基于类似 Dynamo 架构的 Apache Cassandra,专为分布式、可扩展性和故障转移而设计,内部使用多个存储引擎处理高写入负载。
总体而言,列族数据库具
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



