📜  Cassandra 中的单行和多行分区

📅  最后修改于: 2022-05-13 01:55:16.132000             🧑  作者: Mango

Cassandra 中的单行和多行分区

在 Cassandra 中,CQL(Cassandra Query Language) 有如下两个分区——

  • 单行分区
  • 多行分区

单行分区:
在Cassandra中,主键代表一个唯一的数据分区,聚集列部分也有助于数据排列,用于处理数据排列部分。在单行分区中,单列上只有一个分区键。

例子 -
让我们以包含 Emp_id、Emp_name、Emp_email 等字段的 Employee 表为例,其中 Emp_id 是主键。

CREATE table Employee(
Emp_id UUID, 
Emp_name TEXT, 
Emp_email TEXT,
primary key(Emp_id)
);

您可以检查上述示例的分区逻辑参考模型,如下所示 –

K - Primary key
C - Clustering column
S - Static column
Employee
Fields_nameData TypeKey
Emp_id UUIDK
Emp_nameTEXT 
Emp_emailTEXT 

在 Cassandra 中,主键是分区键和集群列(如果有)的组合。

Primary Key = Partition Key + [Clustering Columns]

多行分区:
在多行分区中,分区键应用于多个单列和集群列,用于排列或分区数据建模。

例子 -
让我们以具有 Event_venue、Event_year、Event_artifact、Events_title、Events_country 等字段的 Event 表为例,其中 Event_venue、Event_year 是主键,Event_artifact 是聚类列键。

CREATE table Events(
Event_venue TEXT, 
Event_year INT,
Event_artifact TEXT,
Events_title TEXT,
Events_country TEXT STATIC,
primary key((Event_venue, Event_year), Event_artifact)
);

您可以检查上述示例的分区逻辑参考模型,如下所示 –

K - Primary key
C - Clustering column
S - Static column
Events
Fields_nameData TypeKey
Event_venueTEXTK
Event_yearINTK
Event_artifactTEXT 
Events_titleTEXT 
Events_country TEXTS