nosql introducción -innova4j

22
Introducción a las bases de datos NoSQL.

Upload: innova4j

Post on 27-May-2015

2.421 views

Category:

Technology


1 download

DESCRIPTION

Introducción a bases de datos NoSQL

TRANSCRIPT

Page 1: NoSql introducción -Innova4j

Introducción a las bases de datos NoSQL.

Page 2: NoSql introducción -Innova4j

Indice

  Introducción a las bases de datos NoSQL.

  Quiénes las están usando.

  Limitaciones.

  Comparación de diversas soluciones.

  Conclusiones.

Page 3: NoSql introducción -Innova4j

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.

Page 4: NoSql introducción -Innova4j

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.

Page 5: NoSql introducción -Innova4j

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.

Page 6: NoSql introducción -Innova4j

Teorema CAP o de Brewer I (Consistency, Availability, Partition tolerance)

 Consistencia: Todos los nodos tienen los mismos datos.

 Disponibilidad: Cada requerimiento hecho a un nodo que no este fallando debería recibir respuesta.

 Tolerancia a particiones: El sistema sigue 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

Page 7: NoSql introducción -Innova4j

Teorema CAP o de Brewer II

Page 8: NoSql introducción -Innova4j

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.

Page 9: NoSql introducción -Innova4j

Tipos de Base de datos NoSQL

 Bases de datos para grafos.

 Bases de datos documentales.

 Bases de datos Orientados a columnas.

 Bases de datos clave-valor

Page 10: NoSql introducción -Innova4j

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:

 Encontrar la mejor ruta en un mapa.

 Encontrar relaciones en una red social.

 Ej: Neo4j, FlockDB.

Page 11: NoSql introducción -Innova4j

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

Page 12: NoSql introducción -Innova4j

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.

Page 13: NoSql introducción -Innova4j

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

Page 14: NoSql introducción -Innova4j

Introducción a NO SQL Énfasis

Escalamiento

Facilidad de acceso a los de datos y la complejidad de sus relaciones

Clave-valor

Documentales

Grafos

Familias de columnas

Page 15: NoSql introducción -Innova4j

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

Page 16: NoSql introducción -Innova4j

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.

Page 17: NoSql introducción -Innova4j

Nuestra comparación (Enfocado en funcionalidad y no rendimiento)

 Configuración: No requiere configuración. Con la ejecución de un programa un equipo se convierte en proveedor del servicio (nodo). Implementación para Linux y una no oficial para Windows.

 Uso: El API es muy sencillo.

 Comunidad: Entre sus clientes se incluyen Youtube y Wikipedia.

 Evaluación: Inclusión de nodos en caliente; varios nodos por equipo. No ofrece persistencia en disco.

Memcached

Page 18: NoSql introducción -Innova4j

Berkeley DB

 Configuración: El fabricante provee el instalador tanto para Linux como para Windows y están bien documentados.

 Comunidad: Es un producto comprado y mejorado por Oracle.

 Evaluación: Su API permite hacer consultas no solo por llave sino por campos del valor. No es distribuida.

Page 19: NoSql introducción -Innova4j

Hbase

 Configuración: Depende de otros productos como Hadoop y ZooKeeper, con su propia configuración. Se puede requerir configuración a nivel del sistema operativo.

 Uso: El API requiere más codificación de lo usual en este tipo de productos y puede conducir a “method overhead”.

 Actividad de la comunidad: Como proyecto de Apache que es, cuenta con mucha audiencia.

Page 20: NoSql introducción -Innova4j

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.

 Uso: Utilidad de línea de comandos para hacer put, get. Cuenta con un modulo de administración.

 Comunidad: Foros activos, Consultas resueltas en cuestión de horas.

 Evaluación: Es Java. El concepto de regiones de caché tiene equivalente en el store.

Page 21: NoSql introducción -Innova4j

Conclusiones

 Las Bases de datos NoSQL son herramientas en permanente evolución.

  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.

 Las bases de datos NoSQL son soluciones especializadas que atacan una problemática muy especifica (escalamiento, concurrencia y grandes volúmenes de datos), no son un remplazo natural a las bases de datos relacionales.

 El éxito de una arquitectura implementada sobre NoSQL depende en gran medida del diseño de las estructuras de datos y la forma como estos son recuperados y procesados.

 Las base de datos relacionales y las base de datos NoSQL son tecnologías que pueden coexistir dentro de un mismo desarrollo/aplicación aportando valor y llegando a ser tecnologías complementarias.

Page 22: NoSql introducción -Innova4j

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.

 http://www.royans.net/arch/brewers-cap-theorem-on-distributed-systems/ Describe el teorema CAP.

 http://blog.nahurst.com/visual-guide-to-nosql-systems Es la fuente del diagrama de clasificación de las soluciones NoSQl de acuerdo con el Teorema CAP.

 http://www.alberton.info/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.