SlideShare una empresa de Scribd logo
1 de 65
Bd NoSQL
Documentos
PROFA. MERCY OSPINA
mercy.ospinat@gmail.com
Agenda
Modelo de datos
Operaciones
Técnicas usadas
Cuando usar
Caso de estudio
Modelo de datos
Un documento auto descrito que puede estar en
formato Json o XML
Un documento Json (los mas usados)
◦ Es un conjunto de clave:valor o arreglos de clave:valor
◦ Los documentos están almacenados por una clave
◦ El sistema entiende la estructura arbitraria de los documentos
◦ Da soporte a listas, apuntadores a documentos y documentos anidados
◦ Permite crear índices secundarios además de índices sobre la clave
Modelo de datos
4
Modelo de datos - Estructuras
Base de
datos
•Contenedor físico de
colecciones o
documentos
Colecciones
•Agrupaciones de
documentos, no
todas las BD lo
tienen
Documento •Unidad básica de
datos en Json
Valores
•Atómicos
•Listas o arreglos
•Adjuntos (pdf, jpg, etc)
5
Caso de Estudio – Tipos de datos
6
Los definidos por Json
•String - Cadenas de caracteres.
•Integer - Números enteros.
•Double - Números con decimales.
•Boolean - Booleanos verdaderos o falsos.
•Date - Fechas.
•Timestamp - Marcas de tiempo.
•Null - Valor nulo.
•Array - Arreglos de otros tipos de dato.
•Object - Otros documentos embebidos.
•ObjectID - Identificadores únicos creados por MongoDB al
crear documentos sin especificar valores para el campo _id.
•Data Binaria - Punteros a archivos binarios.
•Javascript - código y funciones Javascript
Caso de Estudio – Patrones de
modelado
7
Existen 2 patrones principales para establecer la
estructura que tendrán los documentos para
relacionar datos que en una base de datos relacional
estarían en diferentes tablas.
Embeber
◦ Este patrón se enfoca en incrustar documentos uno dentro
de otro con la finalidad de hacerlo parte del mismo registro
y que la relación sea directa.
Referenciar
◦ Este patrón busca imitar el comportamiento de las claves
foráneas para relacionar datos que deben estar en
colecciones diferentes.
Caso de Estudio – Patrones de
modelado
8
Embeber
Persona= {
Nombre: 'Jonathan',
Apellido: 'Wiesel',
Genero: 'M',
Documentos: {
Pasaporte: 'D123456V7',
Licencia: '34567651-2342',
seguro_social: 'V-543523452' }
}
Relaciones 1:1
Caso de Estudio – Patrones de
modelado
9
Persona= {
Nombre: 'Jonathan',
Apellido: 'Wiesel',
Genero: 'M',
Direcciones:
[{ país: 'Venezuela',
estado: 'Distrito capital‘,
ciudad: 'Caracas',
urbanizacion: 'La Florida',
avenida: ...,
edificio: ...,
piso: ...,
apartamento: ... },
{ país: 'Estados Unidos',
estado: 'Florida‘,
ciudad: 'Miami‘,
urbanizacion: 'Aventura',
avenida: ...,
edificio: ..., piso: ...,
apartamento: ... }]
}
Relaciones 1:n Embeber
Caso de Estudio – Patrones de
modelado
10
Direccion1:
{ _id: 1
país: 'Venezuela',
estado: 'Distrito capital‘,
ciudad: 'Caracas',
urbanizacion: 'La Florida',
avenida: ...,
edificio: ...,
piso: ...,
apartamento: ... }
Direccion2:
{ _id: 2,
país: 'Estados Unidos',
estado: 'Florida‘,
ciudad: 'Miami‘,
urbanizacion: 'Aventura',
avenida: ...,
edificio: ..., piso: ...,
apartamento: ... }
Relaciones 1:n
Persona= {
Nombre: 'Jonathan',
Apellido: 'Wiesel',
Genero: 'M',
Direcciones: [1,2] }
Referenciar
Caso de Estudio – Patrones de
modelado
11
Relaciones n:m
Caso de Estudio – Patrones de
modelado
12
Direccion1:
{ _id: 1
país: 'Venezuela',
estado: 'Distrito capital‘,
ciudad: 'Caracas',
urbanizacion: 'La Florida',
avenida: ...,
edificio: ...,
piso: ...,
apartamento: ...
personas: [100,101] }
Direccion2:
{ _id: 2,
país: 'Estados Unidos',
estado: 'Florida‘,
ciudad: 'Miami‘,
urbanizacion: 'Aventura',
avenida: ...,
edificio: ..., piso: ...,
apartamento: ...
personas [100]}
Relaciones n:m
Persona1= {
_id 100
Nombre: 'Jonathan',
Apellido: 'Wiesel',
Genero: 'M',
Direcciones: [1,2] }
Persona2= {
_id 101
Nombre: ‘Carlos',
Apellido: ‘Cerqueira',
Genero: 'M',
Direcciones: [1] }
Caso de Estudio – Patrones de
modelado
13
Relaciones n:m
Atributo propio
Caso de Estudio – Patrones de
modelado
14
Direccion1:
{ _id: 1
país: 'Venezuela',
estado: 'Distrito capital‘,
ciudad: 'Caracas',
urbanizacion: 'La Florida',
avenida: ...,
edificio: ...,
piso: ...,
apartamento: ...
personas: [100,101] }
Direccion2:
{ _id: 2,
país: 'Estados Unidos',
estado: 'Florida‘,
ciudad: 'Miami‘,
urbanizacion: 'Aventura',
avenida: ...,
edificio: ..., piso: ...,
apartamento: ...
personas [100]}
Relaciones n:mPersona1= {
_id 100
Nombre: 'Jonathan',
Apellido: 'Wiesel',
Genero: 'M',
direcciones : [{
direccion_id : 1,
viveAqui : true
},{
direccion_id : 2,
viveAqui : false
}]}
Persona2= {
_id 101
Nombre: ‘Carlos',
Apellido: ‘Cerqueira',
Genero: 'M',
direcciones : [{
direccion_id : 1,
viveAqui : true
}] }
Distribución de los datos
Sharding automático:
◦ Por rango de clave, con servidor de metadata que mantiene
la ubicación de los rangos
◦ Hashing consistente
Almacenamiento
Si cada nodo tiene un conjunto de claves aleatorias,
internamente puede almacenarse de distintas
maneras:
◦ Tabla hash
◦ arboles B+ (Tokyo Cabinet)
Tipos de registros
◦ <key, value>
◦ Tupla<key, v1,. ., vn>
Operaciones
CRUD
◦ Create: Crea un nuevo documento
◦ Read: Lee uno o mas documentos
◦ Update: Actualiza un documento nuevo
◦ Delete: Elimina uno o más documentos
REST
◦ GET: Retorna un documento con un id dado
◦ PUT: Crea un nuevo documento o una nueva versión
◦ DELETE: Marca un documento como borrado
Map - Reduce
17
Técnicas usadas - ejemplos
Problema MongoDB CouchDB
Topología Cluster (maestro esclavo) Anillo
Sharding
Particionamiento por rango,
particionamiento por hash y splitting
Hashing Consistente DHT
Control de concurrencia
Bloqueo compartido (S) para lectura
y Exclusivo (X) para escritura con
intentos de bloqueo (IS e IX)
MVCC y relojes de vector con
reconciliación durante lecturas
Manejo de fallas temporales
Servidor de configuración
Sloppy Quorum y hinted handoff
Manejo de fallas permanentes
Replica sets maestro esclavo con
elección de nuevo maestro cuando
se presentan fallas
Anti- entropía con árboles Merkle
para Consistencia de Replicas
Nodos salientes o entrantes Sharded Collection Balancing
Protocolo de membresía basado en
Gossip y detección de fallas.
Búsquedas
Árboles B+ para Índices por clave y
secundarios
Árboles B+ para Índices por clave y
secundarios
Caso de Estudio
19
Viene de la palabra en inglés “humongous” que significa
enorme
Su desarrollo empezó en octubre de 2007 por la
compañía de software 10gen, aunque su lanzamiento fue
en el 2009
Es de código abierto, con licencia GNU AGPL (para SW de
red)
Última versión estable 3.2.8 el 12 de Julio de 2016
Guarda estructuras de datos en documentos
tipo JSON con un esquema dinámico (MongoDB llama
ese formato BSON)
https://docs.mongodb.org
Caso de Estudio- Operaciones
CRUD
◦ Create
20
Caso de estudio - Operaciones
CRUD
◦ Update
◦ Delete
21
Caso de Estudio - Consultas
22
En MongoDB una consulta se dirige a una colección específica de
documentos .
Las consultas especifican criterios o condiciones , que identifican
los documentos que MongoDB vuelve a los clientes
Una consulta puede incluir una proyección que especifica los
campos de los documentos
Opcionalmente, se puede imponer límites o criterios de
ordenación a las consultas.
Caso de Estudio - Operadores
23
Selección
◦ Comparación
◦ Lógicos
◦ Elementos
◦ Otros
Proyección
https://docs.mongodb.org/manual/reference/operator/query/
Consultas – Operadores de
comparación
24
Operador Descripción
$eq Documentos que coinciden con los valores que son iguales a un valor especificado
$gt Documentos que coinciden con los valores que son mayores a un valor especificado
$gte Documentos que coinciden con los valores que son mayores o iguales a un valor
especificado
$lt Documentos que coinciden con los valores que son menores a un valor especificado
$lte Documentos que coinciden con los valores que son menores o iguales a un valor
especificado
$ne Documentos que coinciden con los valores que no son iguales a un valor especificado
$in Documentos que coinciden con alguno de los valores especificados en un arreglo
$nin Documentos que no coinciden con ninguno de los valores especificados en un arreglo
Consultas – Operadores lógicos
25
Operador Descripción
$or Une a las cláusulas con un OR lógico y devuelve todos los documentos que coinciden
con las condiciones de cualquiera de las cláusulas
$and Une a las cláusulas con un OR lógico y devuelve todos los documentos que coinciden
con las condiciones de ambas cláusulas
$not Invierte el efecto de una condición retornando los documentos que no cumplen con la
condición
$nor Une a las cláusulas con un NOR lógico y devuelve todos los documentos no cumplan
con ambas cláusulas.
Consultas – Operadores de
Elementos
26
Operador Descripción
$exists Coincide con los documentos que tienen o no el campo especificado, recibe el
parámetro true o false
db.records.find( { album: { $exists: true } } )
Documentos que tienen el campo álbum
db.records.find( { autor: { $exists: false } } )
Documentos que no contienen el campo autor
$type Selecciona documentos donde el field es de un tipo BSON específico.
{ field: { $type: <BSON type number> | <String alias> } }
Consultas – Operadores de
Proyección
27
Operador Descripción
$exists Coincide con los documentos que tienen o no el campo especificado, recibe el
parámetro true o false
db.records.find( { album: { $exists: true } } )
Documentos que tienen el campo álbum
db.records.find( { autor: { $exists: false } } )
Documentos que no contienen el campo autor
$type Selecciona documentos donde el field es de un tipo BSON específico.
{ field: { $type: <BSON type number> | <String alias> } }
Caso de Estudio - Consultas
28
Caso de estudio- Índices
Los índices en MongoDB son a nivel de colección y
son similares a los índices en otros sistemas de base
de datos
◦ Índices primarios para _id (clave primaria): se crean por
defecto
◦ Índices secundarios para atributos en el documento
◦ Un solo campo
◦ Múltiples campos
29
db.users.createIndex({ “score" : 1 })
Caso de estudio - Índices
Múltiples campos (Índices compuestos): hace
referencia a múltiples campos en una colección de
documentos
◦ db.events.createIndex( { "username" : 1, "date" : -1 } )
Este índice soporta las siguientes consultas
◦ db.events.find().sort( { username: 1, date: -1 } )
◦ db.events.find().sort( { username: -1, date: 1 } )
30
Caso de estudio Almacenamiento
Mongo tiene 3 motores de almacenamiento
◦ WiredTiger. Es el motor de almacenamiento por defecto
de MongoDB desde la versión 3.2. Provee control de
concurrencia a nivel de documento.
◦ MMAPv1 es el motor original de almacenamiento
MongoDB y es el motor de almacenamiento por defecto
para las versiones MongoDB antes 3.2. Se desempeña bien
en las cargas de trabajo con altos volúmenes de lectura y
escritura, así como actualizaciones en el lugar.
◦ El Motor de almacenamiento "In-Memory" solo está
disponible en MongoDB Enterprice. En lugar de almacenar
documentos en el disco, se les retiene en memoria el mayor
tiempo de latencia de datos posible.
31
Caso de Estudio – Arquitectura
32
mongod es el proceso demonio primario para el
sistema de MongoDB. Se ocupa de las solicitudes
de datos , gestiona el acceso de datos, y realiza
operaciones de gestión en background.
Mongos para " MongoDB Shard", es un servicio
de enrutamiento para las configuraciones de
fragmento MongoDB que procesa las consultas
de la capa de aplicación , y determina la ubicación
de los datos en el clúster fragmentado, con el fin
de completar estas operaciones.
Config Server Mongos utiliza tres servidores de
configuración para almacenar los metadatos del
cluster, y los tres deben estar disponibles para
apoyar cambios que incluyen divisiones de chunks
y migraciones . Si uno de los servidores de
configuración no está disponible debe
reemplazarlo a la brevedad posible .
Caso de estudio - Replicación
Un conjunto de replica
◦ Es un grupo de instancias de mongod que mantiene el
mismo conjunto de datos, donde el primario recibe las
actualizaciones de los clientes quien las replica a los
secudarios
33
Caso de estudio - Replicación
Fallo del primario
◦ Automaticamente se elige como primario a uno de los
secundarios
34
Caso de estudio - Replicación
Si el nodo se recupera
◦ Pasa a ser secundario
35
Caso de estudio - Sharding
Divide el conjunto de datos y distribuye los datos a
través de múltiples servidores o fragmentos .
◦ Cada fragmento es una base de datos independiente ,
◦ y colectivamente , los fragmentos forman una sola base de
datos lógica.
36
Caso de estudio - Sharding
37
Escalabilidad para escribir
Key Range
0..100
mongod
mongod mongod
Key Range
0..50
Key Range
51..100
Caso de estudio - Sharding
38
mongod mongod mongod mongod
Key Range
0..25
Key Range
26..50
Key Range
51..75
Key Range
76.. 100
Escalabilidad para escribir
Caso de estudio - Sharding
39
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Key Range
0..25
Key Range
26..50
Key Range
51..75
Key Range
76.. 100
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Key Range
0..25
Key Range
26..50
Key Range
51..75
Key Range
76.. 100
MongoS MongoS MongoS
Aplicación
Caso de estudio - Sharding
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Key Range
0..25
Key Range
26..50
Key Range
51..75
Key Range
76.. 100
MongoS MongoS MongoS
Config
Config
Config
Aplicación
Caso de estudio - Sharding
Caso de estudio - Splitting
42
Splitting o división es un proceso en background que
asegura que los datos almacenados no excedan un
tamaño específico Mongo divide los datos en trozos
(chunks). Cuando un trozo crece más allá de un
tamaño especificado, MongoDB lo divide por la
mitad y distribuye los trozos en un servidor de
fragmentos.
Caso de estudio - Splitting
43
GridFS: Especificación para almacenar y recuperar
archivos (documentos) que excedan el tamaño límite
de documento Bson de 16MB
◦ Divide el archivo en pedazos o chunks, por defecto de 255
KB
◦ Usa dos coleccciones para almacenar los datos
◦ En una se almacenan los chunks
◦ En otra se almacena la metadata
◦ https://docs.mongodb.org/manual/core/gridfs/
Caso de estudio - Seguridad
44
MongoDB provee control de acceso basado en
usuario o en Roles
db.createUser(
{
user: "reportsUser",
pwd: "12345678",
roles: [
{ role: "read", db: "reporting" },
{ role: "read", db: "products" },
{ role: "read", db: "sales" },
{ role: "readWrite", db: "accounts" }
]
}
)
db.createRole(
{
role: "mongostatRole",
privileges: [
{ resource: { cluster: true },
actions: [ "serverStatus" ] }
],
roles: []
}
)
Caso de estudio - Seguridad
45
Para asignar un Rol a un usuario
db.grantRolesToUser(
"reportsUser",
[
{ role: "readWrite", db: "products" } ,
{ role: "readAnyDatabase", db:"admin" }
]
)
Tambien permite el uso de un proxy a través del protocolo
LDAP
Caso de estudio – Quienes usan
46
Caso de estudio – Consultas
avanzadas
Consultas con arreglo de documentos:
◦ La siguiente operación devuelve documentos de la
colección bios donde un arreglo premios contiene un
elemento de documento incrustado que contiene el campo
premio igual al "Premio Turing" y el campo de año mayor a
1980:
db.bios.find(
{ awards: {
$elemMatch: {
award: "Turing Award",
year: { $gt: 1980 }
}
}
}
)
Caso de estudio – Consultas
avanzadas
Consultas con documentos embebidos
◦ La siguiente operación devuelve documentos de la
colección bios donde el documento embebido name es
exactamente { first: "Yukihiro", last: "Matsumoto" }
db.bios.find(
{
name: {
first: "Yukihiro",
last: "Matsumoto"
}
}
)
db.bios.find(
{
"name.first": "Yukihiro",
"name.last": "Matsumoto"
}
)
Caso de estudio – Consultas
avanzadas
Cursores:
◦ El método db.collection.find() consulta una colección y
retorna un cursor a los documentos resultantes
◦ Para acceder a los documentos se necesita iterar el cursor
var myCursor = db.inventory.find();
var myFirstDocument = myCursor.hasNext() ? myCursor.next() :
null;
myCursor.objsLeftInBatch();
http://docs.mongodb.org/manual/core/cursors/
Caso de estudio – Consultas
avanzadas
Agregación: operaciones que procesan registros de
datos y retornan resultados calculados
Posee tres formas de agregación
◦ Pipeline de agregación: framework para llevar a cabo
tareas de agregación. Modelado en el concepto de pipelines
de procesamiento de datos
◦ Map-Reduce: Operaciones con dos fasos Map y Reduce. Usa
funciones de Javascript
◦ Operaciones de agregación de propósito simple: comandos
de base de datos de propósito especial
Caso de estudio – Consultas
avanzadas
Pipeline de agregación: Es una serie de transformación de
Documentos
◦ Se ejecuta en estapas (stages)
◦ La entrada original es una colección
◦ Las salidas son documentos, cursores o colecciones
◦ Escrito en C++
◦ Trabaja bien con Shardings
http://www.slideshare.net/mongodb/aggregation-framework-36715147
$match $project $group $sort
Pipeline de agregación – algunas
etapas
 $match: fitra documentos
 $project: agrega o elimina
columnas en el documento
 $group: aplica operaciones
de agrupación a cada grupo
de documentos ($sum,
$avg, $min, $max, etc)
 $unwind: convierte
documentos en una matriz
con ciertas características
 $sort: ordena los documentos
 $limit /$skip: página los
documentos
 $geoNear: ordena los
documentos por proximidad
geográfica
 $lookup: realiza un left outer
join con otra colección en la
misma base de datos
http://www.slideshare.net/mongodb/aggregation-framework-36715147
Pipeline de agregación - etapas
Ejemplo:
http://www.slideshare.net/mongodb/aggregation-framework-36715147
Pipeline de agregación - etapas
Ejemplo lookup:
http://www.slideshare.net/mongodb/aggregation-framework-36715147
Pipeline de agregación – Ejemplo
lookup
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#pipe._S_lookup
Pipeline de agregación – Ejemplo
lookup
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#pipe._S_lookup
Caso de estudio – Consultas
avanzadas
◦ Map-Reduce:
Map: procesa
cada documento
y emite uno o
dos objetos y
Reduce: combina
la salida de la
operación Map.
Caso de estudio – Consultas
avanzadas
Operaciones de agregación de propósito simple:
comandos de base de datos de propósito especial
◦ Count: cuenta los elementos de una colección que cumplen
la condición de la consulta
◦ db.collection.count(consulta)
◦ db.collection.find(consulta).count()
◦ Disctint: Encuentra los valores diferentes de un campo
◦ db.collection.distinct(campo, consulta)
◦ Group
Caso de estudio – Consultas
avanzadas
db.collection.group({ key, reduce, initial [, keyf] [, cond] [, finalize] })
key documento
Campo o campos a agrupar. Retorna una “key object” para usar como la
clave de agrupamiento.
reduce función
Una función de agregación que opera sobre los documentos durante la
operación de agrupamiento. Puede retornar una suma o un conteo. Toma
dos argumentos: el actual documento y un documento resultado de la
agregación para el grupo.
initial Documento documento resultado de la agregación inicial
keyf Función
Opcional. Alternativa al campo clave. Especifica una funcion que crea un
“key object” para usar como clave de agrupamiento. Use keyf en lugar
de key para agrupar por campos calculados.
cond Documento
Criterios de selección para determinar qué documentos de la colección
procesar. Si se omite, se procesarán todos los documentos de la colección
para la operación del grupo.
finalize función
Opcional. Una función que ejecuta cada elemento en el conjunto de
resultados antes de que db.collection.group () devuelve el valor final. Esta
función puede o bien modificar el documento resultado o sustituir el
documento resultado como un todo.
Caso de estudio – Consultas
avanzadas - Explain
◦ Retorna informacion del plan de consulta para las
siguientes operaciones:
◦ aggregate(); count(); find(); group(); remove(); and update() methods.
◦ db.collection.explain().<method(...)>
◦ Presenta el plan de consulta (query plan) como un árbol de
etapas.
◦ Cada etapa pasa sus resultados (es decir, documentos o claves de índice) al
nodo padre.
◦ Los nodos hoja acceden a la colección o los índices.
◦ Los nodos internos manipulan los documentos o las claves de índice que se
derivan de los nodos secundarios.
◦ El nodo raíz es la etapa final de la que MongoDB deriva del conjunto de
resultados
Caso de estudio – Consultas
avanzadas - Explain
◦ Algunas de las operaciones del plan son:
◦ COLLSCAN Scan de una coleccion
◦ IXSCAN para búsqueda en el índice
◦ FETCH para recuperación de documentos
◦ SHARD_MERGE para mezclar results de fragmentos
◦ El explain tiene los siguientes parámetros opcionales
(modos de verbosity)
◦ queryPlanner: es el modo por defecto, retorna solamente el plan de consulta
◦ executionStats: muestra el plan de consulta e información de ejecución
◦ allPlansExecution: muestra todos los posibles planes de ejecución.
Caso de estudio – Consultas
avanzadas - Explain
Ejemplos
◦ db.products.explain().count( { quantity: { $gt: 50 } } )
◦ Retorna solo el plan de consulta
◦ db.products.explain("executionStats").find(
{ quantity: { $gt: 50 }, category: "apparel" }
)
◦ Retorna el plan de consulta y información de ejecución
◦ db.products.explain("allPlansExecution").update(
{ quantity: { $lt: 1000}, category: "apparel" },
{ $set: { reorder: true } }
)
◦ No modifica los datos pero retorna todos los posibles planes de ejecución
Caso de estudio – respaldos
Respaldo por copia de datos subyacentes:
◦ Se trata de una copia de snapshot en un punto del tiempo, sin
embargo no depende de mongo sino del sistema operativo.
mongodump - mongorestore
◦ mongodump: lee datos de una base de datos y crea archivos
Bson de alta fidelidad
◦ mogorestore: restaura una base de datos desde un archivo Bson.
mongoimport – mongoexport
◦ mongoexport es una utilidad que produce una exportación Json
o CSV de los datos almacenados en una instancia de MongoDB.
◦ mongoimport importa el contenido de un archivo Json o CSV
creado por mongoexport u otra herramienta de terceros.
Caso de estudio – Usos
Cualquier aplicación que necesite almacenar datos
semi estructurados
Algunos casos de uso
◦ Almacenamiento y registro de eventos
◦ Manejo de documentos y contenido
◦ Comercio Electrónico
◦ Alto volúmenes de lectura
◦ Aplicaciones móviles
◦ Manejo de contenido
◦ Almacenamiento de comentario
Próxima clase
BD Familia de columnas:
◦ Modelo de datos
◦ Operaciones
◦ Técnicas usadas
◦ Caso de estudio

Más contenido relacionado

La actualidad más candente

Bases de données NoSQL
Bases de données NoSQLBases de données NoSQL
Bases de données NoSQLSamy Dindane
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesAndrés Londoño
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databasesJames Serra
 
An Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBLee Theobald
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamTelecomValley
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph DatabasesMax De Marzi
 
Análisis de Datos con MongoDB
Análisis de Datos con MongoDBAnálisis de Datos con MongoDB
Análisis de Datos con MongoDBAlejandro Mancilla
 
An Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDBAn Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDBMongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBNodeXperts
 
A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)
A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)
A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)Emil Eifrem
 
Introduction to MongoDB.pptx
Introduction to MongoDB.pptxIntroduction to MongoDB.pptx
Introduction to MongoDB.pptxSurya937648
 

La actualidad más candente (20)

Bases de données NoSQL
Bases de données NoSQLBases de données NoSQL
Bases de données NoSQL
 
introduction à MongoDB
introduction à MongoDBintroduction à MongoDB
introduction à MongoDB
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Key-Value NoSQL Database
Key-Value NoSQL DatabaseKey-Value NoSQL Database
Key-Value NoSQL Database
 
MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptx
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
 
Arango DB
Arango DBArango DB
Arango DB
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
MongoDB 101
MongoDB 101MongoDB 101
MongoDB 101
 
An Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDB
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler Softeam
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph Databases
 
Análisis de Datos con MongoDB
Análisis de Datos con MongoDBAnálisis de Datos con MongoDB
Análisis de Datos con MongoDB
 
noSQL
noSQLnoSQL
noSQL
 
An Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDBAn Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)
A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)
A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009)
 
Introduction to MongoDB.pptx
Introduction to MongoDB.pptxIntroduction to MongoDB.pptx
Introduction to MongoDB.pptx
 

Destacado

Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrolloJuan Ladetto
 
Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQLCésar Rodas
 
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 NoSQLJavier Guillot Jiménez
 
2009 Beac Annual Meeting
2009 Beac Annual Meeting2009 Beac Annual Meeting
2009 Beac Annual Meetingguest13fdf9
 
описание игры акции
описание игры акцииописание игры акции
описание игры акцииmalyugin
 
LXE's new VX8 Kärv & VX9 Förj
LXE's new VX8 Kärv & VX9 FörjLXE's new VX8 Kärv & VX9 Förj
LXE's new VX8 Kärv & VX9 FörjLXE
 
Εκπαιδευτικό Σύστημα
Εκπαιδευτικό ΣύστημαΕκπαιδευτικό Σύστημα
Εκπαιδευτικό ΣύστημαKESYPSERRON
 
All S Ta R Cardinals
All S Ta R CardinalsAll S Ta R Cardinals
All S Ta R CardinalsMuzzell
 

Destacado (20)

Bd nosql clave valor
Bd nosql clave valorBd nosql clave valor
Bd nosql clave valor
 
Bd nosql tecnicas III
Bd nosql tecnicas IIIBd nosql tecnicas III
Bd nosql tecnicas III
 
Bd no sql conceptos basicos
Bd no sql conceptos basicosBd no sql conceptos basicos
Bd no sql conceptos basicos
 
Bd no sql tecnicas2
Bd no sql tecnicas2Bd no sql tecnicas2
Bd no sql tecnicas2
 
Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrollo
 
Bd no sqlcb2
Bd no sqlcb2Bd no sqlcb2
Bd no sqlcb2
 
Oopphp5
Oopphp5Oopphp5
Oopphp5
 
NoSql y MongoDB
NoSql y MongoDBNoSql y MongoDB
NoSql y MongoDB
 
Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQL
 
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
 
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
 
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
 
2009 Beac Annual Meeting
2009 Beac Annual Meeting2009 Beac Annual Meeting
2009 Beac Annual Meeting
 
описание игры акции
описание игры акцииописание игры акции
описание игры акции
 
Et你成功了 Slide
Et你成功了 SlideEt你成功了 Slide
Et你成功了 Slide
 
LXE's new VX8 Kärv & VX9 Förj
LXE's new VX8 Kärv & VX9 FörjLXE's new VX8 Kärv & VX9 Förj
LXE's new VX8 Kärv & VX9 Förj
 
Amazon
AmazonAmazon
Amazon
 
Blood Drive
Blood DriveBlood Drive
Blood Drive
 
Εκπαιδευτικό Σύστημα
Εκπαιδευτικό ΣύστημαΕκπαιδευτικό Σύστημα
Εκπαιδευτικό Σύστημα
 
All S Ta R Cardinals
All S Ta R CardinalsAll S Ta R Cardinals
All S Ta R Cardinals
 

Similar a NoSQL Database Documents

Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...Daniel Gomez Jaramillo
 
6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)Laura Folgado Galache
 
Jean piere sarumo mongodb
Jean piere sarumo mongodbJean piere sarumo mongodb
Jean piere sarumo mongodbJean Sarumo
 
No SQL MSATS MongoDB | SolidQ Summit 2014
No SQL MSATS MongoDB | SolidQ Summit 2014No SQL MSATS MongoDB | SolidQ Summit 2014
No SQL MSATS MongoDB | SolidQ Summit 2014SolidQ
 
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRAPRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRAHeriberto Razo Bocanegra
 

Similar a NoSQL Database Documents (20)

Semana 3 MONGODB conceptos básicos NOSQL
Semana 3   MONGODB conceptos básicos NOSQLSemana 3   MONGODB conceptos básicos NOSQL
Semana 3 MONGODB conceptos básicos NOSQL
 
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
 
NoSQL - MongoDB
NoSQL - MongoDBNoSQL - MongoDB
NoSQL - MongoDB
 
Bd oo presentacion
Bd oo presentacionBd oo presentacion
Bd oo presentacion
 
Presentación Base de Datos Slideshare
Presentación Base de Datos Slideshare Presentación Base de Datos Slideshare
Presentación Base de Datos Slideshare
 
Visualfoxpro
VisualfoxproVisualfoxpro
Visualfoxpro
 
6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)
 
Curso integración Web Semántica
Curso integración Web Semántica Curso integración Web Semántica
Curso integración Web Semántica
 
No-SQL, Azure Table Storage y MongoDB
No-SQL, Azure Table Storage y MongoDBNo-SQL, Azure Table Storage y MongoDB
No-SQL, Azure Table Storage y MongoDB
 
Jean piere sarumo mongodb
Jean piere sarumo mongodbJean piere sarumo mongodb
Jean piere sarumo mongodb
 
16 Alternativas XML
16 Alternativas XML16 Alternativas XML
16 Alternativas XML
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bdo r en oracle
Bdo r en oracleBdo r en oracle
Bdo r en oracle
 
No SQL MSATS MongoDB | SolidQ Summit 2014
No SQL MSATS MongoDB | SolidQ Summit 2014No SQL MSATS MongoDB | SolidQ Summit 2014
No SQL MSATS MongoDB | SolidQ Summit 2014
 
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRAPRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
 
Lotus script
Lotus scriptLotus script
Lotus script
 
S3-PD1.pptx
S3-PD1.pptxS3-PD1.pptx
S3-PD1.pptx
 
data_collection-es.pptx
data_collection-es.pptxdata_collection-es.pptx
data_collection-es.pptx
 
DBIx::Class
DBIx::ClassDBIx::Class
DBIx::Class
 
S3 - ADO.NET
S3 - ADO.NETS3 - ADO.NET
S3 - ADO.NET
 

Más de Escuela de Computación UCV (20)

Recuperacion ABD UCV
Recuperacion ABD UCVRecuperacion ABD UCV
Recuperacion ABD UCV
 
Concurrencia 2 ABD UCV
Concurrencia 2 ABD UCVConcurrencia 2 ABD UCV
Concurrencia 2 ABD UCV
 
Concurrencia 1 ABD UCV
Concurrencia 1 ABD UCVConcurrencia 1 ABD UCV
Concurrencia 1 ABD UCV
 
Integridad de datos
Integridad de datosIntegridad de datos
Integridad de datos
 
Seguridad datos i
Seguridad datos i Seguridad datos i
Seguridad datos i
 
Seguridad datos ii vii
Seguridad datos ii viiSeguridad datos ii vii
Seguridad datos ii vii
 
Abd manejo memoria III
Abd manejo memoria IIIAbd manejo memoria III
Abd manejo memoria III
 
Abd manejo memoria II
Abd manejo memoria IIAbd manejo memoria II
Abd manejo memoria II
 
Abd manejo memoria Parte I
Abd manejo memoria Parte IAbd manejo memoria Parte I
Abd manejo memoria Parte I
 
Bd no sql tecnicas
Bd no sql tecnicasBd no sql tecnicas
Bd no sql tecnicas
 
Abd procesamiento consultas (parte 3)
Abd procesamiento consultas (parte 3)Abd procesamiento consultas (parte 3)
Abd procesamiento consultas (parte 3)
 
Abd procesamiento consultas (parte2)
Abd procesamiento consultas (parte2)Abd procesamiento consultas (parte2)
Abd procesamiento consultas (parte2)
 
Abd procesamiento consultas (parte1)
Abd procesamiento consultas (parte1)Abd procesamiento consultas (parte1)
Abd procesamiento consultas (parte1)
 
Abd tema0y1
Abd tema0y1Abd tema0y1
Abd tema0y1
 
Abd tema1 parteii
Abd tema1 parteiiAbd tema1 parteii
Abd tema1 parteii
 
Abd procesamiento consultas
Abd procesamiento consultasAbd procesamiento consultas
Abd procesamiento consultas
 
Abd seguridad
Abd seguridadAbd seguridad
Abd seguridad
 
Abd integridad
Abd integridadAbd integridad
Abd integridad
 
Abd tema4 dd
Abd tema4 ddAbd tema4 dd
Abd tema4 dd
 
Abd tema2
Abd tema2Abd tema2
Abd tema2
 

Último

Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 

Último (20)

Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 

NoSQL Database Documents

  • 1. Bd NoSQL Documentos PROFA. MERCY OSPINA mercy.ospinat@gmail.com
  • 2. Agenda Modelo de datos Operaciones Técnicas usadas Cuando usar Caso de estudio
  • 3. Modelo de datos Un documento auto descrito que puede estar en formato Json o XML Un documento Json (los mas usados) ◦ Es un conjunto de clave:valor o arreglos de clave:valor ◦ Los documentos están almacenados por una clave ◦ El sistema entiende la estructura arbitraria de los documentos ◦ Da soporte a listas, apuntadores a documentos y documentos anidados ◦ Permite crear índices secundarios además de índices sobre la clave
  • 5. Modelo de datos - Estructuras Base de datos •Contenedor físico de colecciones o documentos Colecciones •Agrupaciones de documentos, no todas las BD lo tienen Documento •Unidad básica de datos en Json Valores •Atómicos •Listas o arreglos •Adjuntos (pdf, jpg, etc) 5
  • 6. Caso de Estudio – Tipos de datos 6 Los definidos por Json •String - Cadenas de caracteres. •Integer - Números enteros. •Double - Números con decimales. •Boolean - Booleanos verdaderos o falsos. •Date - Fechas. •Timestamp - Marcas de tiempo. •Null - Valor nulo. •Array - Arreglos de otros tipos de dato. •Object - Otros documentos embebidos. •ObjectID - Identificadores únicos creados por MongoDB al crear documentos sin especificar valores para el campo _id. •Data Binaria - Punteros a archivos binarios. •Javascript - código y funciones Javascript
  • 7. Caso de Estudio – Patrones de modelado 7 Existen 2 patrones principales para establecer la estructura que tendrán los documentos para relacionar datos que en una base de datos relacional estarían en diferentes tablas. Embeber ◦ Este patrón se enfoca en incrustar documentos uno dentro de otro con la finalidad de hacerlo parte del mismo registro y que la relación sea directa. Referenciar ◦ Este patrón busca imitar el comportamiento de las claves foráneas para relacionar datos que deben estar en colecciones diferentes.
  • 8. Caso de Estudio – Patrones de modelado 8 Embeber Persona= { Nombre: 'Jonathan', Apellido: 'Wiesel', Genero: 'M', Documentos: { Pasaporte: 'D123456V7', Licencia: '34567651-2342', seguro_social: 'V-543523452' } } Relaciones 1:1
  • 9. Caso de Estudio – Patrones de modelado 9 Persona= { Nombre: 'Jonathan', Apellido: 'Wiesel', Genero: 'M', Direcciones: [{ país: 'Venezuela', estado: 'Distrito capital‘, ciudad: 'Caracas', urbanizacion: 'La Florida', avenida: ..., edificio: ..., piso: ..., apartamento: ... }, { país: 'Estados Unidos', estado: 'Florida‘, ciudad: 'Miami‘, urbanizacion: 'Aventura', avenida: ..., edificio: ..., piso: ..., apartamento: ... }] } Relaciones 1:n Embeber
  • 10. Caso de Estudio – Patrones de modelado 10 Direccion1: { _id: 1 país: 'Venezuela', estado: 'Distrito capital‘, ciudad: 'Caracas', urbanizacion: 'La Florida', avenida: ..., edificio: ..., piso: ..., apartamento: ... } Direccion2: { _id: 2, país: 'Estados Unidos', estado: 'Florida‘, ciudad: 'Miami‘, urbanizacion: 'Aventura', avenida: ..., edificio: ..., piso: ..., apartamento: ... } Relaciones 1:n Persona= { Nombre: 'Jonathan', Apellido: 'Wiesel', Genero: 'M', Direcciones: [1,2] } Referenciar
  • 11. Caso de Estudio – Patrones de modelado 11 Relaciones n:m
  • 12. Caso de Estudio – Patrones de modelado 12 Direccion1: { _id: 1 país: 'Venezuela', estado: 'Distrito capital‘, ciudad: 'Caracas', urbanizacion: 'La Florida', avenida: ..., edificio: ..., piso: ..., apartamento: ... personas: [100,101] } Direccion2: { _id: 2, país: 'Estados Unidos', estado: 'Florida‘, ciudad: 'Miami‘, urbanizacion: 'Aventura', avenida: ..., edificio: ..., piso: ..., apartamento: ... personas [100]} Relaciones n:m Persona1= { _id 100 Nombre: 'Jonathan', Apellido: 'Wiesel', Genero: 'M', Direcciones: [1,2] } Persona2= { _id 101 Nombre: ‘Carlos', Apellido: ‘Cerqueira', Genero: 'M', Direcciones: [1] }
  • 13. Caso de Estudio – Patrones de modelado 13 Relaciones n:m Atributo propio
  • 14. Caso de Estudio – Patrones de modelado 14 Direccion1: { _id: 1 país: 'Venezuela', estado: 'Distrito capital‘, ciudad: 'Caracas', urbanizacion: 'La Florida', avenida: ..., edificio: ..., piso: ..., apartamento: ... personas: [100,101] } Direccion2: { _id: 2, país: 'Estados Unidos', estado: 'Florida‘, ciudad: 'Miami‘, urbanizacion: 'Aventura', avenida: ..., edificio: ..., piso: ..., apartamento: ... personas [100]} Relaciones n:mPersona1= { _id 100 Nombre: 'Jonathan', Apellido: 'Wiesel', Genero: 'M', direcciones : [{ direccion_id : 1, viveAqui : true },{ direccion_id : 2, viveAqui : false }]} Persona2= { _id 101 Nombre: ‘Carlos', Apellido: ‘Cerqueira', Genero: 'M', direcciones : [{ direccion_id : 1, viveAqui : true }] }
  • 15. Distribución de los datos Sharding automático: ◦ Por rango de clave, con servidor de metadata que mantiene la ubicación de los rangos ◦ Hashing consistente
  • 16. Almacenamiento Si cada nodo tiene un conjunto de claves aleatorias, internamente puede almacenarse de distintas maneras: ◦ Tabla hash ◦ arboles B+ (Tokyo Cabinet) Tipos de registros ◦ <key, value> ◦ Tupla<key, v1,. ., vn>
  • 17. Operaciones CRUD ◦ Create: Crea un nuevo documento ◦ Read: Lee uno o mas documentos ◦ Update: Actualiza un documento nuevo ◦ Delete: Elimina uno o más documentos REST ◦ GET: Retorna un documento con un id dado ◦ PUT: Crea un nuevo documento o una nueva versión ◦ DELETE: Marca un documento como borrado Map - Reduce 17
  • 18. Técnicas usadas - ejemplos Problema MongoDB CouchDB Topología Cluster (maestro esclavo) Anillo Sharding Particionamiento por rango, particionamiento por hash y splitting Hashing Consistente DHT Control de concurrencia Bloqueo compartido (S) para lectura y Exclusivo (X) para escritura con intentos de bloqueo (IS e IX) MVCC y relojes de vector con reconciliación durante lecturas Manejo de fallas temporales Servidor de configuración Sloppy Quorum y hinted handoff Manejo de fallas permanentes Replica sets maestro esclavo con elección de nuevo maestro cuando se presentan fallas Anti- entropía con árboles Merkle para Consistencia de Replicas Nodos salientes o entrantes Sharded Collection Balancing Protocolo de membresía basado en Gossip y detección de fallas. Búsquedas Árboles B+ para Índices por clave y secundarios Árboles B+ para Índices por clave y secundarios
  • 19. Caso de Estudio 19 Viene de la palabra en inglés “humongous” que significa enorme Su desarrollo empezó en octubre de 2007 por la compañía de software 10gen, aunque su lanzamiento fue en el 2009 Es de código abierto, con licencia GNU AGPL (para SW de red) Última versión estable 3.2.8 el 12 de Julio de 2016 Guarda estructuras de datos en documentos tipo JSON con un esquema dinámico (MongoDB llama ese formato BSON) https://docs.mongodb.org
  • 20. Caso de Estudio- Operaciones CRUD ◦ Create 20
  • 21. Caso de estudio - Operaciones CRUD ◦ Update ◦ Delete 21
  • 22. Caso de Estudio - Consultas 22 En MongoDB una consulta se dirige a una colección específica de documentos . Las consultas especifican criterios o condiciones , que identifican los documentos que MongoDB vuelve a los clientes Una consulta puede incluir una proyección que especifica los campos de los documentos Opcionalmente, se puede imponer límites o criterios de ordenación a las consultas.
  • 23. Caso de Estudio - Operadores 23 Selección ◦ Comparación ◦ Lógicos ◦ Elementos ◦ Otros Proyección https://docs.mongodb.org/manual/reference/operator/query/
  • 24. Consultas – Operadores de comparación 24 Operador Descripción $eq Documentos que coinciden con los valores que son iguales a un valor especificado $gt Documentos que coinciden con los valores que son mayores a un valor especificado $gte Documentos que coinciden con los valores que son mayores o iguales a un valor especificado $lt Documentos que coinciden con los valores que son menores a un valor especificado $lte Documentos que coinciden con los valores que son menores o iguales a un valor especificado $ne Documentos que coinciden con los valores que no son iguales a un valor especificado $in Documentos que coinciden con alguno de los valores especificados en un arreglo $nin Documentos que no coinciden con ninguno de los valores especificados en un arreglo
  • 25. Consultas – Operadores lógicos 25 Operador Descripción $or Une a las cláusulas con un OR lógico y devuelve todos los documentos que coinciden con las condiciones de cualquiera de las cláusulas $and Une a las cláusulas con un OR lógico y devuelve todos los documentos que coinciden con las condiciones de ambas cláusulas $not Invierte el efecto de una condición retornando los documentos que no cumplen con la condición $nor Une a las cláusulas con un NOR lógico y devuelve todos los documentos no cumplan con ambas cláusulas.
  • 26. Consultas – Operadores de Elementos 26 Operador Descripción $exists Coincide con los documentos que tienen o no el campo especificado, recibe el parámetro true o false db.records.find( { album: { $exists: true } } ) Documentos que tienen el campo álbum db.records.find( { autor: { $exists: false } } ) Documentos que no contienen el campo autor $type Selecciona documentos donde el field es de un tipo BSON específico. { field: { $type: <BSON type number> | <String alias> } }
  • 27. Consultas – Operadores de Proyección 27 Operador Descripción $exists Coincide con los documentos que tienen o no el campo especificado, recibe el parámetro true o false db.records.find( { album: { $exists: true } } ) Documentos que tienen el campo álbum db.records.find( { autor: { $exists: false } } ) Documentos que no contienen el campo autor $type Selecciona documentos donde el field es de un tipo BSON específico. { field: { $type: <BSON type number> | <String alias> } }
  • 28. Caso de Estudio - Consultas 28
  • 29. Caso de estudio- Índices Los índices en MongoDB son a nivel de colección y son similares a los índices en otros sistemas de base de datos ◦ Índices primarios para _id (clave primaria): se crean por defecto ◦ Índices secundarios para atributos en el documento ◦ Un solo campo ◦ Múltiples campos 29 db.users.createIndex({ “score" : 1 })
  • 30. Caso de estudio - Índices Múltiples campos (Índices compuestos): hace referencia a múltiples campos en una colección de documentos ◦ db.events.createIndex( { "username" : 1, "date" : -1 } ) Este índice soporta las siguientes consultas ◦ db.events.find().sort( { username: 1, date: -1 } ) ◦ db.events.find().sort( { username: -1, date: 1 } ) 30
  • 31. Caso de estudio Almacenamiento Mongo tiene 3 motores de almacenamiento ◦ WiredTiger. Es el motor de almacenamiento por defecto de MongoDB desde la versión 3.2. Provee control de concurrencia a nivel de documento. ◦ MMAPv1 es el motor original de almacenamiento MongoDB y es el motor de almacenamiento por defecto para las versiones MongoDB antes 3.2. Se desempeña bien en las cargas de trabajo con altos volúmenes de lectura y escritura, así como actualizaciones en el lugar. ◦ El Motor de almacenamiento "In-Memory" solo está disponible en MongoDB Enterprice. En lugar de almacenar documentos en el disco, se les retiene en memoria el mayor tiempo de latencia de datos posible. 31
  • 32. Caso de Estudio – Arquitectura 32 mongod es el proceso demonio primario para el sistema de MongoDB. Se ocupa de las solicitudes de datos , gestiona el acceso de datos, y realiza operaciones de gestión en background. Mongos para " MongoDB Shard", es un servicio de enrutamiento para las configuraciones de fragmento MongoDB que procesa las consultas de la capa de aplicación , y determina la ubicación de los datos en el clúster fragmentado, con el fin de completar estas operaciones. Config Server Mongos utiliza tres servidores de configuración para almacenar los metadatos del cluster, y los tres deben estar disponibles para apoyar cambios que incluyen divisiones de chunks y migraciones . Si uno de los servidores de configuración no está disponible debe reemplazarlo a la brevedad posible .
  • 33. Caso de estudio - Replicación Un conjunto de replica ◦ Es un grupo de instancias de mongod que mantiene el mismo conjunto de datos, donde el primario recibe las actualizaciones de los clientes quien las replica a los secudarios 33
  • 34. Caso de estudio - Replicación Fallo del primario ◦ Automaticamente se elige como primario a uno de los secundarios 34
  • 35. Caso de estudio - Replicación Si el nodo se recupera ◦ Pasa a ser secundario 35
  • 36. Caso de estudio - Sharding Divide el conjunto de datos y distribuye los datos a través de múltiples servidores o fragmentos . ◦ Cada fragmento es una base de datos independiente , ◦ y colectivamente , los fragmentos forman una sola base de datos lógica. 36
  • 37. Caso de estudio - Sharding 37 Escalabilidad para escribir Key Range 0..100 mongod mongod mongod Key Range 0..50 Key Range 51..100
  • 38. Caso de estudio - Sharding 38 mongod mongod mongod mongod Key Range 0..25 Key Range 26..50 Key Range 51..75 Key Range 76.. 100 Escalabilidad para escribir
  • 39. Caso de estudio - Sharding 39 Primary Secondary Secondary Primary Secondary Secondary Primary Secondary Secondary Primary Secondary Secondary Key Range 0..25 Key Range 26..50 Key Range 51..75 Key Range 76.. 100
  • 41. Primary Secondary Secondary Primary Secondary Secondary Primary Secondary Secondary Primary Secondary Secondary Key Range 0..25 Key Range 26..50 Key Range 51..75 Key Range 76.. 100 MongoS MongoS MongoS Config Config Config Aplicación Caso de estudio - Sharding
  • 42. Caso de estudio - Splitting 42 Splitting o división es un proceso en background que asegura que los datos almacenados no excedan un tamaño específico Mongo divide los datos en trozos (chunks). Cuando un trozo crece más allá de un tamaño especificado, MongoDB lo divide por la mitad y distribuye los trozos en un servidor de fragmentos.
  • 43. Caso de estudio - Splitting 43 GridFS: Especificación para almacenar y recuperar archivos (documentos) que excedan el tamaño límite de documento Bson de 16MB ◦ Divide el archivo en pedazos o chunks, por defecto de 255 KB ◦ Usa dos coleccciones para almacenar los datos ◦ En una se almacenan los chunks ◦ En otra se almacena la metadata ◦ https://docs.mongodb.org/manual/core/gridfs/
  • 44. Caso de estudio - Seguridad 44 MongoDB provee control de acceso basado en usuario o en Roles db.createUser( { user: "reportsUser", pwd: "12345678", roles: [ { role: "read", db: "reporting" }, { role: "read", db: "products" }, { role: "read", db: "sales" }, { role: "readWrite", db: "accounts" } ] } ) db.createRole( { role: "mongostatRole", privileges: [ { resource: { cluster: true }, actions: [ "serverStatus" ] } ], roles: [] } )
  • 45. Caso de estudio - Seguridad 45 Para asignar un Rol a un usuario db.grantRolesToUser( "reportsUser", [ { role: "readWrite", db: "products" } , { role: "readAnyDatabase", db:"admin" } ] ) Tambien permite el uso de un proxy a través del protocolo LDAP
  • 46. Caso de estudio – Quienes usan 46
  • 47. Caso de estudio – Consultas avanzadas Consultas con arreglo de documentos: ◦ La siguiente operación devuelve documentos de la colección bios donde un arreglo premios contiene un elemento de documento incrustado que contiene el campo premio igual al "Premio Turing" y el campo de año mayor a 1980: db.bios.find( { awards: { $elemMatch: { award: "Turing Award", year: { $gt: 1980 } } } } )
  • 48. Caso de estudio – Consultas avanzadas Consultas con documentos embebidos ◦ La siguiente operación devuelve documentos de la colección bios donde el documento embebido name es exactamente { first: "Yukihiro", last: "Matsumoto" } db.bios.find( { name: { first: "Yukihiro", last: "Matsumoto" } } ) db.bios.find( { "name.first": "Yukihiro", "name.last": "Matsumoto" } )
  • 49. Caso de estudio – Consultas avanzadas Cursores: ◦ El método db.collection.find() consulta una colección y retorna un cursor a los documentos resultantes ◦ Para acceder a los documentos se necesita iterar el cursor var myCursor = db.inventory.find(); var myFirstDocument = myCursor.hasNext() ? myCursor.next() : null; myCursor.objsLeftInBatch(); http://docs.mongodb.org/manual/core/cursors/
  • 50. Caso de estudio – Consultas avanzadas Agregación: operaciones que procesan registros de datos y retornan resultados calculados Posee tres formas de agregación ◦ Pipeline de agregación: framework para llevar a cabo tareas de agregación. Modelado en el concepto de pipelines de procesamiento de datos ◦ Map-Reduce: Operaciones con dos fasos Map y Reduce. Usa funciones de Javascript ◦ Operaciones de agregación de propósito simple: comandos de base de datos de propósito especial
  • 51. Caso de estudio – Consultas avanzadas Pipeline de agregación: Es una serie de transformación de Documentos ◦ Se ejecuta en estapas (stages) ◦ La entrada original es una colección ◦ Las salidas son documentos, cursores o colecciones ◦ Escrito en C++ ◦ Trabaja bien con Shardings http://www.slideshare.net/mongodb/aggregation-framework-36715147 $match $project $group $sort
  • 52. Pipeline de agregación – algunas etapas  $match: fitra documentos  $project: agrega o elimina columnas en el documento  $group: aplica operaciones de agrupación a cada grupo de documentos ($sum, $avg, $min, $max, etc)  $unwind: convierte documentos en una matriz con ciertas características  $sort: ordena los documentos  $limit /$skip: página los documentos  $geoNear: ordena los documentos por proximidad geográfica  $lookup: realiza un left outer join con otra colección en la misma base de datos http://www.slideshare.net/mongodb/aggregation-framework-36715147
  • 53. Pipeline de agregación - etapas Ejemplo: http://www.slideshare.net/mongodb/aggregation-framework-36715147
  • 54. Pipeline de agregación - etapas Ejemplo lookup: http://www.slideshare.net/mongodb/aggregation-framework-36715147
  • 55. Pipeline de agregación – Ejemplo lookup https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#pipe._S_lookup
  • 56. Pipeline de agregación – Ejemplo lookup https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#pipe._S_lookup
  • 57. Caso de estudio – Consultas avanzadas ◦ Map-Reduce: Map: procesa cada documento y emite uno o dos objetos y Reduce: combina la salida de la operación Map.
  • 58. Caso de estudio – Consultas avanzadas Operaciones de agregación de propósito simple: comandos de base de datos de propósito especial ◦ Count: cuenta los elementos de una colección que cumplen la condición de la consulta ◦ db.collection.count(consulta) ◦ db.collection.find(consulta).count() ◦ Disctint: Encuentra los valores diferentes de un campo ◦ db.collection.distinct(campo, consulta) ◦ Group
  • 59. Caso de estudio – Consultas avanzadas db.collection.group({ key, reduce, initial [, keyf] [, cond] [, finalize] }) key documento Campo o campos a agrupar. Retorna una “key object” para usar como la clave de agrupamiento. reduce función Una función de agregación que opera sobre los documentos durante la operación de agrupamiento. Puede retornar una suma o un conteo. Toma dos argumentos: el actual documento y un documento resultado de la agregación para el grupo. initial Documento documento resultado de la agregación inicial keyf Función Opcional. Alternativa al campo clave. Especifica una funcion que crea un “key object” para usar como clave de agrupamiento. Use keyf en lugar de key para agrupar por campos calculados. cond Documento Criterios de selección para determinar qué documentos de la colección procesar. Si se omite, se procesarán todos los documentos de la colección para la operación del grupo. finalize función Opcional. Una función que ejecuta cada elemento en el conjunto de resultados antes de que db.collection.group () devuelve el valor final. Esta función puede o bien modificar el documento resultado o sustituir el documento resultado como un todo.
  • 60. Caso de estudio – Consultas avanzadas - Explain ◦ Retorna informacion del plan de consulta para las siguientes operaciones: ◦ aggregate(); count(); find(); group(); remove(); and update() methods. ◦ db.collection.explain().<method(...)> ◦ Presenta el plan de consulta (query plan) como un árbol de etapas. ◦ Cada etapa pasa sus resultados (es decir, documentos o claves de índice) al nodo padre. ◦ Los nodos hoja acceden a la colección o los índices. ◦ Los nodos internos manipulan los documentos o las claves de índice que se derivan de los nodos secundarios. ◦ El nodo raíz es la etapa final de la que MongoDB deriva del conjunto de resultados
  • 61. Caso de estudio – Consultas avanzadas - Explain ◦ Algunas de las operaciones del plan son: ◦ COLLSCAN Scan de una coleccion ◦ IXSCAN para búsqueda en el índice ◦ FETCH para recuperación de documentos ◦ SHARD_MERGE para mezclar results de fragmentos ◦ El explain tiene los siguientes parámetros opcionales (modos de verbosity) ◦ queryPlanner: es el modo por defecto, retorna solamente el plan de consulta ◦ executionStats: muestra el plan de consulta e información de ejecución ◦ allPlansExecution: muestra todos los posibles planes de ejecución.
  • 62. Caso de estudio – Consultas avanzadas - Explain Ejemplos ◦ db.products.explain().count( { quantity: { $gt: 50 } } ) ◦ Retorna solo el plan de consulta ◦ db.products.explain("executionStats").find( { quantity: { $gt: 50 }, category: "apparel" } ) ◦ Retorna el plan de consulta y información de ejecución ◦ db.products.explain("allPlansExecution").update( { quantity: { $lt: 1000}, category: "apparel" }, { $set: { reorder: true } } ) ◦ No modifica los datos pero retorna todos los posibles planes de ejecución
  • 63. Caso de estudio – respaldos Respaldo por copia de datos subyacentes: ◦ Se trata de una copia de snapshot en un punto del tiempo, sin embargo no depende de mongo sino del sistema operativo. mongodump - mongorestore ◦ mongodump: lee datos de una base de datos y crea archivos Bson de alta fidelidad ◦ mogorestore: restaura una base de datos desde un archivo Bson. mongoimport – mongoexport ◦ mongoexport es una utilidad que produce una exportación Json o CSV de los datos almacenados en una instancia de MongoDB. ◦ mongoimport importa el contenido de un archivo Json o CSV creado por mongoexport u otra herramienta de terceros.
  • 64. Caso de estudio – Usos Cualquier aplicación que necesite almacenar datos semi estructurados Algunos casos de uso ◦ Almacenamiento y registro de eventos ◦ Manejo de documentos y contenido ◦ Comercio Electrónico ◦ Alto volúmenes de lectura ◦ Aplicaciones móviles ◦ Manejo de contenido ◦ Almacenamiento de comentario
  • 65. Próxima clase BD Familia de columnas: ◦ Modelo de datos ◦ Operaciones ◦ Técnicas usadas ◦ Caso de estudio

Notas del editor

  1. Full deployment. As many mongoS processes as you have app servers (for example); Config DBs are small but hold the critical information about where ranges of data are located on disk/shards.
  2. Full deployment. As many mongoS processes as you have app servers (for example); Config DBs are small but hold the critical information about where ranges of data are located on disk/shards.