Beruflich Dokumente
Kultur Dokumente
1. Contextualización
1. Contextualización
§ Después…
1. Contextualización
1. Contextualización
Fuente:
“Big
Data”.
Àlex
Caminals
Sánchez
de
la
Campa
-‐ FUOC
Diferencias:
BI
tradicional
y
Big
Data
Naturaleza
de
los
datos
• Volumen,
Variedad
y
Velocidad.
Granularidad
• BI
tradicional
datos
almacenados
en
el
DW
en
su
mínima
granularidad.
• Big
Data
datos
almacenados
en
el
DW
son
derivados
o
filtrados.
Tecnología
• Hadoop +
base
de
datos
NoSQL
• SGBDR
+
herramienta
BI
Sistemas de Big Data
El nuevo paradigma de los datos masivos
1. El modelo MapReduce
2. Apache Hadoop
3. Apache Spark
1. El modelo MapReduce
2. Apache Hadoop
3. Apache Spark
Técnicas/herramientas
para:
• Almacenamiento datos
masivos
(distribuido)
• Procesado de
datos
masivos
(distribuido)
El
modelo
MapReduce (I)
Pasos
del
modelo
§ Map:
La
función
Map convierte
el
fichero
de
información
de
gran
tamaño
en
una
secuencia
de
pares
<clave,
valor>
Fuente:
http://www.cs.uml.edu/~jlu1/doc/source/report/MapReduce.html
Ejemplo
MapReduce
Mapping Shuffling Reducing
word1
word2
word3
word4 <word4,1>
<word2,1> word1,
3
word4
word5 <word5,1> <word2,2>
<word2,1> word2,
2
word5
word1 <word1,1>
…
word1
word5,
1
…
word3
word1
… … … …
word2
word3 <word3,1>
word1 <word1,1> <word5,1> <word5,1>
word2 <word2,1>
Índice
1. El modelo MapReduce
2. Apache Hadoop
3. Apache Spark
1. El modelo MapReduce
2. Apache Hadoop
3. Apache Spark
1. El modelo MapReduce
2. Apache Hadoop
3. Apache Spark
Resultado:
Almacenaje
y
procesado
de
datos
en
tiempo
muy
reducido
Bases
de
Datos
NoSQL
Los
datos
pueden
encontrarse
en
una
BD
NoSQL
Los
datos
procesados
mediante
trabajos
MapReduce
pueden
almacenarse
en
bases
de
datos
NoSQL.
MapReduce
NoSQL
DB
(Job
Scheduling/Execution)
(HBase)
HDFS
(Hadoop
Distributed
File
System)
Sistemas de Big Data
Técnicas y herramientas para el análisis
de datos masivos
Jordi Casas Roma
Carles Garrigues Olivella
Bases de datos NoSQL:
introducción
Índice
¿Qué es NoSQL?
Características de las BD NoSQL
Inconvenientes de las BD NoSQL
¿Qué es NoSQL?
Bajo la denominación NoSQL se engloba un
conjunto de BD para gestionar datos en entornos
de aplicación donde las BD relacionales no son la
mejor solución:
– Entornos de aplicación que requieren
esquemas de datos más flexibles.
– Sistemas altamente distribuidos que
necesitan gestionar grandes volúmenes de
datos con alta disponibilidad.
¿Qué es NoSQL?
Las primeras implementaciones de BD NoSQL
son BigTable (Google, 2003) y Marklogic (2005).
Otras BD NoSQL emblemáticas son DynamoDB
(Amazon, 2007) o Cassandra (Facebook, 2008).
Características de las BD NoSQL
No hay un modelo de datos único
Proporcionan un esquema de datos flexible.
No ofrecen SQL como lenguaje estándar.
En general son distribuidas.
Acostumbran a no garantizar las propiedades del
modelo ACID.
Frecuentemente son de código abierto.
R. Catell (2010). “Scalable SQL and NoSQL Data Stores”. SIGMOD Record 39(4), pp 12-
27. (http://dl.acm.org/citation.cfm?id=1978919).
I. Katsov (2012). Highly Scalable Blog. Articles on Big Data, NoSQL, and Highly
Scalable Software Engineering. (https://highlyscalable.wordpress.com/)
P.J. Sadalage & M. Fowler. (2013). NoSQL Distilled. A brief Guide to the Emerging
World of Polyglot Persistence, Pearson Education.
Orientado a Orientado a
Clave-valor En grafo
columnas documentos
Ejemplos de BD NoSQL
Expresividad semántica
Orientado a Orientado a
Clave-valor En grafo
columnas documentos
Orientado a Orientado a
Clave-valor En grafo
columnas documentos
Multimodelo
ArangoDB
OrientDB
Distribución: escalabilidad
Teorema CAP
Consistencia (Consistency): los usuarios del sistema tienen que
poder recuperar siempre los mismos valores para unos mismos
datos en un mismo instante de tiempo.
Disponibilidad (Availability): las peticiones de servicio enviadas
por los usuarios a un nodo que está disponible deben obtener su
debida respuesta.
Tolerancia a particiones (tolerance to network Partitions): el
sistema debe proporcionar servicio a los usuarios a pesar de que se
puedan producir situaciones de avería que causen que el sistema
quede particionado en diferentes componentes.
R. Catell (2010). “Scalable SQL and NoSQL Data Stores”. SIGMOD Record 39(4), pp 12-
27. (http://dl.acm.org/citation.cfm?id=1978919).
I. Katsov (2012). Highly Scalable Blog. Articles on Big Data, NoSQL, and Highly
Scalable Software Engineering. (https://highlyscalable.wordpress.com/)
P.J. Sadalage & M. Fowler. (2013). NoSQL Distilled. A brief Guide to the Emerging
World of Polyglot Persistence, Pearson Education.
Orientado a Orientado a
Clave-valor En grafo
columnas documentos
date= date1
ref customerId= customer1
recuperar toda la
ref paymentId= paymentCustomer1 información relativa a un
OrderLines pedido (Order) a efectos de
gestión de envío.
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
OrderLine Product
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
OrderLine Product
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
pedido a la vez.
Modelos de datos NoSQL
date= date1
ref customerId= customer1
ref paymentId= paymentCustomer1
OrderLines
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
OrderLine Product
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
Valor
OrderLine Product
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
ShippingAddress
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
Address
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
Interpretación de un agregado en
bases de datos clave-valor
Aplicación
Modelo de datos en Riak
Modelo Relacional Riak
Base de datos Base de datos
Tabla, vista Bucket
Fila Objeto = <clave, valor,…>
Columna No tiene un equivalente
directo
≈ metadato
Customer1
Link
PaymentCustomer
PaymentInfo PaymentCust1
Modelos de datos NoSQL
customerId= customer1
customerName= name1
Addresses
Address
Order
orderId= order1 Address
date= date1
ref customerId= customer1
Address
ref paymentId= paymentCustomer1
OrderLines
OrderLine Product
Payment
paymentId= paymentCustomer1
payment1
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
paymentMethod= VISA
OrderLine Product
creditCardNumber=12345678
ref orderId= order1 billingAddress
ShippingAddress No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
Address
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y , a continuación, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.
Address
Modelo de datos en MongoDB
Modelo Relacional MongoDB
Base de datos Base de datos
Tabla, vista Colección
Fila Documento
Columna Campo
Clave
primaria
Referencias
Documento
Documentos
incrustados
Campo
Modelos de datos NoSQL
orderId
El carro de la compra según un
modelo orientado a columnas
Obtener la información general de todos
los pedidos (los valores de la familia de
columnas para todas las filas)
124
...
263
P.J. Sadalage & M. Fowler. (2013). NoSQL Distilled. A brief Guide to the
Emerging World of Polyglot Persistence, Pearson Education.
Joe Celko's (2013). Complete Guide to NoSQL. Elsevier.
(http://www.sciencedirect.com/science/book/9780124071926)
E. Redmond, J Wilson (2012). Seven Databases in Seven Weeks: A Guide to
Modern Databases and the NoSQL Movement, The Pragmatic Bookshelf.
(http://pragprog.com/book/rwdata/seven-databases-in-seven-weeks)
Little Riak Book http://littleriakbook.com/
K. Banker (2011). MongoDB in Action. Manning.
Bases de datos NoSQL
Representación de datos en modelos
orientados a grafo
Jordi Conesa i Caralt
M. Elena Rodríguez González
Modelos de datos NoSQL
¿Qué son los modelos de datos y qué modelos de
datos se usan en NoSQL?
Ejemplo
Modelos de datos de Agregación
Modelos de datos Orientados a Grafo
Introducción a los grafos
Modelo orientado a grafos
Representación del carro de la compra en un
modelo en grafo
Representación del carro de la compra en Neo4j
Modelos de datos NoSQL
¿Qué son los modelos de datos y qué modelos de
datos se usan en NoSQL?
Ejemplo
Modelos de datos de Agregación
Modelos de datos Orientados a Grafo
Introducción a los grafos
Modelo orientado a grafos
Representación del carro de la compra en un
modelo en grafo
Representación del carro de la compra en Neo4j
Modelos en grafo y grafos
El modelo en grafo utiliza estructuras de grafo
para representar y almacenar los datos.
¿Grafos?
Nodos
Aristas
Grafos: conceptos básicos
Tipos de aristas
Tipos de grafos
email: Jose_the_lonely@example.com
age: 33
loves
Paul
José
loves
hates email: Jen_the_cool@example.com
loves Jen
Hugo
loves
loves until: 21/12/2013
Bea Pol
Modelos de datos NoSQL
¿Qué son los modelos de datos y qué modelos de
datos se usan en NoSQL?
Ejemplo
Modelos de datos de Agregación
Modelos de datos Orientados a Grafo
Introducción a los grafos
Modelo orientado a grafos
Representación del carro de la compra en un
modelo en grafo
Representación del carro de la compra en Neo4j
Modelos orientados a grafo
Utilizan estructuras de grafo para representar y
almacenar los datos.
No hay un modelo estándar,
Supongamos un grafo de propiedades etiquetado.
Las relaciones son explícitas entre entidades.
Mejora el tiempo de respuesta al navegar entre
relaciones (no es necesario calcular las operaciones
de join).
Schemaless: el esquema está implícito en la estructura
del grafo.
Suelen utilizar lenguajes de consulta de alto nivel.
Elementos básicos
Nodos: permiten representar conceptos generales u
objetos del mundo real.
Marqués
Moscatel de Portal Rioja
Crianza
Relación
Restricción
de unicidad
Propiedades
Consultando datos usando Cypher
MATCH (o:Order)-[:ORDERLINE]->(pl:ProductLine)-
[:PRODUCT_BOUGHT]->(p:Product)
WHERE p.name=“ColoredPen” AND pl.numberOfUnits>=10
RETURN o
Obtener todos los nombres de los clientes que hayan gastado más
de 50000€:
MATCH (c:Customer)<-[:CUSTOMER]-(:Order)-
[:ORDERLINE]->(pl:ProductLine)
WITH c.name AS cliente, sum(pl.price) AS total_compras
WHERE total_compras > 50000
RETURN cliente
Modelos de datos NoSQL