En este artículo, discutiremos un enfoque práctico en Cassandra. En Cassandra , la vista Materializada maneja la desnormalización del lado del servidor y entre la tabla base y la tabla de vista materializada asegura la consistencia final. entendamos con un ejemplo.
Primero definamos la tabla base de tal manera que student_marks sea la tabla base para obtener las calificaciones más altas en la clase. En esta tabla base nombre_sujeto, nombre_estudiante y calificaciones son las columnas. Crearemos una tabla de vista materializada de la tabla base y consultaremos la siguiente consulta que se proporciona a continuación.
Desde la vista materializada encuentra las notas más altas de un alumno en una clase.
Ejemplo: Tabla base – Student_marks
CREATE TABLE student_marks ( subject_name text, student_name text, marks int, PRIMARY KEY (subject_name, marks) );
Producción:
Ahora, analicemos la vista materializada de la tabla base anterior en la que crearemos la vista que presenta las calificaciones más altas de un estudiante en una clase.
Para crear la vista materializada (tabla de vista materializada: everytime_high_marks), proporcionamos una declaración de selección simple y la clave principal para usar en esta vista. Especificar el ORDEN DE AGRUPACIÓN POR nos permite ordenar de manera inversa las calificaciones más altas para que podamos obtener las calificaciones más altas simplemente seleccionando el primer elemento en la partición.
Para crear una vista materializada utilizó la siguiente consulta CQL.
CREATE MATERIALIZED VIEW everytime_high_marks AS SELECT student_name, marks, subject_name FROM student_marks WHERE student_name IS NOT NULL AND marks IS NOT NULL AND subject_name IS NOT NULL PRIMARY KEY (subject_name, marks) WITH CLUSTERING ORDER BY (marks desc);
Producción:
Ahora, primero insertamos datos en la tabla base y también reflejará la vista materializada. Después de insertar datos, podemos consultar desde la tabla de vista materializada y obtener el resultado deseado para la consulta CQL. para fines prácticos, estamos utilizando DataStax Studio para ejecutar todas las consultas para verificar la consulta CQL.
Para insertar datos en la tabla base se utilizó la siguiente consulta CQL.
INSERT INTO student_marks (student_name, subject_name, marks) VALUES ('Ashish', 'Cassandra DB', 95); INSERT INTO student_marks (student_name, subject_name, marks) VALUES ('Rana', ' Cassandra DB ', 80); INSERT INTO student_marks (student_name, subject_name, marks) VALUES ('Amit', ' Cassandra DB ', 85); INSERT INTO student_marks (student_name, subject_name, marks) VALUES ('Shivang', ' Cassandra DB ',90); INSERT INTO student_marks (student_name, subject_name, marks) VALUES ('Kartikey', ' Cassandra DB ',92); INSERT INTO student_marks (student_name, subject_name, marks) VALUES ('Dhruv', 'Cassandra DB',93); INSERT INTO student_marks (student_name, subject_name, marks) VALUES ('Rahul', 'Cassandra DB',91); INSERT INTO student_marks (student_name, subject_name, marks) VALUES ('Gaurav', 'Cassandra DB',96);
Producción:
SELECT * FROM everytime_high_marks WHERE subject_name = 'Cassandra DB';
Producción:
Ahora, podemos buscar un estudiante que tenga las calificaciones más altas en una clase para un tema determinado. podemos usar la tabla de vista materializada para obtener el resultado que esperamos. Echemos un vistazo.
SELECT student_name, marks FROM everytime_high_marks WHERE subject = 'Cassandra DB' limit 1;
Aquí, podemos usar la columna ‘asunto’ con la cláusula WHERE porque también es la clave principal para la vista materializada.
Producción:
Como se muestra en la tabla de resultados, Gaurav tiene 96 marcas, que son las más altas de su clase.
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