En este artículo vamos a discutir por qué las claves son importantes y en qué se diferencian de las bases de datos relacionales. Básicamente, las claves se utilizan para agrupar y organizar datos en columnas y filas en la base de datos, así que echemos un vistazo.
- Hay muchas claves de porcionado disponibles en Cassandra .
1. Simple Primary key 2. Composite key 3. Using a compound primary key
Discutamos el concepto de clave de partición uno por uno.
1. Clave principal simple:
en una clave principal básica, una columna utiliza el nombre de la columna como clave de partición. En este caso, la clave principal consiste solo en la clave de partición. Solo se puede especificar la clave principal al recuperar datos de la tabla.
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 );
2. Clave compuesta:
en la clave de partición compuesta de Cassandra, podemos usar para filas más ordenadas con la ayuda de la clave. Pongamos un ejemplo para entender. A continuación, Employee_name proporciona una parte de la clave principal que se denomina clave de partición compuesta para la tabla Employee_info.
CREATE TABLE Employee_info ( Employee_id int, Employee_name text, Employee_domain text, Employee_add text PRIMARY KEY ((Emplyee_id, Employee_name), Employee_domain) );
En la tabla anterior, Employee_id y Employee_name se utilizan para la clave de partición compuesta. Aquí Employee_domain columna adicional en la clave principal para devolver el resultado ordenado. tomemos un escenario donde la columna de agrupamiento sea más útil.
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;
Producción:
ID de empleado | Nombre de empleado | dominio_empleado | empleado_añadir |
---|---|---|---|
1 | Cenizo | A | Delhi |
1 | Cenizo | B | Bombay |
2 | Cenizo | C | hidráulico |
Muestra con la ayuda de la columna de clave de agrupamiento que podemos almacenar datos en forma ordenada, lo que realmente esperamos es el resultado exacto que devolvemos con la ayuda de la columna Employee_domain en orden ordenado.
3. Uso de una clave principal compuesta:
use una clave principal compuesta para crear varias columnas que puede usar para consultar y devolver resultados ordenados.
Tomemos un ejemplo de la tabla Employee_info donde desnormalizaremos los datos. Para crear una tabla que tenga una clave principal compuesta, use dos o más columnas como clave principal.
Tomemos un ejemplo que usa una cláusula adicional CON CLUSTERING ORDER BY para ordenar los Puntos_de_empleado en orden descendente.
CREATE TABLE Employee.Employee_info ( Employee_name text, Employee_points int, Employee_id UUID, PRIMARY KEY (Employee_name, Employee_points) );
Tomemos un ejemplo que usa una cláusula adicional CON CLUSTERING ORDER BY para ordenar los Puntos_de_empleado en orden descendente.
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);
Ahora, insertemos datos en la tabla Employee_info y usemos la siguiente consulta CQL para lo mismo.
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;
Producción:
Nombre de empleado | Puntos_empleado | ID de empleado |
---|---|---|
rana | 95 | 2 |
Cenizo | 90 | 1 |
Cenizo | 85 | 3 |
Publicación traducida automáticamente
Artículo escrito por Ashish_rana y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA