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_name | Data Type | Key |
Emp_id | UUID | K |
Emp_name | TEXT | |
Emp_email | TEXT |
在 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_name | Data Type | Key |
Event_venue | TEXT | K |
Event_year | INT | K |
Event_artifact | TEXT | |
Events_title | TEXT | |
Events_country | TEXT | S |