Académique Documents
Professionnel Documents
Culture Documents
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
Pgina 3
Pgina 4
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.
Pgina 5
isolation, durability).
Estas propiedades garantizan un comportamiento de las base de datos relacionales y el mejor de los argumentos para su utilizacin.
Pgina 6
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.
Pgina 7
Pgina 8
Pgina 9
Pgina 10
Pgina 11
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)
Pgina 12
Pgina 13
Pgina 14
FUENTE: datalytics.com
Pgina 15
FUENTE: datalytics.com
Pgina 16
Pgina 17
Pgina 18
Pgina 19
Pgina 20
Pgina 21
Pgina 22
Pgina 23
Pgina 24
Pgina 25
Pgina 26
Pgina 27
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
Pgina 29
Pgina 30
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
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:
Pgina 32
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:
Pgina 33
Pgina 34
(http://www.readwriteweb.com/cloud/2011/01/howtwitter-uses-nosql.php)
Pgina 35
Pgina 36
Pgina 37
Pgina 38
Pgina 39
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
Pgina 41
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
Pgina 43
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.
(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
Su falta de madurez
Dnde usarlas?
Datos sociales Procesado de datos (Hadoop) Bsqueda (Lucene)
Caching (Memcache)
Data Warehousing
Pgina 45
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
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
database-doomed.php
document-databases-to-key-value-stores
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
Pgina 48
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
Pgina 49
Pgina 50
REFERENCIAS
McKinsey Global Institute . Big data: The
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/
Pgina 52
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:266
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/
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.
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
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.
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
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.
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
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
@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