26
Unidad Educativa Salesiana Don Bosco Tema: No SQL y Apache Casandra Autor: Alvaro Cruz

NO SQL y Cassandra

Embed Size (px)

Citation preview

Page 1: NO SQL y Cassandra

Unidad Educativa Salesiana Don Bosco

•Tema: No SQL y Apache Casandra

Autor: Alvaro Cruz

Page 2: NO SQL y Cassandra

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.

Page 3: NO SQL y Cassandra

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.

Page 4: NO SQL y Cassandra

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

Page 5: NO SQL y Cassandra

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”.

Page 6: NO SQL y Cassandra

ID

Usuario

Nombre

EMail Fecha

1 pepe Jose [email protected] 02/04/1971

2 juan [email protected]

18/02/1982

3 mario [email protected]

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 [email protected]

1 fecha 19710402

2nombre

Juan Antonio

2 [email protected]

2 fecha 19820218

3nombre

Mario Garcia

3 [email protected]

Page 7: NO SQL y Cassandra

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

Page 8: NO SQL y Cassandra

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. 

Page 9: NO SQL y Cassandra

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.

Page 10: NO SQL y Cassandra

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

Instalación y Puesta en Marcha

Page 11: NO SQL y Cassandra

2) Descomprimimos en cualquier carpeta y procedemos a instalar .

Page 12: NO SQL y Cassandra

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

Page 13: NO SQL y Cassandra
Page 14: NO SQL y Cassandra

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

Menu\Programs\DataStax Community Edition

Page 15: NO SQL y Cassandra

5) Mandar a Correr en Modo Texto

Page 16: NO SQL y Cassandra

5) Mandar a Correr en Modo GráficoURL:

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

Page 17: NO SQL y Cassandra

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

Page 18: NO SQL y Cassandra

1) Crear la Base de Datos con el Comando CREATE

Ejemplo: Una Base de un Banco

Page 19: NO SQL y Cassandra

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

ingresar a nuestra base

Page 20: NO SQL y Cassandra

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

campos que necesitaremos

Page 21: NO SQL y Cassandra

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

de nuestra tabla y ver si se han creado correctamente

Page 22: NO SQL y Cassandra

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

creados.

Page 23: NO SQL y Cassandra

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

informacion

Page 24: NO SQL y Cassandra

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

qué dato queremos

Page 25: NO SQL y Cassandra

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

correctamente la base de datos

Page 26: NO SQL y Cassandra

Gracias Por su Atención.