📜  在Cassandra中使用分区

📅  最后修改于: 2021-08-25 16:29:41             🧑  作者: Mango

在本文中,我们将介绍如何根据需求进行分区,以及如何使用分区键将数据处理到表中。让我们一一讨论。

先决条件—数据建模概述

数据建模分区:
分区是一小组行,您可以说一个表被拆分为该表的一个小子集,该子集在基于分区的基础上共享相同的分区键。

让我们考虑一个示例,您要在其中存储用户登录信息,例如用户名,电子邮件,密码和电子邮件ID等。

Column Name Data Type
Usr_Name text
Usr_Email text
Usr_password text
Usr_ID UUID

现在,您将看到如何根据用户信息访问来确定分区键,或者可以说出要对数据进行分区的顺序。让我们为这些特定需求编写cqlsh查询。

首先,只需使用以下cqlsh查询创建密钥空间,如下所示。

CREATE KEYSPACE User_Info 
WITH 
REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 2 };

要使用上面创建的键空间,请使用以下cqlsh命令。

user User_Info;

在这里,您将看到如何基于Usr_Info_by_email表创建分区。让我们一一讨论。

CREATE TABLE Usr_Info_by_email 
(
Usr_Name text, 
Usr_email text, 
Usr_password text, 
Usr_ID UUID, PRIMARY KEY(Usr_email)
);

在Cassandra中,表创建仅用于处理查询,并且取决于您的应用程序用例。根据查询,只需根据您的应用程序需求定义表。

现在,要将数据插入表中,请使用以下cqlsh查询。

Insert into Usr_Info_by_email (Usr_Name, Usr_email, Usr_password, Usr_ID)
values ('Ashish', 'a@gmail.com', '123', uuid());
Insert into Usr_Info_by_email (Usr_Name, Usr_email, Usr_password, Usr_ID) 
values ('Aayush', 'ay@gmail.com', '124', uuid());
Insert into Usr_Info_by_email (Usr_Name, Usr_email, Usr_password, Usr_ID) 
values ('Ashish', 'as@gmail.com', '123', uuid());
Insert into Usr_Info_by_email (Usr_Name, Usr_email, Usr_password, Usr_ID) 
values ('Harsh', 'h@gmail.com', '125', uuid());

输出 :

cassandra@cqlsh:user_data> select * from usr_info_by_email;

usr_email    | usr_id                               | usr_name | usr_password
--------------+--------------------------------------+----------+--------------
 h@gmail.com | fa91d89e-a401-4f4e-93b4-2b6282af75e1 |    Harsh |          125
ay@gmail.com | a27c955f-ddc1-4134-a1fa-0f65fd175ce7 |   Aayush |          124
 a@gmail.com | 9982a5a9-14ff-4caa-a6d2-8d6790853e8c |   Ashish |          123
as@gmail.com | aaafc38b-7184-4f8e-a325-b43fedd91828 |   Ashish |          123
(4 rows)

在这里,您可以在上面的示例中清楚地看到如何基于email访问和分区数据。