Está en la página 1de 22

DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIN

CARRERA: INGENIERA EN SISTEMAS E INFORMTICA

SEXTO NIVEL

TCNICAS AVANZADAS DE BASE DE DATOS

NRC: 4507

AUTORES:
ANDRADE JUAN
ANTAMBA JOSE
CABEZAS AYRON

PROFESOR:
ING. MAURICIO CAMPAA

SANGOLQUI ECUADOR

Abril Octubre
2017
Tabla de contenido
Introduccin .................................................................................................................................. 4
Caractersticas de Cassandra ..................................................................................................... 4
Quin utiliza Cassandra? ......................................................................................................... 4
Temas a tratar en el curso? ...................................................................................................... 4
Instalacin de Cassandra Apache en Windows ............................................................................. 5
Creacin de base de datos Cassandra. ......................................................................................... 10
Create keyspace. ...................................................................................................................... 10
Alter keyspace. ........................................................................................................................ 10
Drop keyspace. ........................................................................................................................ 11
Tablas en Cassandra .................................................................................................................... 11
Create table.............................................................................................................................. 11
Alter table. ............................................................................................................................... 12
Eliminar table. ......................................................................................................................... 13
Truncate table. ......................................................................................................................... 13
Comandos. ................................................................................................................................... 14
Select ....................................................................................................................................... 14
Triggers ........................................................................................................................................ 15
Create Trigger. ........................................................................................................................ 15
Eliminar Trigger. ..................................................................................................................... 15
Mtodos de cursores. ................................................................................................................... 17
Count() .................................................................................................................................... 17
Limit() ..................................................................................................................................... 17
Usuarios en Cassandra ................................................................................................................ 17
Crear Usuarios ......................................................................................................................... 17
Alter Usuarios ......................................................................................................................... 17
Eliminar Usuarios.................................................................................................................... 18
Arreglos ....................................................................................................................................... 18
Actualizar un dato de una lista ................................................................................................ 19
Colecciones.................................................................................................................................. 19
Set............................................................................................................................................ 19
Actualizar un dato de un Set ................................................................................................... 20
Mapa ....................................................................................................................................... 20
Actualizar un dato de un Mapa ............................................................................................... 21
Introduccin
Cassandra Query Language (CQL) es el lenguaje de acceso a datos en Cassandra, es un derivado
reducido de SQL. En Cassandra los datos estn des normalizados de manera que el concepto de
joins o subqueries no existe.
Podemos interactuar con Cassandra mediante CQL a travs de la shell. de CQL, cqlshell. Tambin
podemos usar herramientas grficas como DevCenter o a travs de los drivers soportados para
mltiples lenguajes de programacin.

Caractersticas de Cassandra
Escalabilidad elstica.
Siempre en la arquitectura.
Su gran rendimiento lineal de escala.
El almacenamiento de datos flexible.
La distribucin de datos fcil.
Escrituras rpidas.

Quin utiliza Cassandra?

Entre los usuarios ms conocidos tenemos:

IBM
Apple
Cisco WebEx
Digg
Facebook
Netflix
Open X
Reddit
Twitter

Temas a tratar en el curso?


Creacin de documentos.
Funcionamiento de MongoDB.
CRUD documentos.
Sentencias comunes.
Embeber documentos.
Arreglos.
Cursores.
ndices.
Integracin con un lenguaje de programacin.
Instalacin de Cassandra Apache en Windows

1. Ingresamos a la pgina oficial de Cassandra.


http://cassandra.apache.org/download/

2. Descargamos la ltima versin para nuestro sistema operativo.

Ilustracin 1. Pgina de descarga de Cassandra Apache.

3. Es importante descomprimir los archivos de Casandra en el Disco Local C.

Ilustracin 2. Carpeta de Cassandra en el Disco Local C.

4. Se debe configurar el JDK de java.


Ilustracin 3. Copiar direccin del JDK.

5. Agregamos una nueva variable de entorno en el sistema, el cual le damos el nombre de


JAVA_HOME y copiamos la direccin del JDK.

Ilustracin 4. Agregacin de nuevo entorno en el sistema.

6. Ejecutamos Cassandra para realizar la instalacin.


Ilustracin 5. Instalacin de Cassandra.

7. Una vez ejecutado el archivo ya tendremos nuestro gestor de base de datos instalada ahora
ejecutaremos cassandra-cli, el cual nos permite ya entrar en el gestor de base de datos
Cassandra.

