SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Tendances (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
 

Similaire à MongoDB

Similaire à 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
 

Plus 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
 

Dernier

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
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 

Dernier (20)

Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.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
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptos
 
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
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.ppt
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Introduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.pptIntroduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.ppt
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
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
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdfFUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 

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