sssss
Curso Big Data
David Martínez Casas
david.martinez.casas@usc.es
Centro Singular de Investigación en Tecnoloxías da Información
UNIVERSIDADE DE SANTIAGO DE COMPOSTELA
citius.usc.es
Índice
Introducción a Cassandra
Modelo de datos
Instalación y configuración
Cassandra command line interface
CQL 3 (Cassandra Query Language)
Clientes Cassandra: kunderaEjemplos
Cluster multinodo
2
Que es Apache Cassandra
Introducción
Apache Cassandra es un motor de bases de datos NoSQL, Open
Source e implementado en Java.
Fue originalmente creada por Facebook y donada a Apache como
software libre en 2009.
Es una de las base de datos NoSQL más relevantes a nivel mundial:
Netflix, eBay, Twitter, Urban Airship, Constant Contact, Reddit,Cisco,
OpenX, Digg, CloudKick, Ooyala, …
Cassandra puede manejar varios terabytes de datos si lo necesita y
puede, fácilmente, manejar millones de ficheros, incluso en un clúster
pequeño (Big Data).
La información en las bases de datos relacionales, se almacenan en
forma de filas, pero en Cassandra la información se almacena en
columnas con pares key-value.
3
Características deCassandra I
Introducción
Esquema dinámico. El esquema que define la estructura de los datos
puede cambiar en tiempo de ejecución.
No hay un único punto de fallo. Los datos se replican automáticamente
a varios nodos. Perder un nodo no causa la baja del clúster.
Alta disponibilidad. Los datos estás disponibles la mayor parte del
tiempo gracias a la redundancia que introduce la replicaciónde datos.
Particionamiento de los datos. La topología de Cassandra es la de un
anillo a través del cual se distribuyen los datos para minimizar cuellos
de botella en el acceso a los mismos.
Escalabilidad horizontal. Hasta un alto número de máquinas la
capacidad de cómputo aumenta linealmente con el número de
máquinas.
Capacidad para manejar cientos de gigabytes de datos.
4Características de Cassandra II
Introducción
Soporte profesional: varias empresas dan soporte y construyen
productos sobre Cassandra: Datastax, Acunu, …
5
Terminología de Cassandra
Modelo
Column. Es la unidad mas básica en el modelo de datos de
Cassandra. Una column es un triplete de un key (un nombre) un value
(un valor) y un timestamp. Los valores son todos suministrados por elcliente. El tipo de dato del key y el value son matrices de bytes de Java,
el tipo de dato del timestamp es un long primitive.
Las column son inmutables para evitar problemas de multithreading.
Las column se organizan dentro de las columns families.
Las column se ordenan por un tipo, que pueden ser uno de los
siguientes:
AsciiType
BytesType
LongType
TimeUUIDType
UTF8Type6
Terminología de Cassandra
Modelo
SuperColumn. Es una column cuyos values son una o más columns,
que en este contexto se llamaran subcolumns. Las subcolumns están
ordenadas, y el numero de columnas que se puede definir es ilimitada.
Las Super columns, a diferencias de las columns, no tienen un
timestamp definido.
Column Family. Es mas o menos análogo a una tabla en un modelorelacional. Se trata de un contenedor para una colección ordenada de
columns. Cada column family se almacena en un archivo separado
Keyspace. Es el contenedor para las column family. Es mas o menos
análogo a una base de datos en un modelo relacional, usado en
Cassandra para separar aplicaciones. Un keyspace es una colección
ordenada de columns family.
Clúster. Conjunto de máquinas quedan soporte a Cassandra y son
vistas por los clientes como una única máquina.
7
Modelo de datos
Modelo
8
Modelo de datos
Modelo
9
Relaciones
Modelo
Entidad
One to one
People: {
John Dow: {
twitter: jdow,
email: jdow@example.com,
bio: bla bla bla,
...
},
}
People
John
Dow
bio
…
Jdow
jdow@
Bla, bla
People: {...
Regístrate para leer el documento completo.