Cassandra

13
Base de Datos

Transcript of Cassandra

Page 1: Cassandra

Base de Datos

Page 2: Cassandra

Cassandra: es una base de datos NoSQL, hoy en día es

un proyecto de Apache. Cassandra fue desarrollado

por Facebook (la versión original fue escrita por un ex

empleado de Amazon y otro de Microsoft), en el 2008

fue liberado como un proyecto open source en Google

code, en el 2009 se convirtió en un proyecto “Apache

Incubator“, y finalmente en el 2010 se convirtió en un

proyecto TOP-LEVEL.

Historia

Page 3: Cassandra

Es un sistema gestor de base de datos, NoSQL

y descentralizada.

¿Que es Cassandra?

Page 4: Cassandra

Una tabla de datos por cada instancia de Cassandra.

Cada familia de columnas puede contener o bien columnas o bien supercolumnas. Las supercolumnas son columnas son la agrupación de n-columnas.

Cada columna contiene elementos de la forma “Clave-Valor-Tiempo”, donde el valor del campo tiempo es definible por el usuario.

Cada fila de una tabla puede tomar valores en columnas distintas de una familia de columnas que otra fila, es decir, si se dispone de una familia de 5 columnas (A, B, C, D, E), la fila R1 puede tener valores en A y B mientras que la fila R2 puede tenerlos en A, C, D y E.

Características

Page 5: Cassandra

Column: Es la unidad mas básica de la representación en

el modelo de datos Cassandra. Una column es un triplete de

un key (un nombre) un value (un valor) y un timestamp. Los

valores son todos suministrados por el cliente. 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

columns se organizan dentro de las columns families.

Terminología de Cassandra

Page 6: Cassandra

Las columns se ordenan por un tipo:

AsciiType

BytesType

LexicalUUIDType

LongType

TimeUUIDType

UTF8Type

Page 7: Cassandra

Super Column: Es una column cuyos values no son

strings, sino una o mas 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. No son

recursivas, es decir, solamente tienen un nivel de

profanidad.

Terminología de Cassandra

Page 8: Cassandra

Column Family: Es mas o menos análogo a una

tabla en un modelo relacional. Se trata de un

contenedor para una colección ordenada de columns.

Debido a que cada column family se almacena en un

archivo separado, asegúrese de definir las columns

que sea probable que acceda juntas en la misma

column family. Tenemos que definir las column family

de la aplicación en el archivo de configuración.

Terminología de Cassandra

Page 9: Cassandra

Keyspace: Es el contenedor para un column family.

Es mas o menos análogo a una base de datos en un

modelo relacional, usado en Cassandra para separar

aplicaciones. Cuando una base de datos relacional es

una colección de tablas, un keyspace es una colección

ordenada de columns family. Tenemos que definir los

keyspace de la aplicación en el archivo de

configuración o usando métodos definidos en la API

Terminología de Cassandra

Page 10: Cassandra

Algunos usuarios famosos de Cassandra son:

–Digg

–Facebook

–Twitter

–Rackspace

–SimpleGEO

¿Quién usa Apache Cassandra?

Page 11: Cassandra

Escalabilidad horizontal (añade nuevo hardware cuando sea preciso)

Rápidas respuestas aunque la demanda crezca Elevadas velocidades de escritura para gestionar volúmenes de

datos incrementales Almacenamiento distribuido Capacidad de cambiar la estructura de datos cuando los usuarios

demandan más funcionalidad Una API sencilla y limpia para tu lenguaje de programación

favorito Detección automática de fallos No hay un punto de fallo único (cada nodo conoce de los otros) Descentralizada Tolerante a fallos Permite el uso de Hadoop para implementar Map Reduce Hinted hand off

Ventajas de Cassandra

Page 12: Cassandra

Hay algunas desventajas que un sistema de almacenamiento tan escalable ofrece en contrapartida: –No hay joins (a cambio de más velocidad) –No permite ordenar resultados en tiempo de consulta –No tiene SQL

•Pero desde la versión 0.8 tenemos CQL

Desventajas de Cassandra

Page 13: Cassandra

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=cassandra

http://jesusnoseq.com/2013/03/cassandra/

http://jesusnoseq.com/2013/03/cassandra/

http://www.agevaled.com/2010/12/31/introduccion-a-apache-cassandra/

Referencias