Está en la página 1de 66

GRADO EN INGENIERA INFORMTICA

Tema 12 Bases de datos NoSQL


Prof. Luis Joyanes Aguilar

Categoras de bases de datos


El concepto de base de datos que utilizbamos hasta hace 2 aos cambi. Distintos tipos de bases de datos, para distintos tipos de necesidades. Bases de datos transaccionales: para almacenar informacin crtica del negocio, con origen en las aplicaciones de siempre (CRM, ERP, sistemas legacy, ) NoSQL: para capturar de manera segura y escalable, grandes volmenes de informacin continua generados por eventos. Analticas: para permitir a mltiples usuarios contestar rpidamente preguntas de negocio que requieran de grandes volmenes de informacin. Hadoop (HDFS & Hive): para almacenar y procesar grandes volmenes de informacin estructurada o semi-estructurada. *Big Data

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 2

Bases de datos
In-Memory (en-memoria)
SAP Hana Oracle Times Ten In.Memory Database IBM solidDB

Relacional
Sistemas RDBMS (SGBDR). Oracle, IBM, Microsoft Transeferencia de datos entre Hadoop y bases de datos

relacionales

Legacy (jerrquicas, en red primeras relacionales) In-Memory (SAP, Oracle, Microsoft)

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 3

BASES DE DATOS TRANSACCIONALES


Utilizadas en la mayora de las empresas en la actualidad Motores transaccionales, diseados y desarrollados para soportar transacciones y trabajar con pocos registros por operacin. Las soluciones de Business Intelligence involucran cientos de miles (e inclusive millones) de registros en una nica operacin, y deben responder en un tiempo adecuado. Las bases de datos transaccionales no fueron diseadas para responder a consultas analticas sobre grandes volmenes de informacin. La irrupcin de Big Data comienza a dejar en evidencia estas falencias, debiendo utilizar complejos ndices, tablas agregadas, tablas particionadas, etc., aumentando el costo de desarrollo y mantenimiento, obteniendo tiempos
Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 4

BASES DE DATOS RELACIONALES (REPASO)


Las bases de datos relacionales funcionan con el lenguaje SQL (Structured Query Language) Conceptos clave: creacin de bases de datos,

organizacin de esquemas de datos, normalizacin, creacin de ndices y optimizacin de instalaciones.

Las bases de datos relacionales permiten separar la capa de datos de la capa de aplicacin. Al cumplir el estndar SQL son intercambiables entre s (en su mayor parte) y permiten un acceso rpido y fiable a los datos.

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 5

BASES DE DATOS RELACIONALES (REPASO)


La mayora de las bases de datos cumplen con las propiedades ACID (atomicity, consistency,

isolation, durability).

Estas propiedades garantizan un comportamiento de las base de datos relacionales y el mejor de los argumentos para su utilizacin.

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 6

BASES DE DATOS RELACIONALES (REPASO)


Atomicidad (Atomicity) garantiza que las transacciones
(sean una consulta, o grupos de sentencias SQL) no se puedan subdividir, es decir, se ejecutaran totalmente, o no se ejecutaran.

Esta propiedad implica que en caso de fallo de hardware, fallo de la base de datos, o fallo de la aplicacin, se actualizarn todos los datos o ninguno y se impide que la base de datos se corrompa o pierda el sincronismo lgico entre los datos.

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 7

BASES DE DATOS RELACIONALES (REPASO)


Consistencia (Consistency). garantiza que la
base de datos siempre estar en un estado consistente. De hecho, garantiza que cada transaccin lleve a la base de datos de un estado consistente a otro estado consistente. En este caso, consistencia se refiere a la consistencia interna de relacin entre tablas, y la consistencia en los datos almacenados. La propiedad de consistencia no permitira guardar un entero en un campo float, o no permitira borrar una fila que es referenciada por otra. Esta ltima forma de consistencia se le llama integridad referencial. Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 8

BASES DE DATOS RELACIONALES (REPASO)


Aislamiento (Isolation). garantiza que los datos
que una operacin no puede afectar a otra. Cuando se ejecutan dos transacciones sobre los mismos datos, estas son independientes, de esta manera no se generan errores en ninguna de las dos transacciones. Esto hace que los datos que manejan cada una de las transacciones no estn disponibles hasta que la transaccin ha finalizado. Generalmente esto se consigue con bloqueos

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 9

