Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra标记或哈希值_Cassandra_Cql - Fatal编程技术网

Cassandra标记或哈希值

Cassandra标记或哈希值,cassandra,cql,Cassandra,Cql,我在Cassandra中有一个名为StudentId的列作为主键的student表。此列中的两个值是否可以具有相同的令牌/哈希值 表结构 |-----------|-------------| |StudentId |主键| |FName|| |FName|| |-----------|-------------| 所以我想我明白了你想问的问题。当确定数据分布时,分区键(主键的第一部分)被散列以获得令牌。然后将该行写入负责该特定令牌范围的节点 至于具有相同的散列值,重要的是要注意Cassand

我在Cassandra中有一个名为
StudentId
的列作为主键的student表。此列中的两个值是否可以具有相同的令牌/哈希值

表结构

|-----------|-------------|
|StudentId |主键|
|FName||
|FName||
|-----------|-------------|

所以我想我明白了你想问的问题。当确定数据分布时,分区键(主键的第一部分)被散列以获得令牌。然后将该行写入负责该特定令牌范围的节点

至于具有相同的散列值,重要的是要注意Cassandra中的主键是唯一的。因此,要具有相同的哈希标记值,行必须具有相同的分区键,这是不可能的

为了演示这一点,我重新创建了您的表并插入了几行:

CREATE TABLE student (
  studentid TEXT PRIMARY KEY,
  fname TEXT,
  lname TEXT);

INSERT INTO student (studentid, fname, lname) VALUES ('aploetz','Aaron','Ploetz');
INSERT INTO student (studentid, fname, lname) VALUES ('aploetz','Avery','Ploetz');
INSERT INTO student (studentid, fname, lname) VALUES ('janderson','Jordy','Anderson');
INSERT INTO student (studentid, fname, lname) VALUES ('mgin','Micah','Gin');
现在,我将使用分区键(studentid)上的
标记
函数查询该表:

注:

  • 在分区键上使用
    token
    函数时,我可以看到散列的令牌值,因此我可以确定集群中哪些节点将包含此数据
  • 我插入的前两个学生有不同的名字,但他们的
    studentid
    是相同的
    aploetz
    。由于主键是唯一的,所以只有一个是持久的
  • 埃弗里·普洛埃茨的争吵“赢了”,就像上次写的那样
如果您需要任何进一步的解释,请告诉我,但我希望这有助于回答您的问题。

因此,我想我明白您想问的问题。当确定数据分布时,分区键(主键的第一部分)被散列以获得令牌。然后将该行写入负责该特定令牌范围的节点

至于具有相同的散列值,重要的是要注意Cassandra中的主键是唯一的。因此,要具有相同的哈希标记值,行必须具有相同的分区键,这是不可能的

为了演示这一点,我重新创建了您的表并插入了几行:

CREATE TABLE student (
  studentid TEXT PRIMARY KEY,
  fname TEXT,
  lname TEXT);

INSERT INTO student (studentid, fname, lname) VALUES ('aploetz','Aaron','Ploetz');
INSERT INTO student (studentid, fname, lname) VALUES ('aploetz','Avery','Ploetz');
INSERT INTO student (studentid, fname, lname) VALUES ('janderson','Jordy','Anderson');
INSERT INTO student (studentid, fname, lname) VALUES ('mgin','Micah','Gin');
现在,我将使用分区键(studentid)上的
标记
函数查询该表:

注:

  • 在分区键上使用
    token
    函数时,我可以看到散列的令牌值,因此我可以确定集群中哪些节点将包含此数据
  • 我插入的前两个学生有不同的名字,但他们的
    studentid
    是相同的
    aploetz
    。由于主键是唯一的,所以只有一个是持久的
  • 埃弗里·普洛埃茨的争吵“赢了”,就像上次写的那样
如果您需要任何进一步的解释,请告诉我,但我希望这有助于回答您的问题