其他分享
首页 > 其他分享> > cassandra表中主键的类型

cassandra表中主键的类型

作者:互联网

cassandra表中主键的类型及区分?

在这里插入图片描述

一、类型及区分

Cassandra的4种Key

  1. Primary Key 主键
  2. Composite Key,Compound Key 复合键
  3. Partition Key 分区键
  4. Clustering Key 集群

1.主键 Primary Key(简单主键)

例:Student_id是student的主键

create table student (Student_id int primary key, Sname text, Sbirth timestamp, Snum text, Sphone text );

查询后会发现主键和普通键的颜色不一样。
在这里插入图片描述

2.复合键 Composite Primary Key

查询testtab,会发现key_one和key_two 的颜色与其他列不一样在这里插入图片描述

复合主键由主键中引用的一个或多个列组成。复合主键的一个组件称为分区键,而另一个组件称为分簇列。以下是主键的不同变化。请注意,C1、C2、C3,…等表示表中的列。

需要注意的是,当复合键是 C1、C2、C3 时,第一个键C1 将成为分区键,其余键成为集群键的一部分。为了制作复合分区键,我们必须在括号中指定键,例如:((C1,C2),C3,C4)。在这种情况下,C1 和 C2 是分区键的一部分,C3 和 C4 是集群键的一部分。

3.分区键 Partition Key

例:

create table testTab (
	key_part_one int,
	key_part_two int,
	key_clust_one int,
	key_clust_two int,
	key_clust_three uuid,
	name text,
PRIMARY KEY((key_part_one,key_part_two), key_clust_one, key_clust_two,key_clust_three)

查询后会发现分区键,集群键和普通键的颜色不一样。
在这里插入图片描述

分区键在assandra中具有特殊用途,除了显示数据库中记录的独特性。另一个目的,即在分布式系统中非常关键的一个目的是确定数据位置。当数据插入集群时,第一步是在分区键上应用哈希功能。输出用于确定哪个节点(和副本)将获取数据。阿帕奇·卡桑德拉使用的算法使用Murmur3,这将采取任意输入,并创建一致的令牌值。该令牌值将属于单个节点拥有的令牌范围。简言之,分区键始终属于一个节点,该分区的数据始终位于该节点上。为什么这很重要?如果没有分区数据的绝对位置,则需要搜索集群中的每个节点以查找您的数据。在小集群中,这可能很快完成,但在更大的集群中,速度会非常缓慢。

4. 集群-分簇列(Clustering Key)

create table test_demo (name text,No int,phone list<text>,primary key(name,No))  
with clustering order by (No desc)
//  定义分列簇为No,并说明分列簇按降序排序(DESC),升序为(ASC)

由于cassandra 底层采用键值对数据结构,因此,理论上主键、分区键和分簇键都属于行键的一部分

Example:

  1. 创建键空间
    在这里插入图片描述

  2. 切换到students_details键空间:
    在这里插入图片描述

  3. 创建一个表,其中包含有关任何学生的一般信息。student
    在这里插入图片描述

  4. 向表中插入数据
    在这里插入图片描述

  5. 使用 cqlsh 中的扩展命令,我们可以查看查询的详细信息。在没有参数的扩展中显示扩展设置的当前值。
    在这里插入图片描述

  1. 我们可以使用主键中的列来过滤
    在这里插入图片描述

二、参考文章

https://dzone.com/articles/cassandra-data-modeling-primary-clustering-partiti

https://www.datastax.com/blog/2016/02/most-important-thing-know-cassandra-data-modeling-primary-key

标签:key,分区,Key,表中,C2,C1,主键,cassandra
来源: https://blog.csdn.net/m0_48654636/article/details/117795188