Ilustracin 6. Gestor de base de datos Cassandra.

8. El siguiente paso es instalar el DataStax Distrinution of Apache Cassandra


Ilustracin 7. Instalacin DataStax Distribution of Apache Cassandra.

9. Aceptacin de trminos.

Ilustracin 8. Aceptacin de trminos.

10. Escoger directorio de instalacin.


Ilustracin 9. Directorio de instalacin.

11. Instalacin

Ilustracin 10. Status de instalacin.


12. Una vez finalizada la instalacin es importante iniciar el servicio de DataStax Distrinution
of Apache Cassandra, para lo cual tecleamos Windows + R, escribimos services.msc,
buscamos el DataStax y le iniciamos.

Creacin de base de datos Cassandra.


Create keyspace.

Empezamos creando el KEYSPACE, que es donde se almacenan todos los datos de nuestra
aplicacin, es similar a un SCHEMA en bases de datos relacionales como MySQL.

CREATE KEYSPACE Bases WITH REPLICATION = { 'class' : 'SimpleStrategy', 'repli


cation_factor' : 1 };

Ilustracin 11. Creacin de KEYSPACE.

Si ahora ejecutamos:

DESC KEYSPACES;

Podremos ver:

system_traces bases system "OpsCenter"

Alter keyspace.

ALTER KEYSPACE cambia el mapa que define la estrategia de ubicacin de rplica y / o el


valor DURABLE_WRITES. Tambin puede utilizar el alias ALTER SCHEMA. Utilice estas
propiedades y valores para construir el mapa.

ALTER KEYSPACE Bases WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy'


, 'datacenter1' : 3 };

Ilustracin 12. Modificacin de KEYSPACE.


Drop keyspace.

Una instruccin DROP KEYSPACE resulta en la eliminacin inmediata e irreversible de un


espacio de claves, incluyendo todas las tablas y datos contenidos en el espacio de claves. Tambin
puede utilizar el alias DROP SCHEMA. Si el espacio de claves no existe, la sentencia devolver
un error a menos que se use IF EXISTS, en cuyo caso la operacin es no-op.

DROP KEYSPACE Bases;

Tablas en Cassandra
Create table.

Indicamos que queremos usar el keyspace Bases:

Use Bases;

Y creamos la tabla de usuarios:

CREATE TABLE usuarios (


Id text,
nombre text,
apellido text,
email text,
empresa text,
PRIMARY KEY (id));

Para obtener ms informacin de la tabla que acabamos de crear simplemente ejecutamos:

DESC SCHEMA;

Seleccionamos la base de datos donde vamos a trabajar

USE bases;

Insertamos registros en la tabla usuarios

