2. BASE DE DATOS NoSQL
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.
3. BASE DE DATOS NoSQL
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.
4. BASE DE DATOS NoSQL
En ese sentido, frecuentemente, las bases de
datos NoSQL están altamente optimizadas para
las operaciones recuperar y agregar, y
normalmente no ofrecen mucho más que la
funcionalidad de almacenar los registros (p.ej.
almacenamiento clave-valor). La pérdida de
flexibilidad en tiempo de ejecución, comparado con
los sistemas RDBMS, se ve compensada por
ganancias significativas en escalabilidad y
rendimiento cuando se trata con ciertos modelos
de datos.
5. 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”.
7. 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 «clavevalor», 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
8. 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.
9. Historia
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.
10. En las versiones iníciales utilizaba un API(Application
Programming Interface) propia para poder acceder a la
base de datos. En los últimos tiempos están apostando
por un lenguaje denominado CQL (Cassandra Query
Language) que posee una sintaxis similar a SQL
aunque con muchas menos funcionalidades. Esto hace
que iniciarse en el uso de la misma sea más sencillo.
Permite acceder en Java desde JDBC (Java Database
Connectivity).