Particionamiento de tablas en Cassandra

En este artículo, vamos a cubrir cómo podemos acceder a nuestros datos sobre la base de la partición y cómo podemos almacenar nuestros datos de forma única en un clúster. Vamos a discutir uno por uno.

Requisito previo: distribución de datos

Particionamiento de tablas:
en el particionamiento de tablas, los datos se pueden distribuir en función de la clave de partición. Si no especificó ninguna clave de partición, es posible que se pierdan datos. Y será difícil acceder a los datos según los requisitos.

Ejemplo:
Consideremos si su requisito en el que desea consultar los datos del usuario por el nombre. Ahora, primero, debe crear una tabla donde el rol de la clave de partición es muy importante.

CREATE TABLE User_data_by_first_name
(
Usr_id UUID,
first_name text,
last_name text,
primary key (first_name)
);

Insertemos algunos datos para la tabla creada anteriormente.

Insert into User_data_by_id(Usr_id, first_name, last_name) 
values(uuid(), 'Ashish', 'A');
Insert into User_data_by_id(Usr_id, first_name, last_name) 
values(uuid(), 'Ashish', 'A');
Insert into User_data_by_id(Usr_id, first_name, last_name) 
values(uuid(), 'Ashish', 'B');

Ahora, si desea leer datos, utilice la siguiente consulta cqlsh.

select * from User_data_by_id;

Producción :

primer nombre apellido usuario_id
Cenizo B 8a71a441-ebee-48e6-861e-cb097570b09b

En el ejemplo anterior, si ha especificado su clave de partición por el nombre, entonces no es la forma recomendada de especificar el único nombre como clave de partición. De lo contrario, es posible que sus datos no se identifiquen de forma única y que estos se pierdan si tiene varias entradas con el mismo nombre.

Ahora, para resolver este problema, especifique Usr_id y first_name como la clave de partición.

CREATE TABLE User_data_by_first_name_modify
(
Usr_id UUID,
first_name text,
last_name text,
primary key (first_name, Usr_id)
);

Ahora, inserte los mismos datos que tiene que insertar para User_data_by_first_name.

Insert into User_data_by_first_name_modify(Usr_id, first_name, last_name) 
values(uuid(), 'Ashish', 'A');
Insert into User_data_by_first_name_modify(Usr_id, first_name, last_name) 
values(uuid(), 'Ashish', 'A');
Insert into User_data_by_first_name_modify(Usr_id, first_name, last_name) 
values(uuid(), 'Ashish', 'B');

Ahora, si lee sus datos, se identificarán de forma única y sus datos no se perderán.

select * from User_data_by_first_name_modify;

Producción :

primer nombre usuario_id apellido
Cenizo 9d0bd000-d822-41f4-9a0b-ee5a3f100dbf B
Cenizo ea0fb4a4-af2e-4eaf-8bf6-f8e894416206 A
Cenizo f1fcbdd0-5e6e-4dc7-83d7-2708db806668 A

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *