SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
MongoDB
Fundamentos
Rodolfo Campos
@camposer
Madrid, Junio de 2015
Agenda
●Introducción a las Bases de datos NoSQL
●MongoDB
● Filosofía y conceptos
● Modelo de los documentos (JSON)
● Operaciones sobre MongoDB: Crear, leer, actualizar y borrar
● Indexación
●Características especiales
● Soporte Geoespacial
● GridFS
● MapReduce
●Administración
● Backup y recovery
● Replicación
● Sharding
Justificación
Tendencia: Usuarios de Facebook
Justificación
Tendencia: Twitter. Tweets por día
Justificación
En 2013:
●Walmart maneja más de 1M de transacciones por hora
●Google procesa aprox. 24PB de data al día
●AT&T transfiere aprox. 30PB de data al día
●Todos los días son enviados aprox. 90 trillones de correos
electrónicos
●World of Warcraft utiliza 1.3PB de almacenamiento
Justificación
Tendencia: Crecimiento de la data en el mundo
Definición
Según Wikipedia en Español, Big Data es:
●Big Data es en el sector de tecnologías de la información y la
comunicación una referencia a los sistemas que manipulan
grandes conjuntos de datos (o data sets).
●Las dificultades más habituales en estos casos se centran en la
captura, el almacenado, búsqueda, compartición, análisis, y
visualización.
●La tendencia a manipular ingentes cantidades de datos se debe
a la necesidad en muchos casos de incluir los datos
relacionados del análisis en un gran conjunto de datos
relacionado, tal es el ejemplo de los análisis de negocio, los
datos de enfermedades infecciosas, o la lucha contra el crimen
organizado.
El almacenamiento
●El almacenamiento se lleva a cabo generalmente apoyándose
en motores de bases de datos NoSQL
●El volumen de datos es un reto, por lo que las escalabilidad y la
tolerancia a fallos son de los principales retos a manejar.
●Generalmente el almacenamiento se realiza en Sistemas
●Distribuidos en lugar de Centralizados.
La búsqueda
●La búsqueda de datos se realiza a través de diferentes
herramientas, generalmente: lenguajes SQL, pseudo SQL y
específicos.
●Debido a la naturaleza, generalmente distribuida del
almacenamiento, algunos motores se valen de entornos de
trabajo específicos como MapReduce que buscan operar sobre
los diferentes nodos del sistema de forma independiente y
generar resultados independientes a partir de estos
El análisis
●El análisis de los datos se realiza de forma inline y offline,
dependiendo del problema a resolver y del motor de base de
datos utilizado.
●La mayoría de motores de bases de datos (en la mayoría
NoSQL) proveen conectores para trabajar con los lenguajes de
programación más populares.
●Si el problema a resolver no requiere de un mayor
procesamiento, el análisis de los datos se puede elaborar de
forma inline, en caso contrario, se suelen utilizar técnicas offline
(Ej. trabajos por lote).
Escalabilidad vs Complejidad
NoSQL
Según la Wikipedia en Español, NoSQL se refiere a:
●Una amplia clase de sistemas de gestión de bases de datos que
difieren del modelo clásico del sistema de gestión de bases de
datos relacionales (RDBMS) en aspectos importantes, el más
destacado que no usan SQL como el principal lenguaje de
consultas.
●Los datos almacenados no requieren estructuras fijas como
tablas, normalmente no soportan operaciones JOIN, ni
garantizan completamente ACID (atomicidad, coherencia,
aislamiento y durabilidad), y habitualmente escalan bien
horizontalmente.
Motores NoSQL
●Los tipos de motores NoSQL más importantes son:
●Tabulares (Ej. Cassandra, HBase)
●Orientadas a documentos (Ej. MongoDB)
●De clave-valor (Ej. Redis)
●Orientadas a grafos (Ej. Neo4J)
Teorema de CAP
Map – Shuffle – Reduce
Map(k1, v1) => list(k2, v2)
Reduce(k2, list(v2)) => list(v3)
// Cuenta número de palabras
// por documento
function map(String name, String
document) {
for each word w in document:
emit (w, 1)
}
function reduce(String word, Iterator
partialCounts) {
sum = 0
for each pc in partialCounts:
sum += ParseInt(pc)
emit (word, sum)
}
MongoDB
Según Wikipedia en Español:
●MongoDB (de la palabra en inglés “humongous” que significa
enorme) es un sistema de base de datos NoSQL orientado a
documentos, desarrollado bajo el concepto de código abierto.
●MongoDB guarda estructuras de datos en documentos tipo
JSON con un esquema dinámico (MongoDB llama ese formato
BSON)
●El código binario está disponible para los sistemas operativos
Windows, Linux, OS X y Solaris.
Características principales
●Consultas Ad hoc
●Consistencia eventual
●Indexación
●Replicación
●Balanceo de carga (con Sharding)
●Almacenamiento de archivos
●Agregación (MapReduce y Pipeline)
●Ejecución de JavaScript del lado del servidor
Arquitectura Sharding con Replica
Pros y Cons
●Pros:
● Schema-less
● Facilidad para escalar horizontalmente
● Costo
● Diferentes niveles de consistencia
●Cons:
● Cada documento es autodescriptivo y esto incrementa su
tamaño
● Queries limitadas (Ej. no JOINs)
● No hay soporte transaccional – Consistencia eventual
● Implementación de MapReduce simple
● Documentación no siempre actualizada
(*) Fuente original

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Mongodb
MongodbMongodb
Mongodb
 
MongoDB (Conceptos Básicos) - Junio 2010
MongoDB (Conceptos Básicos) - Junio 2010MongoDB (Conceptos Básicos) - Junio 2010
MongoDB (Conceptos Básicos) - Junio 2010
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDB
 
Bases de datos NoSQL orientadas a documentos
Bases de datos NoSQL orientadas a documentosBases de datos NoSQL orientadas a documentos
Bases de datos NoSQL orientadas a documentos
 
Comparación de algunos SGBDR
Comparación de algunos SGBDRComparación de algunos SGBDR
Comparación de algunos SGBDR
 
Base de datos
Base de datosBase de datos
Base de datos
 
Presentacion BD NoSQL
Presentacion  BD NoSQLPresentacion  BD NoSQL
Presentacion BD NoSQL
 
CouchDB y el desarrollo de aplicaciones Android
CouchDB y el desarrollo de aplicaciones AndroidCouchDB y el desarrollo de aplicaciones Android
CouchDB y el desarrollo de aplicaciones Android
 
BASE DE DATOS MICROSOFT SQL SERVER
BASE DE DATOS MICROSOFT SQL SERVERBASE DE DATOS MICROSOFT SQL SERVER
BASE DE DATOS MICROSOFT SQL SERVER
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQL
 
Sql o NoSql en Informática Médica
Sql o NoSql en Informática MédicaSql o NoSql en Informática Médica
Sql o NoSql en Informática Médica
 
Características MONGO DB
Características MONGO DBCaracterísticas MONGO DB
Características MONGO DB
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
 
Apache Cassandra en SmartPolitech
Apache Cassandra en SmartPolitech Apache Cassandra en SmartPolitech
Apache Cassandra en SmartPolitech
 
Mongodb vs couchdb
Mongodb vs couchdb Mongodb vs couchdb
Mongodb vs couchdb
 
Un acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLUn acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQL
 
MongoDB Avanzado
MongoDB AvanzadoMongoDB Avanzado
MongoDB Avanzado
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDB
 
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4jBases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
 

Semelhante a MongoDB

Semelhante a MongoDB (20)

Hadoop
HadoopHadoop
Hadoop
 
Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrollo
 
Trabajo1
Trabajo1Trabajo1
Trabajo1
 
Act4 base datos_reyes_rosalba
Act4 base datos_reyes_rosalbaAct4 base datos_reyes_rosalba
Act4 base datos_reyes_rosalba
 
Bases datos
Bases datosBases datos
Bases datos
 
Que es una base de datos
Que es una base de datosQue es una base de datos
Que es una base de datos
 
Semana 3 Mongodb
Semana 3   MongodbSemana 3   Mongodb
Semana 3 Mongodb
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Pricipales bases de datos
Pricipales bases de datosPricipales bases de datos
Pricipales bases de datos
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Base de datos existentes
Base de datos existentesBase de datos existentes
Base de datos existentes
 
Laboratorio 3 formato ieee "Tecnologias de Big Data"
Laboratorio 3 formato ieee "Tecnologias de Big Data"Laboratorio 3 formato ieee "Tecnologias de Big Data"
Laboratorio 3 formato ieee "Tecnologias de Big Data"
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Presentación1 bases de datos
Presentación1 bases de datosPresentación1 bases de datos
Presentación1 bases de datos
 
Bases datos
Bases datosBases datos
Bases datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
G te c sesion3b- mapreduce
G te c sesion3b- mapreduceG te c sesion3b- mapreduce
G te c sesion3b- mapreduce
 

Mais de camposer (8)

Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
 
Fundamentos de SQL
Fundamentos de SQLFundamentos de SQL
Fundamentos de SQL
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básico
 
Seguridad web
Seguridad webSeguridad web
Seguridad web
 
Linear Regression Parameters
Linear Regression ParametersLinear Regression Parameters
Linear Regression Parameters
 
Entonamiento de aplicaciones Web (Enfasis en PHP)
Entonamiento de aplicaciones Web (Enfasis en PHP)Entonamiento de aplicaciones Web (Enfasis en PHP)
Entonamiento de aplicaciones Web (Enfasis en PHP)
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
 
Extracción de Requerimientos
Extracción de RequerimientosExtracción de Requerimientos
Extracción de Requerimientos
 

Último

INFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfINFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdf
octaviosalazar18
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
EdwinC23
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
andersonsubero28
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
refrielectriccarlyz
 

Último (20)

680186431-3-Porcentaje-Presentacion-2022.pdf
680186431-3-Porcentaje-Presentacion-2022.pdf680186431-3-Porcentaje-Presentacion-2022.pdf
680186431-3-Porcentaje-Presentacion-2022.pdf
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxG4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptx
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbana
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
INFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfINFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdf
 
Mecatronica Automotriz .pdf
Mecatronica Automotriz              .pdfMecatronica Automotriz              .pdf
Mecatronica Automotriz .pdf
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
Mantenimiento-de-Transformadores-Monofasicos[1].pptx
Mantenimiento-de-Transformadores-Monofasicos[1].pptxMantenimiento-de-Transformadores-Monofasicos[1].pptx
Mantenimiento-de-Transformadores-Monofasicos[1].pptx
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdfTrabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
 
metodos de fitomejoramiento en la aolicacion de plantas
metodos de fitomejoramiento en la aolicacion de plantasmetodos de fitomejoramiento en la aolicacion de plantas
metodos de fitomejoramiento en la aolicacion de plantas
 
Instrumentacion para el control de procesos.pdf
Instrumentacion para el control de procesos.pdfInstrumentacion para el control de procesos.pdf
Instrumentacion para el control de procesos.pdf
 

MongoDB

  • 2. Agenda ●Introducción a las Bases de datos NoSQL ●MongoDB ● Filosofía y conceptos ● Modelo de los documentos (JSON) ● Operaciones sobre MongoDB: Crear, leer, actualizar y borrar ● Indexación ●Características especiales ● Soporte Geoespacial ● GridFS ● MapReduce ●Administración ● Backup y recovery ● Replicación ● Sharding
  • 5. Justificación En 2013: ●Walmart maneja más de 1M de transacciones por hora ●Google procesa aprox. 24PB de data al día ●AT&T transfiere aprox. 30PB de data al día ●Todos los días son enviados aprox. 90 trillones de correos electrónicos ●World of Warcraft utiliza 1.3PB de almacenamiento
  • 7. Definición Según Wikipedia en Español, Big Data es: ●Big Data es en el sector de tecnologías de la información y la comunicación una referencia a los sistemas que manipulan grandes conjuntos de datos (o data sets). ●Las dificultades más habituales en estos casos se centran en la captura, el almacenado, búsqueda, compartición, análisis, y visualización. ●La tendencia a manipular ingentes cantidades de datos se debe a la necesidad en muchos casos de incluir los datos relacionados del análisis en un gran conjunto de datos relacionado, tal es el ejemplo de los análisis de negocio, los datos de enfermedades infecciosas, o la lucha contra el crimen organizado.
  • 8. El almacenamiento ●El almacenamiento se lleva a cabo generalmente apoyándose en motores de bases de datos NoSQL ●El volumen de datos es un reto, por lo que las escalabilidad y la tolerancia a fallos son de los principales retos a manejar. ●Generalmente el almacenamiento se realiza en Sistemas ●Distribuidos en lugar de Centralizados.
  • 9. La búsqueda ●La búsqueda de datos se realiza a través de diferentes herramientas, generalmente: lenguajes SQL, pseudo SQL y específicos. ●Debido a la naturaleza, generalmente distribuida del almacenamiento, algunos motores se valen de entornos de trabajo específicos como MapReduce que buscan operar sobre los diferentes nodos del sistema de forma independiente y generar resultados independientes a partir de estos
  • 10. El análisis ●El análisis de los datos se realiza de forma inline y offline, dependiendo del problema a resolver y del motor de base de datos utilizado. ●La mayoría de motores de bases de datos (en la mayoría NoSQL) proveen conectores para trabajar con los lenguajes de programación más populares. ●Si el problema a resolver no requiere de un mayor procesamiento, el análisis de los datos se puede elaborar de forma inline, en caso contrario, se suelen utilizar técnicas offline (Ej. trabajos por lote).
  • 12. NoSQL Según la Wikipedia en Español, NoSQL se refiere a: ●Una amplia clase de sistemas de gestión de bases de datos que difieren del modelo clásico del sistema de gestión de bases de datos relacionales (RDBMS) en aspectos importantes, el más destacado que no usan SQL como el principal lenguaje de consultas. ●Los datos almacenados no requieren estructuras fijas como tablas, normalmente no soportan operaciones JOIN, ni garantizan completamente ACID (atomicidad, coherencia, aislamiento y durabilidad), y habitualmente escalan bien horizontalmente.
  • 13. Motores NoSQL ●Los tipos de motores NoSQL más importantes son: ●Tabulares (Ej. Cassandra, HBase) ●Orientadas a documentos (Ej. MongoDB) ●De clave-valor (Ej. Redis) ●Orientadas a grafos (Ej. Neo4J)
  • 15. Map – Shuffle – Reduce Map(k1, v1) => list(k2, v2) Reduce(k2, list(v2)) => list(v3) // Cuenta número de palabras // por documento function map(String name, String document) { for each word w in document: emit (w, 1) } function reduce(String word, Iterator partialCounts) { sum = 0 for each pc in partialCounts: sum += ParseInt(pc) emit (word, sum) }
  • 16. MongoDB Según Wikipedia en Español: ●MongoDB (de la palabra en inglés “humongous” que significa enorme) es un sistema de base de datos NoSQL orientado a documentos, desarrollado bajo el concepto de código abierto. ●MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema dinámico (MongoDB llama ese formato BSON) ●El código binario está disponible para los sistemas operativos Windows, Linux, OS X y Solaris.
  • 17. Características principales ●Consultas Ad hoc ●Consistencia eventual ●Indexación ●Replicación ●Balanceo de carga (con Sharding) ●Almacenamiento de archivos ●Agregación (MapReduce y Pipeline) ●Ejecución de JavaScript del lado del servidor
  • 19. Pros y Cons ●Pros: ● Schema-less ● Facilidad para escalar horizontalmente ● Costo ● Diferentes niveles de consistencia ●Cons: ● Cada documento es autodescriptivo y esto incrementa su tamaño ● Queries limitadas (Ej. no JOINs) ● No hay soporte transaccional – Consistencia eventual ● Implementación de MapReduce simple ● Documentación no siempre actualizada (*) Fuente original