Cassandra 中的静态列
Posted
技术标签:
【中文标题】Cassandra 中的静态列【英文标题】:Static column in Cassandra 【发布时间】:2020-04-08 18:13:35 【问题描述】:有人可以简单地解释一下 是什么,以及它的用途吗? 我偶然发现了这个链接Static column,但不太了解。
谢谢
【问题讨论】:
【参考方案1】:静态列是一种将数据与整个分区关联的方法,因此它将在该分区内的所有行之间共享。有一些合法的情况,当所有行都需要相同的数据时,当数据更新时,我们不需要更新每一行。
想到的一个例子是电子商务。例如,你在卖东西,你在不同的国家用不同的货币和不同的价格卖东西。但是它们之间有一些共同点,例如描述、尺寸等。在这种情况下,我们可以将其建模如下:
create table articles (
sku text,
description text static,
country text,
currency text,
price decimal,
primary key (sku, country)
);
在这种情况下,当您执行select * from articles where sku = ... and country = ...
时,无论如何您都会得到描述,并且您只能使用update articles set description = '...' where sku = ...
更新描述,然后下一个选择将拉取更新的描述。
此外,分区中可能存在静态列而没有任何行。我见过的一个用例是聚合信息的收集,其中详细数据存储为具有一些 TTL 的单个行,并且有一个作业将数据聚合到静态列中,所以当行过期时,这个分区仍然只保留聚合数据。
【讨论】:
以上是关于Cassandra 中的静态列的主要内容,如果未能解决你的问题,请参考以下文章