BASES DE DATOS RELACIONALES (REPASO)


Durabilidad (Durability). garantiza que una vez que la transaccin se haya completado, siempre se podr recuperar independientemente de cualquier fallo de hardware o software. Una vez la base de datos manda la seal de que la transaccin ha sido ejecutada correctamente, se puede tener la certeza de que esa transaccin esta aplicada correctamente a los datos y se va a poder recuperar. La mayora de las bases de datos utilizan un log de transacciones, y no consideran que una transaccin esta completada hasta que no est escrita en el log.
Este log secuencial permite recuperar los datos de la transaccin en caso de un fallo del sistema, y de esta forma asegurar la consistencia de los datos.

Luis Joyanes Aguilar

Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 10

BASES DE DATOS NoSQL


Las bases de datos no-relacionales son comnmente llamadas bases de datos NoSQL ya que la gran mayora de ellas comparte el hecho de no utilizar el lenguaje SQL para realizar las consultas Es una definicin controvertida, aunque la definicin ms aceptada es Not only SQL. Una de las caractersticas de las bases de datos no relacionales es que la mayora de ellas no utilizan esquemas de datos rgidos como las bases de datos relacionales. Esto hace que estas bases de datos tambin se les llame Schema-less o Schema-free (almacenamiento des-estructurado). Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 11

BASES DE DATOS NoSQL


Distintos tipos de bases para distintos tipos de aplicaciones: documentales, grafos, clave/valor, orientadas a objetos, tabulares, NoSQL: para capturar de manera segura y escalable, grandes volmenes de informacin continua generados por eventos.
Caractersticas

SQL: Sin (o muy poco) soporte para SQL. Datos accedidos a travs de programas Java, no consultas ACID: Sin integridad referencial, poco soporte transaccional Definicin de estructuras de datos flexibles (sobre la marcha)

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 12

BASES DE DATOS NoSQL


Beneficios Facilidad de escalamiento horizontal (clusters baratos) Almacenamiento de grandes volmenes (no generan cuellos de botella) Excelentes para lecturas masivas de registros tipo clave/valor. Desafos Son de distintos vendedores y no estn integradas Estos tipos de DBs se utilizan por lo general en conjunto Se utilizan y administran de distinta manera; utilizan distintos lenguajes: no SQL! Dependencia de sistemas: vuelta a las races?
Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 13

SOLUCIONES DE BASES DE DATOS NoSQL

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 14

Integracin con Big Data.

FUENTE: datalytics.com

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 15

Integracin con Big Data.

FUENTE: datalytics.com

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 16

Taxonoma de Bases de datos NoSQL


Los principales tipos de BBDD de acuerdo con su implementacin son los siguientes: Almacenes de Clave-Valor Almacenes de Familia de Columnas (columnares) Almacenes de documentos (orientadas a documentos) Almacenes de Grafos (orientadas a grafos) - Cachs de memoria

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 17

TIPOS DE BASES DE DATOS NoSQL


Caches de memoria Los caches en memoria son almacenamientos simples que suelen colocarse entre la base de datos y la aplicacin. Se encargan de guardar en cache objetos muy utilizados u objetos costosos de generar. Estos objetos se almacenan ya generados y se pueden recuperar de forma muy rpida.

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 18

TIPOS DE BASES DE DATOS NoSQL


Almacenamiento Key-Value (Clave-Valor) Los caches de memoria tpicamente utilizan el esquema key-value para guardar la informacin en cache. Los almacenamientos key-value asocian una clave nica (key) al valor que se quiere guardar (value). Varias implementaciones de los almacenamientos keyvalue tienen funcionalidad adicional, pero a un nivel bsico, el key-value solo requiere una clave y un valor. Este tipo de base de datos suele ser extremadamente rpido y optimizado para una gran cantidad de accesos.

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 19

TIPOS DE BASES DE DATOS NoSQL


Caractersticas BBDD orientadas a Clave-Valor Su precursor fue Amazon Dynamo
Basadas en DHT (Distributed Hash Tables) Modelo de datos: coleccin de pares clave/valor Ejemplos: Dynamite, Voldemort, Tokyo

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 20

TIPOS DE BASES DE DATOS NoSQL


Bases de datos de Grafos Las bases de datos orientadas a grafos organizan la informacin en grafos dirigidos. Estn optimizadas para hacer operaciones de consulta de relaciones entre miembros, y para esta tarea en especfico son extremadamente rpidas.

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 21

TIPOS DE BASES DE DATOS NoSQL


Caractersticas Bases de Datos Basadas en Grafos Inspiradas por Euler y la teora de grafos Modelo de datos: nodos, relaciones con pares clave valor en ambos No son exactamente NoSQL

Problemas para cumplir las propiedades CAE de

NoSQL (Cost-efficiency, High Availability y Elasticity) Ejemplos: AllegroGraph, VertexBD, Neo4j

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 22

TIPOS DE BASES DE DATOS NoSQL


Almacn de Documentos Los almacenes de documentos guardan la informacin como un listado de documentos desestructurados. Al acceder a un documento, se puede acceder a un nmero no especificado de campos con sus respectivos valores. Son muy rpidos para recuperar toda la informacin asociada al documento junto, y tienen un esquema de datos muy flexible. Sin embargo, suelen ser lentos para hacer consultas donde se buscan todos los documentos con un determinado campo, ya que estos no suelen tener ndices. Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 23

TIPOS DE BASES DE DATOS NoSQL


Caractersticas BBDD orientadas a Documentos La precursora fue Lotus Notes Modelo de datos: colecciones de documentos que contienen colecciones de claves-valor Guardan datos semi-estructurados: JSON Ejemplos: CouchDB, MongoDB Buenas en: Modelado de datos natural Amigables al programador Desarrollo rpido Orientas a la web: CRUD Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 24

TIPOS DE BASES DE DATOS NoSQL


Una base de datos orientada a documentos es un programa diseado para almacenar, recuperar y gestionar informacin semi-estructurada orientada a documentos: Un documento encapsula informacin en un formato estndar (XML, YAML, JSON o BSON): Los documentos en una BBDD orientada a documentos son similares
a registros pero no requieren un esquema estndar con la mismas secciones, huecos, partes, claves y similar Los documentos suelen ser direccionables por una clave que los representa unvocamente Adems de la bsqueda por clave de documento, estas BBDD suelen ofrecer una API o lenguaje de consultas que permite recuperar documentos en base a sus contenidos

Luis Joyanes Aguilar

Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 25

TIPOS DE BASES DE DATOS NoSQL


Bases de datos columnares (por columnas)
Las bases de datos columnares suelen estar optimizados para guardar grandes cantidades de datos para consultas de agregacin y reporte. Estas bases de datos suelen ser muy rpidas en consultas de data mining, sin embargo, no suelen ser usadas en entornos on-line donde la latencia y tiempo de respuesta de las consultas suele ser crtico.

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 26

TIPOS DE BASES DE DATOS NoSQL


Caractersticas BBDD orientadas a Columnas Su precursor es Google BigTable Modelo de datos: familia de columnas, esto es, un modelo tabular donde cada fila puede tener una configuracin diferente de columnas Cada clave est asociada con varios atributos (columnas) Ejemplos: HBase, Hypertable, Cassandra, Riak Buenas en: Gestin de tamao Cargas de escrituras masivas orientas al stream Alta disponibilidad MapReduce Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 27

HISTORIA BREVE DE NoSQL


Aunque los precursores del movimiento NoSQL son Google BigTable y Amazon Dynamo, ambas son de cdigo cerrado y se consideran cerradas o propietarias . Sin embargo, los ingenieros de Amazon y Google publicaron diferentes artculos sobre la arquitectura de sus almacenes de datos, y estos a su vez inspiraron la nueva generacin de almacenes de datos NoSQL, de los cuales la mayora son de cdigo abierto, o se han convertido en cdigo abierto. Actualmente existen adems soluciones propietarias de bases de datos NoSQL pero suelen ser muy costosas comparadas con las abiertas y a veces no compensa su coste. Luis Joyanes Aguilar . Universidad Pontificia de Salamanca Pgina 28
Noviembre 2013. Curso 2013/14

Bases de datos NoSQL (Not only SQL)


NoSQL es un trmino utilizado para describir un subconjunto de bases de datos que difiere en varios modos de bases de datos tradicionales (RDBMS).
No tienen schemas, no permiten JOINs, no intentan

garantizar ACID y escalan horizontalmente

El trmino fue acuado en 1998 por Carlo Strozzi y resucitado en 2009 por Eric Evans
El propio Evans sugiere mejor referirse a esta familia

de BBDD de nueva generacin como Big Data

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 29

Bases de datos NoSQL (Not only SQL)


Categora de sistemas de gestin de bases de datos que no utilizan el lenguaje SQL como su principal lenguaje de consulta. Incluyen una amplia oferta tal como Apache Hbase, Apache Cassandra, MongoDB, Apache CpuchDB, Riak, Neo4J, Redis, Membase, Amazon DynamoDB que constituye el software como servicio de Amazon Web Services Cassandra se utiliza en organizaciones tales como Netflix, Twitter, Cisco

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 30

Bases de datos NoSQL (Not only SQL)


NoSQL "not only SQL es una categora general de sistemas de gestin de bases de datos que difiere de modelos relacionales clsicos (RDBMS) en diferente modos:
Estos datastores no requieren esquemas de informacin fijas Evitan las operaciones JOIN y escalan horizontalmente

De hecho, tanto las bases de datos NoSQL como las relacionales son tipos de Almacenamiento Estructurado
Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 31

Bases de datos NoSQL (Not only SQL)


La principal diferencia radica en cmo guardan los datos (por ejemplo, almacenamiento de un recibo):
En una RDBMS tendramos que partir la informacin en

diferentes tablas y luego usar un lenguaje de programacin en la parte servidora para transformar estos datos en objetos de la vida real. En NoSQL, simplemente guardas el recibo:

tablas y su estructura por adelantado NoSQL no es la panacea!!!


opcin correcta

NoSQL es libre de schemas, t no diseas tus

Si tus datos son relacionales, quedarte con tu RDBMS sera la

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 32

Por qu necesitamos NoSQL?


Las BBDD relacionales ofrecen bajo rendimiento ante ciertas aplicaciones intensivas de datos:
Indexacin de un gran nmero de documentos
Servir pginas en sitios de mucho trfico Envo de datos de

streaming

Las RDBMS estn optimizadas para pequeas pero frecuentes transacciones de lectura/escritura o largas transacciones con pocos acceso de escritura. NoSQL puede dar servicio a grandes cargas de lectura/escritura:

Digg mantiene 3 TB de green badges (marcadores que indican las


historias votadas por otros en una red social) ms de 50 TB

Facebook que ha de realizar bsqueda en bandejas de mensajes de

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 33

Arquitectura de las BBDD NoSQL


A menudo ofrecen slo garantas de consistencia dbiles, como por ejemplo eventual consistency, o transacciones restringidas a elementos de datos simples Emplean una arquitectura distribuida, donde los datos se guardan de modo redundante en distintos servidores, a menudo usando tablas hash distribuidas Suelen ofrecer estructuras de datos sencillas como arrays asociativos o almacenes de pares clave-valor

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 34

Quin usa NoSQL?


No lo usan para todo, slo para algunas partes de sus sistemas empresariales:
Ubuntu DesktopCouch (CouchDB) Adobe y Mozilla (Hbase) Twitter

