Open In App

Role of Keys in Cassandra

Last Updated : 04 Dec, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we are going to discuss why keys are important and how they are work and different from relational databases. Keys are used for grouping and organizing data into columns and rows in the database, so let’s have a look.

There are many portioning keys available in Cassandra.

1. Simple Primary key
2. Composite key
3. Using a compound primary key

Let’s discuss the concept of partitioning keys one by one.

Simple Primary key

In a basic primary key one column uses a column name as the partition key. In this case, the primary key consists of only the partition key. Only the primary key can be specified when retrieving data from the table.

CREATE KEYSPACE Employee
WITH REPLICATION = { 'class' : 'SimpleStrategy',
'replication_factor' : 1 };
USE Employee;
CREATE TABLE Employee_info ( 
Employee_id UUID PRIMARY KEY,
Emp_name text,
Emp_domain text
);

Composite key

In Cassandra composite partition key, we can use for more sorted row with the help of key. Let’s take an example to understand. Below given Employee_name is a part of primary key which is called the composite partition key for Employee_info table.

Query

CREATE TABLE Employee_info
(
Employee_id int,
Employee_name text,
Employee_domain text,
Employee_add text,
PRIMARY KEY ((Emplyee_id, Employee_name), Employee_domain)
);

In the above given table Employee_id and Employee_name used for composite partition key. Here Employee_domain extra column in primary key to return sorted result. let’s take a scenario where clustering column more helpful.

INSERT INTO Employee_info(Employee_id, Employee_name, 
Employee_domain, Employee_add)
VALUES (1, ‘Ashish’, ‘A’, ‘Delhi’);
INSERT INTO Employee_info(Employee_id, Employee_name,
Employee_domain, Employee_add)
VALUES (1, ‘Ashish’, ‘B’, ‘Mumbai’);
INSERT INTO Employee_info(Employee_id, Employee_name,
Employee_domain, Employee_add )
VALUES (2, ‘Ashish’, ‘C’, ‘Hyd’);
Select * 
from Employee_info;

Output

Employee_id Employee_name Employee_domain Employee_add
1 Ashish A Delhi
1 Ashish B Mumbai
2 Ashish C Hyd

It shows with the help of clustering key column we can stored data in sorted way what we are actually expecting it is exact result what we return with the help of Employee_domain column in sorted order.

Using a Compound Primary Key

Use a compound primary key to create multiple columns that you can use to query and return sorted results. Let’s take an example of Employee_info table where we will de-normalize the data. To create a table having a compound primary key, use two or more columns as the primary key. Let’s take an example which uses an additional clause WITH CLUSTERING ORDER BY to order the Employee_points in descending order.

Query

CREATE TABLE Employee.Employee_info ( 
Employee_name text,
Employee_points int,
Employee_id UUID,
PRIMARY KEY (Employee_name, Employee_points)
);

Let’s take an example which uses an additional clause WITH CLUSTERING ORDER BY to order the Employee_points in descending order.

CREATE TABLE Employee.Employee_info ( 
Employee_name text,
Employee_points int,
Employee_id int,
PRIMARY KEY (Employee_name, Employee_points)
) WITH CLUSTERING ORDER BY (Employee_points DESC);

Now, let’s insert data into table Employee_info and used the following SQL query for the same.

INSERT INTO Employee_info (Employee_name, Employee_points, 
Employee_id)
VALUES (‘Ashish’, 90, 1);
INSERT INTO Employee_info (Employee_name, Employee_points,
Employee_id )
VALUES (‘Rana’, 95, 2);
INSERT INTO Employee_info(Employee_name, Employee_points,
Employee_id)
VALUES (‘Ashish’, 85, 3);
Select * 
from Employee_info;

Output

Employee_name Employee_points Employee_id
Rana 95 2
Ashish 90 1
Ashish 85 3

Conclusion

In conclusion, keys play a multi-faceted role in Cassandra, affecting how data is distributed, query throughput, scalability and overall system performance. With careful thought and design of keys, you can optimize the performance and efficiency of your Cassandra database across different applications and usage cases.


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads