Este es el quinto seminario web de la serie Conceptos básicos, en la que se realiza una introducción a la base de datos MongoDB. En este seminario web, se analizan los aspectos básicos de Aggregation Framework.
4. Agenda del Curso
Date Time Webinar
25-Mayo-2016 16:00 CEST Introducción a NoSQL
7-Junio-2016 16:00 CEST Su primera aplicación MongoDB
21-Junio-2016 16:00 CEST Diseño de esquema orientado a documentos
07-Julio-2016 16:00 CEST Indexación avanzada, índices de texto y geoespaciales
19-Julio-2016 16:00 CEST Introducción al Aggregation Framework
28-Julio-2016 16:00 CEST Despliegue en producción
5. Resumen de lo visto hasta ahora
• ¿Porqué existe NoSQL?
• Tipos de bases de datos NoSQL
• Características clave de MongoDB
• Instalación y creación de bases de datos y colecciones
• Operaciones CRUD, Índices y explain()
• Diseño de esquema dinámico
• Jerarquía y documentos embebidos
• Búsquedas de texto libre y geoespaciales
6. Aggregation Framework
• Un motor analítico nativo para MongoDB
• Pero… que significa analítico?
• Si miramos a las BBDD clásicas tenemos dos tipos, OLTP y OLAP
• OLTP : Online Transaction Processing
• Reservas de aviones
• Operativa de cajeros
• Gestión de clientes(CRM)
• OLAP : Online Analytical Processing
• Cálculos de rentabilidad y Overbooking
• Predicción de demanda y optimización y de recargasd e cajerois
• Segmentación de clientes
8. OLAP – Territorio de Gigantes
• Las queries OLAP normalmente requiren accesos totales los datos
• Los resultados se almacenan para análisis comparativos y futuros
• Spark y Hadoop son las tecnologías dominantes en esta área, pero:
• La complejidad es elevada
• Están orientados al análisis algorítmico de datos (Hay que programar)
• Requieren conocimiento de procesado y algorítmica paralela.
• Aggregation Framework ofrece aproximación más amistosa
• Puedes hacer lo mismo con menos esfuerzo.
• Óptimo para analítica en Tiempo Real y descubrimiento
9. Agg. Frmwk – A Processing Pipeline
Project Lookup Group SortMatch
• Think unix pipeline
• The output of one stage is passed to the input of the next stage
• Each stage performs one job
• Stages can be repeated
• The input is a single collection
10. Pipeline Operators
• $match
Filter documents
• $project/$redact
Reshape documents
• $group
Summarize documents
• $out
Create new collections
• $sample
Return random samples
• $sort
Order documents
• $limit/$skip
Paginate documents
• $lookup
Join two collections together
• $unwind
Expand an array
• $geoNear
Return documents by distance
26. Summary
• A pipeline of operations
• Select, project, group, sort, lookup
• $out must appear last in an aggregation pipeline
• There are a range of accumulators (see the group by
documentation)
• Very powerful way to reshape and analyze data
• Shard aware to gain maximum performance for large clusters
27. Próximo Webinar
Despliegue en producción
• 28 de Julio 2016 – 16:00 CEST, 11:00 ART, 9:00
• ¡Regístrese si aún no lo ha hecho!
• ¿Qué necesita saber para asegurarse de que el sistema MongoDB
funcione y escale en un entorno de producción?
• En esta charla, haremos un recorrido por nuestro decálogo para el
despliegue en producción y analizaremos los aspectos básicos de
algunas de las herramientas automatizadas que MongoDB ofrece para
gestionar los sistemas en producción.
• Regístrese en : https://www.mongodb.com/webinars
• Denos su opinión, por favor: back-to-basics@mongodb.com
Start with the original collection; each record (document) contains a number of shapes (keys), each with a particular color (value)
$match filters out documents that don’t contain a red diamond
$project adds a new “square” attribute with a value computed from the value (color) of the snowflake and triangle attributes
$lookup performs a left outer join with another collection, with the star being the comparison key
Finally, the $group stage groups the data by the color of the square and produces statistics for each group