INSERT INTO usuarios (id, nombre, apellido, email, empresa) VALUES ('L0051322
','Mario', 'Perez', 'mario@espe.edu.ec', 'Sistemas');
INSERT INTO usuarios (id, nombre, apellido, email, empresa) VALUES ('L005132
7','Juan', 'Andrade', 'juan@espe.edu.ec', 'Sistemas');
INSERT INTO usuarios (id, nombre, apellido, email, empresa) VALUES ('L0051328
','Cristhian', 'Cuichan', 'cristhian@espe.edu.ec', 'Sistemas');
INSERT INTO usuarios (id, nombre, apellido, email, empresa) VALUES ('L0051325
','Diedo', 'Arauz', 'diego@espe.edu.ec', 'Sistemas');

Ahora podemos realizar una consulta

SELECT * FROM usuario;

Y la consulta nos desplegara lo siguiente

id | apellido| email | nombre | empresa


----------+---------+-------------------------+-----------+--------------
L0051322 | Perez | mario@espe.edu.ec | Mario | Sistemas
L0051327 | Andrade | juan@espe.edu.ec | Juan | Sistemas
L0051328 | Cuichan | cristhian@espe.edu.ec | Cristhian | Sistemas
L0051325 | Arauz | diego@espe.edu.ec | Diego | Sistemas

(4 rows)

Alter table.

Puede utilizar ALTER TABLE para manipular los metadatos de la tabla. Haga esto para cambiar
el tipo de datos de las columnas, agregar nuevas columnas, eliminar las columnas existentes y
cambiar las propiedades de la tabla. El comando no devuelve resultados.

ALTER TABLE usuarios ADD direccion text;

Ilustracin 13. Resultado de Alter table con ADD.

Para borrar una columna la sentencia es muy semejante, pero usamos la palabra clave DROP

ALTER TABLE usuarios DROP text;


Ilustracin 14. Resultado de Alter table con DROP.

Eliminar table.

Una instruccin DROP TABLE da como resultado la eliminacin inmediata e irreversible de una
tabla, incluyendo todos los datos contenidos en la tabla. Tambin puede utilizar el alias DROP
COLUMN FAMILY.

DROP TABLE nombreTabla;

Ilustracin 15. Resultado de eliminar tabla.

Truncate table.

Una sentencia TRUNCATE resulta en la eliminacin inmediata e irreversible de todos los datos
de la tabla nombrada.

TRUNCATE Bases.usuarios

Ilustracin 16. Resultado de vaciar la tabla.


Comandos.
Select

Para obtener una entrada en concreto probamos con la sentencia:

SELECT * FROM usuarios WHERE id= 'L0051322';

id | apellido| email | nombre | empresa


----------+---------+-------------------------+-----------+--------------
L0051322 | Perez | mario@espe.edu.ec | Mario | Sistemas
(1 rows)

Cassandra nunca lee antes de escribir, no comprueba si los datos ya existen al hacer
un INSERT, por lo tanto, UPDATE e INSERT sobrescriben las columnas de una entrada sin
importar los datos ya almacenados.

UPDATE usuarios SET empresa='Electrnica' WHERE id ='L0051322';

Y ahora consultamos

SELECT * FROM usuarios WHERE id = 'L0051322';

id | apellido| email | nombre | empresa


----------+---------+-------------------------+-----------+--------------
L0051322 | Perez | mario@espe.edu.ec | Mario | Electronica
(1 rows)

Probamos a borrar una entrada:

DELETE from usuarios WHERE apellido = 'Perez';

Para comprobar si el usuario ha sido borrado volvemos a consultar la tabla:

SELECT * FROM usuarios;

Y hasta aqu las primeras impresiones de Cassandra. Como ya he mencionado es una base de
datos NoSQL sencilla de usar y potente. Su velocidad y robustez, y la facilidad con la que se
pueden crear datacenters o ampliar los ya existentes hacen que muchos proyectos de BigData y
empresas utilicen Cassandra hoy en da.

id | apellido| email | nombre | empresa


----------+---------+-------------------------+-----------+--------------
L0051327 | Andrade | juan@espe.edu.ec | Juan | Sistemas
L0051328 | Cuichan | cristhian@espe.edu.ec | Cristhian | Sistemas
L0051325 | Arauz | diego@espe.edu.ec | Diego | Sistemas

(3 rows)

Para realizar una consulta de ORDER BY las sentencias son muy similares a si estuvisemos
trabajando en una base de datos SQL.

Select * from usuarios where empresa ='Sistemas' ORDER BY apellido ASC.


id | apellido| email | nombre | empresa
----------+---------+-------------------------+-----------+--------------
L0051327 | Andrade | juan@espe.edu.ec | Juan | Sistemas
L0051325 | Arauz | diego@espe.edu.ec | Diego | Sistemas
L0051328 | Cuichan | cristhian@espe.edu.ec | Cristhian | Sistemas
(3 rows)

Triggers
Create Trigger.

La implementacin de disparadores incluye la capacidad de registrar un desencadenador en una


tabla usando la conocida sintaxis CREATE TRIGGER. El Trigger API es semi-privado y
sujeto a cambios.

CREATE TRIGGER Ejemplo ON usuarios USING 'org.apache.cassandra.triggers.Audit


Trigger';

Eliminar Trigger.
La instruccin DROP TRIGGER elimina el registro de un disparador creado con CREATE
TRIGGER. Cassandra 2.1.1 y versiones posteriores soportan la sintaxis IF EXISTS para
descartar un desencadenador. Cassandra comprueba la existencia del gatillo antes de dejarlo
caer.

DROP TRIGGER IF EXISTS Ejemplo ON usuarios;


Mtodos de cursores.
Count()
Nos devuelve el valor numrico de los registros dentro de la base de datos, para lo cual usamos
la siguiente sentencia:

select count (*) from usuarios;


count
-------
4
(1 rows)

Limit()
Dentro del mismo COUNT() cuando realizamos una consulta, se puede usar la sentencia
LIMIIT, para dar un lmite al nmero de resultados que se desea mostrar.

select count (*) from usuarios limit 2;


count
-------
2
(1 rows)

Usuarios en Cassandra
Crear Usuarios

CREATE USER define una nueva cuenta de usuario de base de datos. De forma
predeterminada, las cuentas de usuario no tienen estado de superusuario. Slo un superusuario
puede emitir peticiones CREATE USER.

CREATE USER root WITH PASSWORD '1234' SUPERUSER;


CREATE USER admin WITH PASSWORD '4321' NOSUPERUSER;

Alter Usuarios

Los super usuarios pueden cambiar la contrasea de un usuario o el estado de super usuario. Para
evitar la inhabilitacin de todos los super usuarios, los super usuarios no pueden cambiar su propio
estado de super usuario. Los usuarios comunes slo pueden cambiar su propia contrasea. Incluya
el nombre de usuario entre comillas simples si contiene caracteres no alfanumricos. Incluya la
contrasea entre comillas simples.
ALTER USER root WITH PASSWORD 'root';

Eliminar Usuarios

DROP USER elimina un usuario existente. En Cassandra 2.0.9 y posteriores, puede probar que el
usuario existe. Intentar eliminar un usuario que no existe resulta en una condicin de consulta no
vlida a menos que se use la opcin IF EXISTS. Si se usa la opcin, la sentencia ser no-op si el
usuario no existe. Debe iniciar sesin como super usuario para emitir una sentencia DROP USER.
Los usuarios no pueden abandonarse.

DROP USER IF EXISTS root;

Arreglos
Normalmente los arreglos se los utiliza en las LISTAS las cuales almacenan varios datos de un
solo atributo.
Se crea una tabla con un atributo con su tipo de dato Lista<text>, en este caso es el email.

Ilustracin 17. Creacin de Arreglos.

Se inserta un registro, con la diferencia que en el campo email podemos insertar ms de un dato
colocndolo entre corchetes [] y separando cada dato con una coma, as:

Ilustracin 18. Ingreso de Arreglos.

Verificamos el registro ingresado:

Ilustracin 19. Visualizacin de la tabla con arreglas.


Actualizar un dato de una lista
Si se requiere aadir otro dato a una lista, en este caso otro email, utilizaremos el comando
update para actualizar, set para modificar solo el atributo escogido y una condicin en la cual se
ve involucrado la llave primaria de la tabla.

Ilustracin 20. Actualizacin de un dato.

Verificamos el registro ingresado:

Ilustracin 21. Verificacin de la modificacin de ingresos.

Colecciones

Set
Es un tipo de dato que almacena un conjunto de datos.
Se debe crear una tabla con la siguiente sentencia, en este caso el email almacenar un conjunto
de correos electrnicos:

Ilustracin 22. Creacin de una coleccin.

Para insertar uno o varios datos en el Set, se debe colocar los datos entre llaves {} separados por
comas, as:

Ilustracin 23. Ingreso de una coleccin.


Verificamos los registros de la tabla

Ilustracin 24. Visualizacin de las colecciones.

Actualizar un dato de un Set


Si se requiere aadir otro dato al Set o conjunto, en este caso otro email, utilizaremos el
comando update para actualizar, set para modificar solo el atributo escogido y una condicin en
la cual se ve involucrado la llave primaria de la tabla.

Ilustracin 25. Actualizacin de una caleccin.

Verificamos el resultado.

Ilustracin 26. Visualizacin de la coleccin.

Mapa
Se utiliza para almacenar varios valores, y se lo declara de la siguiente manera:

Ilustracin 27. Creacin de un Mapa.


Para agregar un registro en el atributo de tipo mapa, utilizamos las llaves {} y dentro de ellas el
nombre del atributo entre comillas y separados por los dos puntos: y el dato, y cada atributo
separados por comas, as:

Ilustracin 28. Ingreso de un Mapa.

Verificamos la tabla.

Ilustracin 29. Visualizacin de un Mapa.

Actualizar un dato de un Mapa


Para actualizar el campo de mapa, utilizaremos la siguiente sentencia, tomando en cuenta que la
condicin debe estar ligada con la llave primaria de la tabla:

Ilustracin 30. Actualizacin de un Mapa.

Verificamos la tabla con su respectivo cambio.

Ilustracin 31. Verificacin de la modificacin de un Mapa.


Bibliografa
DataStax, Inc. (22 de Mayo de 2017). CQL Commands. Obtenido de Datastax:
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/cqlCommandsTOC.html

Tutorialspoint. (22 de Mayo de 2017). Cassandra Tutorial. Obtenido de Tutorialspoint:


https://www.tutorialspoint.com//cassandra/index.htm

También podría gustarte