no sql y cassandra

Post on 16-Aug-2015

29 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Unidad Educativa Salesiana Don Bosco

•Tema: No SQL y Apache Casandra

Autor: Alvaro Cruz

Introducción • Es un sistema de administración de base de datos

distribuida, open source, diseñado para manejar grandes cantidades de datos.

• Se autodefine como “Altamente escalable, eventualmente consistente, distribuida y basada en datos clave-valor”.

• Es una solución NoSQL, inicialmente desarrollada por Facebook (liberado en julio 2008) y desde Marzo 2009 es un proyecto de la fundación Apache (Feb 17 2010 toplevel).

• Esta basada en BigTable (Módelo de Datos) y Amazon Dynamo (infraestructura).

• Desarrollado en Java.

Base De Datos NoSQLIntroducción

Las Bases de Datos NoSQL crecieron con las principales compañías de Internet, como Google, Amazon, Twitter y Facebook. Éstas tenían que enfrentarse a desafíos con el tratamiento de datos que las tradicionales RDBMS no solucionaban . Con el crecimiento de la web en tiempo real existía una necesidad de proporcionar información procesada a partir de grandes volúmenes de datos que tenían unas estructuras horizontales más o menos similares. Estas compañías se dieron cuenta que el rendimiento y sus propiedades de tiempo real eran más importantes que la coherencia, en la que las RDBMS dedicaban una gran cantidad de tiempo de proceso.

NoSQL: También llamado “no solo SQL”, es una amplia clase de sistemas de gestión de bases de datos que se diferencian del modelo clásico del sistema de gestión de bases de datos relacionales (RDBMS) en aspectos importantes, el más destacado es: no usan SQL como el principal lenguaje de consultas. Los datos almacenados no requieren estructuras fijas como tablas y mayormente no soportan operaciones JOIN.

BASE DE DATOS NoSQL

Modelo de Almacenamiento Clave - Valor

En un sistema RDBMS tenemos bases de datos y dentro de cada base de datos tenemos tablas formadas por filas y columnas. En cambio en un sistema clave-valor tenemos contenedores, también se les llama cabinets, en cada contenedor podemos tener tantas parejas de clave-valor como queramos. En cada contenedor podemos tener datos de la misma naturaleza o totalmente diferente.

A cada clave se asocia un valor (clave=valor), por ejemplo: “Nombre=Jose”, “Apellido=Hernandez”.

ID

Usuario

Nombre

EMail Fecha

1 pepe Jose ja@ja.com 02/04/1971

2 juan Juanjuan@hatmail.com

18/02/1982

3 mario Mariomgarcia@correo.es

null

Base de Datos Relacional

Base de Datos Clave Valor

IDUsuari

o

1 pepe

2 juan

3 mario

ID usuario

Clave Valor

1nombre

Jose Alberto

1 email ja@ja.com

1 fecha 19710402

2nombre

Juan Antonio

2 emailjuan@hatmail.com

2 fecha 19820218

3nombre

Mario Garcia

3 emailmgarcia@micorreo.es

Apache Cassandra

Apache Cassandra es una base de datos NoSQL(o también No Solo SQL),distribuida y basada en un modelo de almacenamiento de «clave-valor», escrita en Java. Permite grandes volúmenes de datos en forma distribuida. Su objetivo principal es la escalabilidad lineal y la disponibilidad. La arquitectura distribuida de Cassandra está basada en una serie de nodos iguales que se comunican con un protocolo P2P (peer to per) con lo que la redundancia es máxima.

Protocolo P2P

Historia

• Apache Cassandra fue desarrollada para impulsar su función de búsqueda de Bandeja de entrada de Facebook por Avinash Lakshman y Prashant Malik. Fue lanzado como un proyecto de código abierto en julio de 2008. En marzo de 2009, se convirtió en un proyecto de Apache. El 17 de febrero 2010 se graduó como un proyecto de nivel superior. 

Lanzamientos de Avinash Lakshman y Prashant Malik

Lanzamientos después de la graduación incluyen

• 0.6, lanzado 12 de abril 2010, añade soporte para el almacenamiento en caché integrado y Apache Hadoop MapReduce 

• 0.7, lanzado 08 de enero 2011, añadida índices secundarios y los cambios de esquema en línea.

• 0.8, lanzado 02 de junio 2011, añade el idioma Cassandra Query (CQL), auto-tuning memtables, y el apoyo a las actualizaciones sin tiempo de inactividad 

• 1.0, lanzado 17 de octubre 2011, agregó la compresión integrada, nivelada compactación y mejora el rendimiento de lectura 

• 1.1, lanzado 23 de abril 2012, añadió auto-tuning cachés, el aislamiento a nivel de fila, y soporte para ssd mixta / hilado despliegues disco 

• 1.2, lanzado 02 de enero 2013, añadió la agrupación en los nodos virtuales, la comunicación entre nodos, lotes atómicas y seguimiento de solicitudes 

• 2.0, lanzado 04 de septiembre 2013, añadió transacciones ligeras, disparadores, la mejora de compactadoras.

1) Descargar la ultima versión (0.5.1 actual) ● Web oficial: http://cassandra.apache.org/

Instalación y Puesta en Marcha

2) Descomprimimos en cualquier carpeta y procedemos a instalar .

3) Creamos el directorio de datos y de log por defecto:

● sudo mkdir -p /var/log/cassandra ● sudo mkdir -p /var/lib/cassandra

● sudo chown -R usuario /var/lib/cassandra ● sudo chown -R usuario /var/log/cassandra

4) Pasar los Archivos de pyreadline a C:\ProgramData\Microsoft\Windows\Start

Menu\Programs\DataStax Community Edition

5) Mandar a Correr en Modo Texto

5) Mandar a Correr en Modo GráficoURL:

http://localhost:8888/opscenter/index.html

Ejemplo de una creación de una Tabla con varios Campos

1) Crear la Base de Datos con el Comando CREATE

Ejemplo: Una Base de un Banco

2) Usar la Base de Datos Banco con el Comando USE para

ingresar a nuestra base

3) Crear Tablas con el comando CREATE TABLE con los varios

campos que necesitaremos

4) Con el Comando DESCRIBE servirá para desplegar los campos

de nuestra tabla y ver si se han creado correctamente

5) Con el comando INSERT INTO para así ingresar valores en los campos

creados.

6) Con el comando SELECT * FROM empleados;aparecerá toda la

informacion

7) Podemos realizar varias consultas teniendo en cuenta en donde, qué va a buscar y

qué dato queremos

8) Verificamos en el modo Gráfico que se creo

correctamente la base de datos

Gracias Por su Atención.

top related