【发布时间】:2020-04-08 18:13:35
【问题描述】:
有人可以简单地解释一下 Cassandra 中的静态列是什么,以及它的用途吗? 我偶然发现了这个链接Static column,但不太了解。
谢谢
【问题讨论】:
标签: cassandra
有人可以简单地解释一下 Cassandra 中的静态列是什么,以及它的用途吗? 我偶然发现了这个链接Static column,但不太了解。
谢谢
【问题讨论】:
标签: cassandra
静态列是一种将数据与整个分区关联的方法,因此它将在该分区内的所有行之间共享。有一些合法的情况,当所有行都需要相同的数据时,当数据更新时,我们不需要更新每一行。
想到的一个例子是电子商务。例如,你在卖东西,你在不同的国家用不同的货币和不同的价格卖东西。但是它们之间有一些共同点,例如描述、尺寸等。在这种情况下,我们可以将其建模如下:
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 的单个行,并且有一个作业将数据聚合到静态列中,所以当行过期时,这个分区仍然只保留聚合数据。
【讨论】: