NoSQL. Gerardo Rossel

Documentos relacionados
NO-SQL. Lic. Gerardo Rossel

TP3 - Sistemas Distribuidos Map-Reduce

NoSQL- Column Family. Lic. Gerardo Rossel

Big Data, MapReduce y. Hadoop. el ecosistema. Bases de Datos No Relacionales Instituto de Computación, FING, UdelaR 2016

Modelo de programación MapReduce

Persistencia Políglota Caso de estudio: MongoDB y Neo4j

Datos Descriptivos. Guía de Aprendizaje Información al estudiante. Sólo castellano Sólo inglés Ambos IDIOMA IMPARTICIÓN

ASIGNATURAS OBLIGATORIAS

NOMBRE CÓDIGO - CATEGORIZACIÓN

Bases de Datos NoSql. Conceptos generales. Lic. Gerardo Rossel Lic. Fernando Bugni

Calculo Relacional de Tuplas. Lic. Andrea Manna

Bases de datos NoSQL Fernando Berzal,

MAPREDUCE EL MODELO DETRÁS DE

Diseño de Bases de Datos Basadas en Documento: Modelo de Interrelación de Documentos

Big Data Analytics & IBM BIG INSIGHT

BASES DE DATOS NoSQL

CLUSTERING. Bases de Datos Masivas

BASES DE DATOS NoSQL

CURSOS BIGDATA. Para más información y costos: Lic. Nayana Guerrero

Taller Big Data - Parte 1

Algoritmos Eficientes para Búsquedas a Gran Escala Integrando Datos Masivos

Hadoop. Cómo vender un cluster Hadoop?

YO, CIENCIA DE DATOS. BIG DATA DAY Facultad de Ciencias, UNAM Ciudad de México, marzo 2016

Mitos y Realidades del Big Data -Introducción al Big Data-

Base de Datos Distribuidas

Búsqueda por Contenido de Imágenes y Videos

Algoritmo para corregir anomalías a nivel de instancia en grandes volúmenes de datos utilizando MapReduce

Fundamentos de lenguajes de programación cuántica

MapReduce. Modelo de programación MapReduce. MapReduce. Sistemas Distribuidos. Tecnologías procesado masivo de datos. Vamos a contar palabras

BASES DE DATOS Lenguajes de Consulta

Un enfoque MapReduce del algoritmo k-vecinos más cercanos para Big Data

Contenido Sistemas de Información Gerencial

BASES DE DATOS Lenguajes de Consulta

BIG DATA: Una mirada tecnológica

BASES DE DATOS NoSQL

Búsqueda por Contenido de Imágenes y Videos Juan Manuel Barrios Benjamin Bustos

Utilización de NoSQL para resolución de problemas al trabajar con cantidades masivas de datos

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

Bases de Datos Paralelas. Carlos A. Olarte BDII

UNIVERSIDAD NACIONAL DEL SUR 1 BAHIA BLANCA DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACION

Bases de datos NoSQL. Hugo González Noviembre 17, 2011

Características de las BD NoSQL

Sistemas de Base de Datos Paralelos

Optimización. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

UNIVERSIDAD CARLOS III DE MADRID ESCUELA POLITÉCNICA SUPERIOR GRADO EN INFORMÁTICA INTERFAZ DE CONSULTAS MAPREDUCE PARA HADOOP

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

Data Mining, Principios y Aplicaciones

Seminario 1: Procesadores paralelos

BIG DATA. Jorge Mercado. Software Quality Engineer

ANALÍTICA DE BIG DATA (BDA)

IIC Sistemas Recomendadores

Big Data. Rodolfo Campos

Bases de datos distribuidas Fernando Berzal,

PROCESAMIENTO DISTRIBUIDO

Transcripción:

NoSQL Gerardo Rossel 2017

Map-Reduce

Introducción Vistas Materializadas Computación de grandes volúmenes de información Dónde realizar el cómputo? Ranking de páginas WEB por importancia. Búsquedas en amigos en redes sociales que involucra grafos con cientos de millones de nodos.

Introducción Jeffrey Dean y Sanjay Ghemawat "MapReduce: Simplified Data Processing on Large Clusters" In OSDI 04: Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation. 2004

Visión general Leer secuencialmente una enorme cantidad de datos Map: Extraer algo que nos interesa. Agrupar por clave. Ordenar y Mezclar Reduce: Agregar, sumarizar, filtrar o transformar Devolver el resultado Adecuación El esquema general siempre es el mismo. Map y Reduce cambian para adecuarse al problema

1 Entrada: un conjunto de pares clave-valor. De esta manera se logra permitir la composición de procesos 2 El desarrollador especifica dos funciones: Map(k, v) < k, v > Toma un par key-value y devuelve un conjunto de pares key-value Hay un llamada a Map por cada par (k,v) Reduce(k, < v > ) < k, v > Todos los valores de v para la misma k se reducen y procesan en conjunto

Esquema general Figura de J. Leskovec, A. Rajaraman, J. Ullman: Mining of Massive Datasets, http://www.mmds.org

Reduce Ejemplo - Contar Palabras map( String input_key, String input_value ) : / / input_key : document name / / input_value : document contents for each word w in input_value : EmitIntermediate (w, 1) ; Map reduce ( String output_key, Iterator intermediate_values ) : / / output_key : word / / output_values :???? int result = 0; for each v in intermediate_values : result += v ; Emit ( result ) ;

Ejemplo Al finalizar las tareas Map los pares key-value son agrupados por key y los valores asociados con cada key son colocados en una lista de valores (k, [v 1, v 2,..., v n ]). Este agrupamiento es desarrollado por el sistema independientemente de lo que hagan Map y Reduce.

Paralelismo y arquitectura El entorno Map-Reduce se encarga de: Particionar los datos de entrada. Planificar la ejecución de los programas en un conjunto de computadoras. Desarrollar el agrupamiento por clave. Manejar las fallas en las máquinas. Administrar la comunicación.

Esquema general Figura de J. Leskovec, A. Rajaraman, J. Ullman: Mining of Massive Datasets, http://www.mmds.org

Paralelismo Figura de J. Leskovec, A. Rajaraman, J. Ullman: Mining of Massive Datasets, http://www.mmds.org

Paralelismo Combinable Reducer Es un Reduce que se ejecuta en el mismo nodo que el Map No todas las funciones Reduce son combinables La entrada debe coincidir con la salida. La función Reduce debe ser asociativa y conmutativa

Ejemplo - Map Calcular el ingreso total por producto. Figura de Sadalage y Fowler / NoSQL distilled : a brief guide to the emerging world of polyglot persistence

Ejemplo - Reduce Calcular el ingreso total por producto. Figura de Sadalage y Fowler / NoSQL distilled : a brief guide to the emerging world of polyglot persistence

Ejemplo - Paralelismo Calcular el ingreso total por producto. Figura de Sadalage y Fowler / NoSQL distilled : a brief guide to the emerging world of polyglot persistence

Ejemplo - Combinable Reduce Calcular el ingreso total por producto. Se puede optimizar más?

Ejemplo - Combinable Reduce Calcular el ingreso total por producto. Figura de Sadalage y Fowler / NoSQL distilled : a brief guide to the emerging world of polyglot persistence

Implementar la Junta del Algebra Relacional Bar Cerveza Precio Moe Duff 25 Cito Quilmes 35 Joe s Miller 27.5 Joe s Bud 25 Vende Bar Moe Cito Dirección Maple St River Rd. Joe s Balcarce 50 Bar Bar Cerveza Precio Dirección Moe Duff 25 Maple St Cito Quilmes 35 River Rd. Joe s Miller 27.5 Balcarce 50 Joe s Bud 25 Balcarce 50 Vende Bar

Implementar la Junta del Algebra Relacional -Map Bar Cerveza Precio Moe Duff 25 Cito Quilmes 35 Joe s Miller 27.5 Joe s Bud 25 Vende Bar Moe Cito Dirección Maple St River Rd. Joe s Balcarce 50 Bar (Bar, Moe, Maple St) (Bar, Cito, River Rd.) (Bar, Joe s, Balcarce 50) (Vende, Moe, Duff, 25) (Vende, Cito, Quilmes, 35) (Vende, Joe s, Miller, 27.5) (Vende, Joe s, Bud, 25)

Implementar la Junta del Algebra Relacional -Map Bar Cerveza Precio Moe Duff 25 Cito Quilmes 35 Joe s Miller 27.5 Joe s Bud 25 Vende Bar Moe Cito Dirección Maple St River Rd. Joe s Balcarce 50 Bar (Bar, Moe, Maple St) (Bar, Cito, River Rd.) (Bar, Joe s, Balcarce 50) (Vende, Moe, Duff, 25) (Vende, Cito, Quilmes, 35) (Vende, Joe s, Miller, 27.5) (Vende, Joe s, Bud, 25)

Implementar la Junta del Algebra Relacional -Map Bar Cerveza Precio Moe Duff 25 Cito Quilmes 35 Joe s Miller 27.5 Joe s Bud 25 Vende Bar Moe Cito Dirección Maple St River Rd. Joe s Balcarce 50 Bar (Bar, Moe, Maple St) (Bar, Cito, River Rd.) (Bar, Joe s, Balcarce 50) (Vende, Moe, Duff, 25) (Vende, Cito, Quilmes, 35) (Vende, Joe s, Miller, 27.5) (Vende, Joe s, Bud, 25)

Implementar la Junta del Algebra Relacional -Map Bar Cerveza Precio Moe Duff 25 Cito Quilmes 35 Joe s Miller 27.5 Joe s Bud 25 Vende Bar Moe Cito Dirección Maple St River Rd. Joe s Balcarce 50 Bar (Bar, Moe, Maple St) (Bar, Cito, River Rd.) (Bar, Joe s, Balcarce 50) (Vende, Moe, Duff, 25) (Vende, Cito, Quilmes, 35) (Vende, Joe s, Miller, 27.5) (Vende, Joe s, Bud, 25)

Implementar la Junta del Algebra Relacional -Map Bar Cerveza Precio Moe Duff 25 Cito Quilmes 35 Joe s Miller 27.5 Joe s Bud 25 Vende Bar Moe Cito Dirección Maple St River Rd. Joe s Balcarce 50 Bar (Bar, Moe, Maple St) (Bar, Cito, River Rd.) (Bar, Joe s, Balcarce 50) (Vende, Moe, Duff, 25) (Vende, Cito, Quilmes, 35) (Vende, Joe s, Miller, 27.5) (Vende, Joe s, Bud, 25)

Implementar la Junta del Algebra Relacional -Map Bar Cerveza Precio Moe Duff 25 Cito Quilmes 35 Joe s Miller 27.5 Joe s Bud 25 Vende Bar Moe Cito Dirección Maple St River Rd. Joe s Balcarce 50 Bar (Bar, Moe, Maple St) (Bar, Cito, River Rd.) (Bar, Joe s, Balcarce 50) (Vende, Moe, Duff, 25) (Vende, Cito, Quilmes, 35) (Vende, Joe s, Miller, 27.5) (Vende, Joe s, Bud, 25)

Implementar la Junta del Algebra Relacional -Map Bar Cerveza Precio Moe Duff 25 Cito Quilmes 35 Joe s Miller 27.5 Joe s Bud 25 Vende Bar Moe Cito Dirección Maple St River Rd. Joe s Balcarce 50 Bar (Bar, Moe, Maple St) (Bar, Cito, River Rd.) (Bar, Joe s, Balcarce 50) (Vende, Moe, Duff, 25) (Vende, Cito, Quilmes, 35) (Vende, Joe s, Miller, 27.5) (Vende, Joe s, Bud, 25)

Implementar la Junta del Algebra Relacional - Map (Bar, Moe, Maple St) (Bar, Cito, River Rd.) (Bar, Joe s, Balcarce 50) (Vende, Moe, Duff, 25) (Vende, Cito, Quilmes, 35) (Vende, Joe s, Miller, 27.5) (Vende, Joe s, Bud, 25) key= Moe values= (Bar, Moe, Maple St) key= Cito values= (Bar, Cito, River Rd.) key= Joe s values= (Bar, Joe s, Balcarce 50) key= Moe values= (Vende, Moe, Duff, 25) key= Cito values= (Vende, Cito, Quilmes,35) key= Joe s values= (Vende, Joe s, Miller,27.5) key= Joe s values= (Vende, Joe s, Bud,25)

Junta. Que hace el Reduce? key= Cito values=[ (Bar, Cito, River Rd.),(Vende, Cito, Quilmes, 35)] key= Joe s values=[ (Bar, Joe s,balcarce 50),(Vende, Joe s, Miller, 27.5),(Vende, Joe s, Bud, 25)]

Junta. Que hace el Reduce? key= Cito values=[ (Bar, Cito, River Rd.),(Vende, Cito, Quilmes, 35)] ( Cito, Quilmes, 35, River Rd) key= Joe s values=[ (Bar, Joe s,balcarce 50),(Vende, Joe s, Miller, 27.5),(Vende, Joe s, Bud, 25)]

Junta. Que hace el Reduce? key= Cito values=[ (Bar, Cito, River Rd.),(Vende, Cito, Quilmes, 35)] ( Cito, Quilmes, 35, River Rd) key= Joe s values=[ (Bar, Joe s,balcarce 50),(Vende, Joe s, Miller, 27.5),(Vende, Joe s, Bud, 25)] (Joe s, Miller, 27.5, Balcarce 50) (Joe s, Bud, 25, Balcarce 50)

Junta Resumen Sean las relaciones R(a, b) y S(b, c) computar R S Función Map Para cada tupla (a, b) de R producir el par clave-valor b, (R, a) Para cada tupla (b, c) de S producir el par clave-valor b, (S, c)

Junta Resumen Sean las relaciones R(a, b) y S(b, c) computar R S Función Map Para cada tupla (a, b) de R producir el par clave-valor b, (R, a) Para cada tupla (b, c) de S producir el par clave-valor b, (S, c) Función Reduce Para cada valor de b Recibe una lista de pares (R, a), (S, c) Produce para cada entrada un valor de la forma (a, b, c), La clave es irrelevante.