2. Indice
Introducción a las bases de datos NoSQL.
Quiénes las están usando.
Limitaciones.
Comparación de diversas soluciones.
Conclusiones.
3. Definición Bases de datos
NoSQL
NoSQL aglutina las diferentes soluciones de base de datos
centradas en ser no relacionales, distribuidas y escalables
de forma horizontal.
El concepto NoSQL es algo que ha venido tomando fuerza
durante los últimos años y se plantea al día de hoy como
una alternativa madura y eficiente que nos puede ayudar a
resolver los problemas de escalabilidad y rendimiento de
aplicaciones online con miles de usuarios concurrentes y
millones de consultas al día.
4. Importancia de las arquitecturas
escalables
El escalamiento es la habilidad de un sistema de atender un
creciente numero de requerimientos sin degradar la calidad
del servicio.
El escalamiento vertical se logra aumentando la capacidad de
un equipo en: memoria, disco, procesadores, etc.
El escalamiento horizontal se logra
adicionando computadores (nodos) al
“cluster” de computadores en el que se
ejecuta el sistema.
5. Importancia de las arquitecturas
escalables II
El escalamiento horizontal reduce el riesgo de un único
punto de fallo en un sistema de alta disponibilidad.
Por su relación costo / beneficio el escalamiento horizontal
es la apuesta de los servicios actuales de Internet: Redes
sociales, computación en la nube, etc
En su evolución estos servicios han encontrado que los
métodos de escalamiento horizontal de las bases de datos
relacionales no satisfacen sus necesidades de rendimiento.
6. Teorema CAP o de Brewer I
(Consistency, Availability, Partition tolerance)
onsistencia: Todos los nodos tienen los
C
mismos datos.
isponibilidad: Cada requerimiento hecho
D
a un nodo que no este fallando debería
recibir respuesta.
olerancia a particiones: El sistema sigue
T
funcionando aun con Particiones físicas en
la red. ( Perdida de mensajes entre nodos )
En un sistema distribuido solo es posible
ofrecer simultáneamente dos de las tres
características
8. Teorema CAP o de Brewer III
“Consistencia eventual”
Las bases de datos NoSql que garantizan la disponibilidad de
los datos y tolerancia a fallos , sacrifican temporalmente la
consistencia de los datos.
9. Tipos de Base de datos NoSQL
ases de datos para grafos.
B
ases de datos documentales.
B
ases de datos Orientados a columnas.
B
ases de datos clave-valor
B
10. Bases de datos orientadas a
grafos.
Fundamentados en la teoría de grafos. La información se
guarda en estructuras de nodos, arcos (conexiones) y
propiedades ( de arcos y nodos).
Están orientados a manejos de datos muy complejos y con
muchas relaciones. Problemas típicos que enfrentan:
ncontrar la mejor ruta en un mapa.
E
ncontrar relaciones en una red social.
E
j: Neo4j, FlockDB.
E
11. Bases de datos documentales
La información se almacena en objetos xml, json, etc
Renuncian a la estructura fija de datos usual en RDBMS.
Almacenan información semiestructurada.
Documentos con nueva estructura puede ser adicionados sin
afectar la estructura de los documentos ya existentes.
Ej: CouchDB, MongoDB
12. Bases de datos orientadas a
columnas
El almacenamiento básico es la columna: Nombre, valor.
Una familia de columnas es una clave seguida de un
numero variable de columnas.
Su equivalente relacional seria una tabla.
Cassandra y otras incluyen implícitamente el timestamp en
cada columna para manejar versiones de los datos.
13. Bases de datos clave-valor
Como su nombre lo indica la estructura básica del
almacenamiento es una “clave”, que permite recuperar un
“valor”, donde “valor” representa el objeto guardado.
Son almacenamientos distribuidos optimizados para el
escalamiento horizontal.
Ej; Voldemort
14. Introducción a NO SQL
Énfasis
Clave-valor
Familias
de columnas
Escalamiento
Documentales
Grafos
Facilidad de acceso a los de datos y la complejidad de
sus relaciones
15. Quienes las están usando?
Google desarrolló Bigtable
Facebook desarrolló Casandra
Linkedin Desarrolló Voldemort
Amazon desarrollo SimpleDb, Dynamo
Casandra y Voldemort son ahora proyectos Open source
16. Limitaciones
Las base de datos NoSQL presentan limitaciones en la
consulta y explotación de datos.
Siendo altamente especializadas cada base de datos NoSQL
presenta peculiaridades en su API. Prácticamente no hay
estándares entre las diferentes familias de bases de datos
NO SQL.
17. Nuestra comparación
(Enfocado en funcionalidad y no rendimiento)
Memcached
onfiguración: No requiere configuración. Con la ejecución
C
de un programa un equipo se convierte en proveedor del
servicio (nodo). Implementación para Linux y una no oficial
para Windows.
so: El API es muy sencillo.
U
omunidad: Entre sus clientes se incluyen Youtube y
C
Wikipedia.
valuación: Inclusión de nodos en caliente; varios nodos
E
por equipo. No ofrece persistencia en disco.
18. Berkeley DB
onfiguración: El fabricante provee el instalador tanto
C
para Linux como para Windows y están bien documentados.
omunidad: Es un producto comprado y mejorado por
C
Oracle.
valuación: Su API permite hacer consultas no solo por
E
llave sino por campos del valor. No es distribuida.
19. Hbase
onfiguración: Depende de otros productos como Hadoop y
C
ZooKeeper, con su propia configuración. Se puede requerir
configuración a nivel del sistema operativo.
so: El API requiere más codificación de lo usual en este
U
tipo de productos y puede conducir a “method overhead”.
ctividad de la comunidad: Como proyecto de Apache que
A
es, cuenta con mucha audiencia.
20. Voldemort
Configuración: 3 archivos de configuración por nodo.
Conceptos: Particiones de llaves, políticas de enrutamiento
y factores de replicación. Los valores por defecto son
suficientes para empezar.
so: Utilidad de línea de comandos para hacer put, get.
U
Cuenta con un modulo de administración.
omunidad: Foros activos, Consultas resueltas en cuestión
C
de horas.
valuación: Es Java. El concepto de regiones de caché
E
tiene equivalente en el store.
21. Conclusiones
as Bases de datos NoSQL son herramientas en permanente evolución.
L
Es recomendable definir una capa de acceso a datos que permite
aprovechar las ventajas de las bases de datos NoSQL sin generar
dependencia de un producto especifico.
as bases de datos NoSQL son soluciones especializadas que atacan una
L
problemática muy especifica (escalamiento, concurrencia y grandes
volúmenes de datos), no son un remplazo natural a las bases de datos
relacionales.
l éxito de una arquitectura implementada sobre NoSQL depende en gran
E
medida del diseño de las estructuras de datos y la forma como estos son
recuperados y procesados.
as base de datos relacionales y las base de datos NoSQL son tecnologías
L
que pueden coexistir dentro de un mismo desarrollo/aplicación aportando
valor y llegando a ser tecnologías complementarias.
22. Referencias
Scalable Stores” de Rick cattell en http://www.cattell.net/datastores/
“
index.html Incluye un estudio de las familias NoSQL, y links a recursos
actualizados sobre el tema.
http://nosql-database.org/ Ofrece un catalogo de las diversas soluciones
NoSQL.
ttp://www.royans.net/arch/brewers-cap-theorem-on-distributed-
h
systems/ Describe el teorema CAP.
ttp://blog.nahurst.com/visual-guide-to-nosql-systems Es la fuente del
h
diagrama de clasificación de las soluciones NoSQl de acuerdo con el
Teorema CAP.
ttp://www.alberton.info/
h
nosql_databases_what_when_why_phpuk2011.html Es la fuente del
diagrama de Tamaño / complejidad e incluye descripciones de las diversas
arquitecturas y conceptos claves de NoSQL.