有人可以简单地解释一下 Cassandra 中的静态列是什么及其用途吗?我遇到了这个链接Static column,但不太能理解它。
静态列是一种将数据与整个分区关联的方式,因此它将在该分区内的所有行之间共享。在某些情况下,所有行都需要具有相同的数据,并且当数据更新时,我们不需要更新每一行。
我想到的一个例子是电子商务。例如,您正在销售某种商品,并且您在不同的国家/地区以不同的货币和不同的价格进行销售。但它们之间有一些共同之处,例如描述、尺寸等。在这种情况下,我们可以将其建模如下:
create table articles (
sku text,
description text static,
country text,
currency text,
price decimal,
primary key (sku, country)
);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,当您select * from articles where sku = ... and country = ...这样做时,无论如何您都会获得描述,并且您只能使用 更新描述update articles set description = '...' where sku = ...,并且下一个选择将提取更新的描述。
此外,静态列可能存在于没有任何行的分区中。我见过的用例之一是聚合信息的收集,其中详细数据存储为具有一定 TTL 的单独行,并且有一项作业将数据聚合到静态列中,因此当行过期时,此分区仍然只保留聚合数据。
| 归档时间: |
|
| 查看次数: |
471 次 |
| 最近记录: |