DynamoDB是否属于宽列存储?技术合理性探讨
DynamoDB是否能被视为宽列存储?
从核心设计来看,DynamoDB是键值存储。当存储的值为文档类型时,它也提供完善的文档处理能力,官方也明确认可它同时属于文档存储,这一点目前没有争议。
但有部分观点认为DynamoDB实际是宽列存储,这并不合理——因为宽列存储在技术上有着完全不同的数据存储模型。
宽列存储(比如Cassandra、HBase这类典型产品)的核心是**列族(Column Family)**架构:数据按行键组织,每行可以动态添加列,但这些列会归属到指定的列族中;物理存储上,同列族的列会被放在一起,适合按列批量查询,部分产品还支持列的时间戳版本控制。
而DynamoDB的核心模型是键值对/文档模型:它允许动态添加项的属性,但这些属性本质是整个文档(或键值对的值)的一部分,物理存储上是把整个项作为一个单元来存储,不存在"列族"的概念,也没有按列族拆分存储的特性。
有人会把它误判为宽列存储,可能是混淆了"动态属性"和"动态列"——DynamoDB的动态属性是文档模型的固有特性,和宽列存储基于列族的动态列设计有着本质区别。
所以,将DynamoDB视为宽列存储并不恰当,它的核心定位始终是键值存储+文档存储,动态属性只是文档模型的延伸特性,不符合宽列存储的核心技术架构。
内容的提问来源于stack exchange,提问作者rinogo
相关产品推荐
相关产品推荐

