您如何称呼DynamoDB和Cassanda的数据模型?


9

DynamoDB维基百科的文章说,DynamoDB是一个“ 键-值 ”的数据库。但是,将其称为“键值”数据库完全错过了DynamoDB的一个极其基本的功能,即排序键:键具有两个部分(分区键和排序键),具有相同分区键的项可以有效地一起进行检索按排序键。

Cassandra在分区内还具有完全相同的排序项功能(称为“集群键”),并且Cassandra Wikipedia文章使用术语“ 宽列存储”来描述它。但是,尽管“宽列”这个术语比“键值”更好,但它仍然有些不合适,因为它描述了一个更普遍的情况,即一个项目可能具有大量不相关的列-不一定是单独的排序列表项目。

因此,我的问题是,是否存在一个更合适的术语来描述DynamoDB和Cassandra等数据库的数据模型-像键值存储这样的数据库可以有效地检索单个键的项目,但也可以有效地检索按键排序的项目键或它的一部分(DynamoDB的排序键或Cassandra的集群键)。


2
我发现“键-键-值”可捕获此模型的分区/订购/值性质
Tzach Livyatan

我投票结束这个题为离题,因为它似乎与编码无关。
查尔斯

5
为什么它需要与“编码”相关?它没有标签C ++或Java或任何其他编程语言,因此它与使用任何编程语言进行编码无关。它有Cassandra等。标签-表示与该软件有关。您是否有更好的stackexchange网站,您认为有关软件的套件问题更好?请注意,这个问题已经获得+2分。显然,这不是一个很糟糕的问题。
Nadav Har'El

2
我的建议“键值值”
TomerSan

Answers:


3

在引入CQL之前,Cassandra更加严格地遵循宽列存储数据模型,在该模型中,您仅具有由行键标识并包含已排序键/值列的行。随着CQL的引入,行被称为分区,并且可以选择通过群集键将列分组为逻辑行。

即使在Cassandra 3.0之前,CQL仍然只是原始节俭数据模型的抽象,并且存储引擎中没有CQL行的概念。它们只是一组排序的列,其复合键由聚类键的串联值组成。本文提供了更多详细信息。现在,存储引擎中对CQL提供了本机支持,从而可以更有效地存储CQL数据模型。

但是,如果您将CQL行视为同一分区内列的逻辑分组,则仍可以将Cassandra视为宽列存储。据我所知,在任何情况下,都没有另一个成熟的术语来描述这种数据库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.