【问题标题】:Static column in CassandraCassandra 中的静态列
【发布时间】:2020-04-08 18:13:35
【问题描述】:

有人可以简单地解释一下 Cassandra 中的静态列是什么,以及它的用途吗? 我偶然发现了这个链接Static column,但不太了解。

谢谢

【问题讨论】:

    标签: cassandra


    【解决方案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 的单个行,并且有一个作业将数据聚合到静态列中,所以当行过期时,这个分区仍然只保留聚合数据。

    【讨论】:

      猜你喜欢
      • 2013-09-18
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 2018-03-07
      • 2017-11-23
      • 2018-04-09
      • 2015-04-30
      • 2021-09-23
      相关资源
      最近更新 更多