我是 NoSQL 和 BigTable 的新手,我正在尝试学习如何(如果应该)使用超级列来创建 BigTable 友好的模式。
根据这篇关于 NoSQL 数据建模的文章,听起来我不应该使用以 JOIN 为中心的 RDBMS 模式,而是应该将我的数据聚合到更大的表中,以便在可能的情况下进行去规范化。基于此,这是我为“用户”设想的一个简单模式,我正在尝试为 Cassandra 创建它:
User: {
KEY: UserId {
name: {
first,
last
},
age,
gender
}
};
上面的列族(User),其键是'UserID',由3列(name,age,gender)组成。它的列'name'将是一个超级列,由'first'和'last'组成列。
所以我要问的是:
CQL 3.0看起来如何创建这个列族“用户”,其中包含“名称”超级列?(更新:这似乎不可能。)- 我应该使用超级列(像这样)吗?我应该使用别的东西吗?
- 表示此模式的另一种方法是什么?
- 如何表示表/列族中的值列表?
以下是我发现的一些有用的链接,但我不太清楚,无法回答我的问题:
谢谢!
更新:
经过大量研究,我正在学习一些东西:
- 您不能使用 CQL 创建超级列;可能还有其他机制可以这样做,但 CQL 似乎不是其中之一。
- SQL 3.0 的语法似乎正在从以“COLUMN FAMILY”为中心的方法转向基于类似 SQL 的“TABLE”语法。
相应地改变了我的问题。