Está en la página 1de 31

Realizado por:

Alejandro Meza
Juan Hernández
German Caycedo
¿Que es cassandra?

Es una base de datos NoSQL de código


abierto de alto rendimiento, escalable y
tolerante a fallos escrita en Java y
desarrollada por Apache Software
Foundation.
CARACTERISTICAS

 Arquitectura descentralizada
 Escalabilidad
 Tolerancia a Fallos
 Alta Consistencia
 Soporta replicación y replicación de múltiples centros de datos
 Alta disponibilidad
Diagrama CAP
Modelo de datos

el modelo de datos de cassandra es muy


diferente comparado con el modelo de datos
relacional, El modelo de datos de Cassandra
esta basado en columnas, siendo esta una de
sus estructuras mas básicas, a partir de esta se
desprenden mas estructuras como son las
familias de columnas, super columnas, entre
otras estructuras.
Clúster y espacio clave

un clúster es un contenedor para espacio


claves, y a su vez un espacio clave es el
contenedor de datos más externo en
Cassandra, similar a un contenedor de
tablas en el modelo relacional.
Columna
es la estructura mas simple del
modelo de datos de cassandra,
las columnas están conformadas
por un nombre, un valor y un
reloj, el cual se toma
comúnmente como una marca
horaria por hora.
Familia de columnas
 Una familia de columnas es un contenedor
para una ordenada colección de registros, los
cuales cada uno es una ordenada colección
de columnas.
super columnas

 Es un tipo especial de
Columna, Una columna
regular puede
almacenar un arreglo
de bytes, y el valor de
una super columna es
un conjunto de
subcolumnas, es decir
columnas regulares.
instalación

Requisitos necesarios:
Tener instalado alguna versión de Microsoft
Visual c++ (recomendada la última versión)
Windows 7/8/10
Tener instalado Python 2, versiones mayores a
2.7.9 pero menores a 3.0.0
Descargas
máquina virtual de Java.
apache Cassandra,
preferentemente la última
versión (Apache Cassandra
3.11)
Python 2, versiones mayores
a 2.7.9 pero menores a
3.0.0 (en el caso de no
tenerlo instalado)
cliente Python thrif
 Configuración variables de
entorno
 Se Debe buscar la dirección
donde se instalo el Python, la
maquina virtual, y cassandra
(en el caso de cassandra la
dirección donde
descomprimió el .tar).
 Ingresar en búsqueda de
Windows variables de
entorno → click en variables
de entorno → en el campo
de variables del sistema click
en nueva, y para cada una
crear una nueva variable.
 Configuración Python
 Ubíquese en la
dirección donde
descomprimió el .tar
del cliente Python thrif,
mediante el CMD, una
vez allí ejecute el
comando “Python
setup.py install”.
 Ubíquese en la
dirección donde se
instalo Python
mediante el CMD y
ejecute el comando
“pip install Cython”,
para instalar la librería
de cython.
Configuración cassandra
Se procede a instalar la
terminal CQL de Cassandra,
para ello ingrese a la ruta
C:\ (ubicación carpeta de
cassandra)\pylib mediante
CMD y ejecute el comando
“python setup.py install”.
Por último se debe instalar
Cassandra driver, para ello
ubíquese en la carpeta
donde se instalo Python
mediante CMD y ejecute el
comando “pip install
Cassandra-driver”.
Ejecución y prueba
 La ejecución correcta cada
vez que se vaya a usar
Cassandra seria de la siguiente
forma: abrir el archivo
cassandra.bat, abrir el terminal
CQL de cassandra (cqlsh.bat).
 Para probar que todos los
drivers y paquetes se instalaron
exitosamente, cree un archivo
en python y escriba “from
cassandra.cluster import
Cluster”, compile el archivo
(F5), y si compila sin errores
cassandra se instalo
correctamente.
Creación de base de
datos en Cassandra
(ejemplo practico,
Twitter)
 Estructura
 Se procede a crear una keyspace que es el
contenedor de datos más externo en
Cassandra.
CREATE KEYSPACE twitter WITH REPLICATION = {
'class’ : 'SimpleStrategy’, 'replication_factor' : 1 };
 class: ‘SimpleStrategy’ asigna el mismo
factor de replicación a todo el clúster, hay
un centro de datos único.
 replication_factor: 1, especifica que se
trabajara con un solo nodo.
 Para visualizar las keyspaces creadas se
usa el comando “describe KEYSPACES”
 Para usar un keyspace se usa el comando
“USE nombre_keyspace”
 Creación de tablas
 una vez creado el keyspace, se procede crear las tablas necesarias para que
la aplicación de twitter funcione:
Create columnfamily usuarios (id int primary key, ciudad text, nombre text, perfil
text);
Create columnfamily seguidores (id int, hora timestamp, seguidores text, primary
key (id, hora));
Create columnfamily mensajes_direct (id int, hora timestamp, ciudad text,
id_destinos list<text>, mensajes text, primary key (id, hora));
Create columnfamily mensajes_publi (id int, hora timestamp, mensajes text, primary
key (id,hora));
 Python
 Ahora se utilizará Python para
agregar y consultar registros,
Como primer paso y muy
importante es necesario
importar las librerías para
poder comunicar Python y
Cassandra sin problemas.
Ingresar ():
Esta función
fue realizada
para recrear
la parte de
autenticació
n del usuario
 CrearUsuario():
 El objetivo principal
de esta función es
agregar registros de
nuevas personas
que quieren usar la
aplicación, pero
aún no tienen una
cuenta.
 Menu (Usuario):
 Es el área principal y es
donde se implementó el
menú con las opciones en
las que cada usuario
podrá navegar durante el
uso de la aplicación.
EscribirPublico (Usuario):
Esta función permite al usuario publicar un tweet
en el que cualquier usuario de la red pueda ver.
 Escribir_direct(usuario):
 Esta función da la
posibilidad de mandar
tweets que van dirigidos a
una lista de usuarios
específicos.
 Hora ():
 Simplemente hace llamado a una función de la librería
datetime la cual retorna la fecha y hora actual.
 Seguir (Usuario):
 Para poder seguir a
alguien se deben tener en
cuenta dos casos: que la
persona tenga perfil
público en la cual no hay
ningún prerrequisito y que
la persona tenga perfil
privado esto quiere decir
que la persona puede
aceptar o rechazar tu
petición.
 ImprimirSeguidores (Usuario):
 Esta función imprime los
seguidores del usuario
ingresado por parámetro
 Imprimir_Seguidos
(Usuario):
 imprime los usuarios a los
que sigue la persona que
inicio sesión
 Imprimir_publi(Usuario):
 Lo que se buscó realizar con
esta función fue imprimir los
mensajes públicos de un usuario
en específico
 Imprimir_direct (Usuario):
 Acceder e imprimir el
historial de mensajes
dirigidos que el usuario a
realizado durante su vida
en la aplicación
 Imprimir_ultimos5 (Usuario):
 En esta función se
implementa como imprimir
los primeros cinco tweets
de cada persona que el
usuario sigue
referencias

 https://rems2013.files.wordpress.com/2013/10/manual-de-instalacion-y-
configuracion-de-cassandra-sobre-windows.pdf
 http://cassandra.apache.org/doc/latest/getting_started/index.html
 https://sites.google.com/site/uegoman/modelo-de-datos-de-cassandra

También podría gustarte