了解 Cassandra 静态场

Alo*_*lon 1 database bigdata cassandra

我通过它的文档学习 Cassandra。现在我正在学习批处理和静态字段

在页面末尾的示例中balance,即使它是一个静态字段,他们还是设法使两个不同的值(-200、-208)。

有人可以向我解释这怎么可能吗?我已经阅读了整页,但我没有理解。

Ash*_*lam 6

在 Cassandra 中,静态字段在分区键下是静态的。
示例:让我们定义一个表

CREATE TABLE static_test (
    pk int,
    ck int,
    d int,
    s int static,
    PRIMARY KEY (pk, ck)
);
Run Code Online (Sandbox Code Playgroud)

这里 pk 是分区键,ck 是聚类键。

让我们插入一些数据:

INSERT INTO static_test (pk , ck , d , s ) VALUES ( 1, 10, 100, 1000);
INSERT INTO static_test (pk , ck , d , s ) VALUES ( 2, 20, 200, 2000);
Run Code Online (Sandbox Code Playgroud)

如果我们选择数据

 pk | ck | s    | d
----+----+------+-----
  1 | 10 | 1000 | 100
  2 | 20 | 2000 | 200
Run Code Online (Sandbox Code Playgroud)

这里对于分区键 pk = 1 静态字段 s 值为 1000,对于分区键 pk = 2 静态字段 s 值为 2000

如果我们插入/更新分区键 pk = 1 的静态字段 s 值

INSERT INTO static_test (pk , ck , d , s ) VALUES ( 1, 11, 101, 1001);
Run Code Online (Sandbox Code Playgroud)

然后静态字段 s 值将更改为分区键 pk = 1 的所有行

 pk | ck | s    | d
----+----+------+-----
  1 | 10 | 1001 | 100
  1 | 11 | 1001 | 101
  2 | 20 | 2000 | 200
Run Code Online (Sandbox Code Playgroud)