(http://www.readwriteweb.com/cloud/2011/01/howtwitter-uses-nosql.php)

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 35

Taxonoma de soluciones NoSQL


Los principales tipos de BBDD de acuerdo con su implementacin son los siguientes: Almacenes de Clave-Valor Almacenes de Familia de Columnas (columnares) Almacenes de documentos Grafos

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 36

Caractersticas BBDD orientadas a Clave-Valor


Su precursor fue Amazon Dynamo Basadas en DHT (Distributed Hash Tables) Modelo de datos: coleccin de pares clave/valor Ejemplos: Dynomite, Voldemort, Tokyo

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 37

Caractersticas BBDD orientadas a Familia de Columnas


Su precursor es Google BigTable Modelo de datos: familia de columnas, esto es, un modelo tabular donde cada fila puede tener una configuracin diferente de columnas Ejemplos: HBase, Hypertable, Cassandra, Riak Buenas en:
Gestin de tamao Cargas de escrituras masivas orientas al stream Alta disponibilidad MapReduce

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 38

Caractersticas BBDD orientadas a Documentos


La precursora fue Lotus Notes Modelo de datos: colecciones de documentos que contienen colecciones de claves-valor Ejemplos: CouchDB, MongoDB Buenas en:
Modelado de datos natural
Amigables al programador Desarrollo rpido Orientas a la web: CRUD

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 39

Caractersticas Bases de Datos Basadas en Grafos


Inspiradas por la teora de grafos Modelo de datos: nodos, relaciones con pares clave valor en ambos
Ejemplos:

AllegroGraph, VertexBD, Neo4j

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 40

Apache Cassandra
Es un almacn altamente escalable, eventualmente consistente y distribuido de estructuras clave-valor.
Iniciado por Facebook Cdigo abierto Proyecto apache
Licencia: Apache License 2.0

Escrito en Java
Multiplataforma Versin actual: 1.1.6

http://cassandra.apache.org/ Documentacin: http://www.datastax.com/docs/1.0/index


Web:

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 41

Quin usa Apache Cassandra?


Algunos usuarios importantes de Cassandra son:
Digg Facebook Twitter Rackspace SimpleGEO

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 42

Bases de datos
NoSQL (not only SQL) Bases de datos NoSQL:
Cassandra MongoDB Apache CouchDB CouchBase Riak Amazon DynamoDB Noo4J Redis Membase Hbase Bases de datos

filas como las bases de datos relacionales

columnares (por columnas) en lugar de por

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 43

NoSQL or not NoSQL?. Fuente: Glz. de Artaza (2012)


En NoSQL, generalmente los datos son recuperados de manera mucho ms rpida que en un RDBMS, sin embargo las consultas que se pueden hacer son ms limitadas y requieren trasladar complejidad a la aplicacin RDBMS para escribir usan locks y redos para garantizar ACID, pero NoSQL no soporta a menudo Atomicy, Consistency o Durability
Si quieres soporte transaccional integral debes seguir usando RDBMS

Aplicaciones que generan informes emplean consultas complejas para las que NoSQL no es muy adecuado Aplicando MapReduce, las bases de datos NoSQL pueden paralelizar operaciones complejas como agregaciones estadsticas, filtros, agrupaciones o ordenacin.

Desde un punto de vista de sistemas deberamos considerar la combinacin de SQL y NoSQL:


LinkedIn comenz slo con un RDBMS, pero desarroll su propia BBDD NoSQL

Luis Joyanes Aguilar

(Voldemort) Facebook tienen una arquitectura hbrida con Memcached y MySQL junto a un OLTP (envo de mensajes al Wall), y Cassandra para la bsqueda en la bandeja de entrada
Pgina 44

Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

NoSQL or not NoSQL? Fuente: Glz. de Artaza (2012)


Los principales problemas de NoSQL son:
Su complejidad:
Instalacin Consultas (comprender bien MapReduce) Los modelos de datos usados

Su falta de madurez

Dnde usarlas?
Datos sociales Procesado de datos (Hadoop) Bsqueda (Lucene)

Caching (Memcache)
Data Warehousing

Qu problema quieres resolver?


Transacciones Grandes volmenes de datos (Exabytes) Estructura de los datos

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 45

Conclusiones NoSQL: Fuente: Glz. de Artaza (2012)


Las BBDD NoSQL son una clara alternativa a los RDBMS
Sobre todo para algunas aplicaciones sociales y web que

requieren elevada escalabilidad

No son idneas para todo, de hecho en la mayora de los casos las RDBMS deberan seguir siendo la primera opcin:
La capacidad de hacer JOIN y las garantas ACID son muy

importantes para muchas aplicaciones

Es muy posible que los RDBMS actuales evolucionen para incorporar capacidades de NoSQL
Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 46

Comparacin de BBDD NoSQL


Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison
http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

NoSQL: Comparing the Different Solutions


http://www.readwriteweb.com/cloud/2010/11/nosql-comparison.php

Is the Relational Database Doomed?


http://www.readwriteweb.com/enterprise/2009/02/is-the-relational-

database-doomed.php

Comparing Document Databases to Key-Value Stores


http://nosql.mypopescu.com/post/659390374/comparing-

document-databases-to-key-value-stores

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 47

BIBLIOGRAFA
SOARES, Sunil (2013). Big Data Governance. An emerging Imperative. Boise, USA: MC Press. FRANKS, Bill (2012). Taming the Big Data Tidal Wave. New York: Wiley. JOYANES, Luis (2012). Computacin en la nube. Marcombo/Alfaomega: Barcelona/Mxico JOYANES, Luis (2013). Big Data. Anlisis de los grandes volmenes de datos. Marcombo/Alfaomega: Barcelona/Mxico. DATALYTICS. 18D Pentaho Big Data Architecture, www.datalytics.com (Pentaho) Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Estrategias de cloud computing en las empresas.

Pgina 48

ZIKOPOULOS, Paul C. et al (2012). Understanding Big

Data. Analytics for Enterprise Class Hadoop and Streaming Data. New York: McGraw-Hill.

www-01.ibm.com/software/data/bigdata/ ZIKOPOULOS, Paul C. et al (2013). Harness the Power of Big Data. The IBM Big Data Platform. New York: McGraw-Hill. Descargable libre en IBM

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 49

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 50

REFERENCIAS
McKinsey Global Institute . Big data: The

next frontier for innovation, competition, and productivity. June 2011

James G. Kobielus. The Forrester Wave: Enterprise Hadoop Solutions, Q1 2012, February 2, 2012. www-01.ibm.com/software/data/bigdata/ Diego Lz. de Ipia Glz. de Artaza. Bases de Datos No
Relacionales (NoSQL). Facultad de Ingeniera,
Universidad de Deusto. www.morelab.deusto.es http://paginaspersonales.deusto.es/dipina Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 51

BIBLIOGRAFA
Philip Russom. BIG DATA ANALYTICS. FOURTH QUARTER 2011. TDWI.org

IBM. http://www-01.ibm.com/software/data/bigdata/

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 52

Referencias, Ipia Glz. de Artaza


NoSQL vs. RDBMS
Riyaz -- Thanks for the question regarding "NOSQL vs. RDBMS

databases", version 10r2


4632900346253817

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:266

NoSQL or not NoSQL?


http://www.slideshare.net/ruflin/nosql-or-not-nosql/download

Comparativa de diferentes soluciones NoSQL: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis SQL vs. NoSQL. http://www.linuxjournal.com/article/10770

Cassandra. NoSQL Not only SQL (Introduction to Apache Cassandra).

http://www.scriptandscroll.com/3508/technology/nosql-not-only-sqlintroduction-to-apache-cassandra/#.TtonPmMk6nA http://www.datastax.com/docs/0.8/dml/using_cql http://cassandra.apache.org/

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 53

BIBLIOGRAFA
Fundacin Apache:http://hadoop.apache.org/ Apache ZooKeeper: http://zookeeper.apache.org/ Apache Hive: http://hive.apache.org/ Pig: http://pig.apache.org/ Apache Avro: http://avro.apache.org/ Apache Hbase: http://hbase.apache.org/

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 54

BIBLIOGRAFA
[1] Hadoop Wiki. http://wiki.apache.org/hadoop [2] D. Engfer. Intro to the Hadoop Stack. http://www.slideshare.net/davidengfer/intro-tothe-hadoop-stack-javamug [3] C. Zedlewski, E. Collins. Hadoop Stack: Then, now and future. http://www.slideshare.net/cloudera/the-hadoopstack-then-now-and-in-the-future-eli-collinscharles-zedlewski-cloudera [4] M. Collins. Hadoop and MapReduce: Big Data Analytics. Gartner Research, Enero 2011 http://www.gartner.com/id=1521016 Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 55

GRADO EN INGENIERA INFORMTICA Tema 12 APNDICE Bases de datos NoSQL: Proveedores y soluciones
Prof. Luis Joyanes Aguilar

56

Cassandra
Cassandra es una mezcla de almacenamiento clave-valor y base de datos columnar creada por Facebook y hecha de cdigo abierto en 2008. Est escrita en Java con lo que funciona sobre cualquier sistema operativo, y utiliza Thrift (otro proyecto de Facebook) para serializar y comunicar los datos con programas externos. Cassandra se puede usar prcticamente desde prcticamente cualquier lenguaje de programacin. Est diseada para gestionar cantidades muy grandes de datos distribuidos en una gran cantidad de mquinas comunes.

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 57

HBase
HBase es una base de datos distribuida de cdigo abierto no relacional. Est inspirada en el Big Table de Google, y es parte del proyecto Hadoop del Apache Software Foundation. Est escrito en Java, con lo que es portable a cualquier sistema operativo. Est diseada para ser una base de datos OLAP (On Line Analitical Processing) con lo que est centrado en el anlisis de grandes cantidades de datos, y no en procesar datos rpidamente en tiempo real. HBase fue desarrollada por la empresa Powerset que fue posteriormente adquirida por Microsoft. Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 58

HBase
Al hablar de HBase hay que adems hacer referencia a Hadoop y HDFS. HDFS es el sistema de archivos de HBase, y se utiliza para guardar los archivos de forma distribuida y redundante y al mismo tiempo tener un acceso rpido a ellos. Hadoop es un framework para escribir aplicaciones de tratamiento de datos distribuidas, y utiliza a HBase como su base de datos. Hadoop permite hacer trabajos Map Reduce sobre un nmero ilimitados de nodos HBase, y por tanto hacer un tratamiento masivo de datos. Hadoop, HBase y HDFS son proyectos de cdigo abierto del Apache Foundation Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 59

HBase
Modelo de datos HBase guarda los datos organizados en columnas al estilo del Big Table de Google. HBase soporta una variedad muy grande de protocolos para comunicarse con las distintas aplicaciones. Tiene un interfaz Thrift a sus datos, hacindolos accesibles desde cualquier lenguaje de programacin. Tambin acepta enviar datos en XML, Protobuffers y datos binarios

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 60

MongoDB
MongoDB es una base de datos de documentos, diseada para reemplazar las bases de datos SQL tradicionales de uso general. Es de cdigo abierto y escrita en C++. Actualmente est disponible para Windows, Linux y otros sistemas operativos POSIX. MongoDB fue diseada por la empresa 10gen de Nueva York, que actualmente ofrecen consultora y soporte tcnico para MongoDB. Aunque el desarrollo de MongoDB empez en Octubre del 2007, MongoDB se hizo pblico en Febrero del 2009.

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 61

CouchDB
CouchDB es una base de datos no relacional de documentos. Est escrita en Erlang, un lenguaje especficamente creado por Ericsson para programar sistemas robustos, distribuidos y multihilo. Couch (sof en ingls) es un acrnimo de Clster Of Unreliable Commodity Hardware, o clster no fiable de hardware comn. CouchDB es ahora un proyecto Apache. CouchDB fue diseada como la base de datos de la web
y el acceso a todos los datos es a travs del protocolo HTTP, con un interfaz que cumple el estndar REST (REpresentational State Transfer, el estndar de acceso a documentos web). Los datos se reciben codificados en JSON

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 62

Redis
Redis es un almacn clave valor totalmente en memoria y extremadamente rpido. Es un proyecto de cdigo abierto con licencia BSD, y ha sido adquirido recientemente por Vmware. Redis est escrito en C y puede usarse en sistemas POSIX como Linux, UNIX, o Solaris.

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 63

Redis
A diferencia de otros caches y key-value, Redis acepta muchos tipos de datos distintos, y permite hacer varias operaciones sobre los claves y los datos que tiene en memoria. Esta flexibilidad es lo que ha llevado a Redis a definirse como un servidor de estructuras de datos. Redis es una base de datos totalmente en memoria, con lo que no puede guardar ms informacin que la memoria disponible en el sistema

Luis Joyanes Aguilar


Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 64

Riak
Riak es una base de datos NoSQL inspirada en Amazon Dynamo de clave-valor. Riak esta programado en Erlang y esta disponible para sistemas POSIX. Riak utiliza un sistema totalmente descentralizado de nodos, parecido al que usa Cassandra y es resistente a fallos y automticamente actualizable. Ambos proyectos se parecen ya que ambos han tomado a Amazon Dynamo como inspiracin. Sin embargo Riak ha sido una re implementacin mas fiel del proyecto. Riak tiene un soporte todava dbil para consultas tipo mapreduce. Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 65

MUCHAS GRACIAS Preguntas?


Luis Joyanes Aguilar

Portal tecnolgico y de conocimiento


www.mhe.es/joyanes luis.joyanes@upsam.es

@luisjoyanes
www.slideshare.net/joyanes www.facebook.com/joyanesluis PORTAL NTICS : luisjoyanes.wordpress.com 34-91-5141700
Escuela Superior de Ingeniera y Arquitectura Universidad Pontificia de Salamanca campus Madrid Luis Joyanes Aguilar
Universidad Pontificia de Salamanca Noviembre 2013. Curso 2013/14

Pgina 66