Download - NO SQL y Cassandra
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 [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 fecha 19820218
3nombre
Mario Garcia
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.