SlideShare una empresa de Scribd logo
1 de 57
Descargar para leer sin conexión
Azure Cosmos DB
Servicios de bases de datos multimodelo NoSQL
Expositor.
Daniel Gomez Jaramillo
Daniel Gomez Jaramillo
▪ Estudiante de Ingeniería de Sistemas en la
Universidad de Cuenca (Ecuador).
▪ Microsoft Student Partner (MSP).
▪ Líder de Microsoft UCuenca.
daniel.gomez@studentpartner.com
@esDanielGomez
Parte 1. Bases de datos NoSQL
▪ Situación actual y generalidades.
▪ Tipos y aplicaciones.
Parte 2. Modelos NoSQL con Azure Cosmos DB
• Bases de datos documentales SQL.
• Bases de datos documentales con MongoDB.
• Wide-columna con Cassandra.
• Clave valor con Azure Table.
• Grafos con Gremlin.
Parte 3. Aplicaciones practicas con la API de Azure Cosmos
DB para MongoDB en Node JS.
Agenda
Son muchas las aplicaciones web que utilizan algún tipo de
bases de datos para funcionar.
Hasta ahora estábamos acostumbrados a utilizar bases de
datos SQL como son MySQL, Oracle o SQL Server, pero desde
hace ya algún tiempo han aparecido otras que reciben el
nombre de NoSQL (Not only SQL – No sólo SQL) y que han
llegado con la intención de hacer frente a las bases relacionales
utilizadas por la mayoría de los usuarios.
Introducción
Se puede decir que la aparición del término NoSQL aparece
con la llegada de la web 2.0.
En ese momento sólo subían contenido a la red aquellas
empresas que tenían un portal, pero con la llegada de
aplicaciones como Facebook, Twitter o Youtube, cualquier
usuario podía subir contenido, provocando así un crecimiento
exponencial de los datos.
Orígenes de las bases de datos NoSQL
Qué es lo que está causando ese giro hacia las bases de datos
NoSQL?
Cuatro mega-tendencias interrelacionadas:
❏ Big Users
❏ Internet of Things (IoT)
❏ Big Data,
❏ The Cloud.
Orígenes de las bases de datos NoSQL
Qué es lo que está causando ese giro hacia las bases de datos
NoSQL?
BIG USERS
Orígenes de las bases de datos NoSQL
Qué es lo que está causando ese giro hacia las bases de datos
NoSQL?
INTERNET DE LAS COSAS (IoT)
Orígenes de las bases de datos NoSQL
14 billones de cosas
Para el 2020,
32 billones de cosas
Qué es lo que está causando ese giro hacia las bases de datos NoSQL?
BIG DATA
Orígenes de las bases de datos NoSQL
Orígenes de las bases de datos NoSQL
Es en este momento cuando empiezan a aparecer los primeros
problemas de la gestión de toda esa información almacenada en
bases de datos relacionales.
En un principio, para solucionar estos problemas de accesibilidad,
las empresas optaron por utilizar un mayor número de máquinas
pero pronto se dieron cuenta de que esto no solucionaba el
problema, además de ser una solución muy cara.
La otra solución era la creación de sistemas pensados para un uso
específico que con el paso del tiempo han dado lugar a
soluciones robustas, apareciendo así el movimiento NoSQL.
No tiene un definición formalmente aceptada
❏ No-RDBMS, No-Relacional
❏ No Solo SQL (NoSQL - Not Only SQL)
Término General para todas las bases de datos que no siguen
los principios de Bases de datos relacionales.
Definición
❏ Se ejecutan en máquinas con pocos recursos.
❏ Pueden manejar gran cantidad de datos.
❏ No genera cuellos de botella.
❏ No utilizan estructuras fijas como tablas para el
almacenamiento de los datos.
❏ No suelen permitir operaciones JOIN.
Características de las bases de datos NoSQL
SQL vs NoSQL
NoSQL no es un sustituto a las bases de datos
relacionales SQL, es solo un movimiento que busca otras
opciones para la manipulación de BD con un rendimiento
extremo.
SQL vs NoSQL
SQL vs NoSQL
Azure Cosmos DB
Servicio de base de datos multimodelo NoSQL
Cosmos DB es un servicio de base de datos NoSQL incluido en
Azure.
NoSQL definitivamente significa no solo SQL en el caso de este
servicio de base de datos, porque Cosmos DB proporciona una
API de SQL que nos permite consultar documentos mediante el
uso de SQL en uno de los posibles modelos que admite el
servicio de base de datos.
Cosmos DB es un servicio de base de datos multimodelo y, por
lo tanto, admite diferentes modelos no relacionales.
Azure Cosmos DB
Las siguientes son tres características principales que
proporciona Cosmos DB que establecen pilares para admitir
características adicionales:
Partición
Replicación
Gobernanza de recursos
Características de Azure Cosmos DB
1. Clave - Valor
En el tipo Clave - Valor, se utiliza una tabla hash en la que una
clave única apunta a un elemento.
Tipos de almacenamiento NoSQL
2. En columnas
Los datos se almacenan en columnas, en lugar de almacenarse
en filas, (como se hace en la mayoría de los sistemas de gestión
de bases de datos relacionales).
Tipos de almacenamiento NoSQL
3. Documentales
Los almacenes de documentos son similares a los almacenes de
valores clave, porque no tienen un esquema y se basan en un
modelo de valor clave.
Ambos carecen de coherencia en el nivel de base de datos, lo
que hace posible que las aplicaciones proporcionen más
fiabilidad.
Tipos de almacenamiento NoSQL
4. Grafos
En este tipo de bases de datos, la información se representa
como nodos de un grafo y sus relaciones con las aristas del
mismo, de manera que se puede hacer uso de la teoría de
grafos para recorrerla.
Tipos de almacenamiento NoSQL
Internamente, Cosmos DB almacena los datos en un formato
llamado Atom-RecordSequence (ARS), que está altamente
optimizado para la partición y la replicación.
Por lo tanto, sin importar el tipo de datos y API de NoSQL, los
datos terminan almacenados en este formato interno.
Como funciona Azure Cosmos DB?
Cosmos DB brinda soporte para cinco API diferentes con SDK
para muchos lenguajes de programación y plataformas.
La siguiente tabla resume las cinco API disponibles según los
cuatro modelos de datos:
Azure Cosmos DB y API NoSQL
Tipo NoSQL APIs disponibles
Clave-Valor Table API
Columna Cassandra API
Documental
SQL API
MongoDB API
Grafo Gremlin API
Azure Cosmos DB implementa protocolos de conexión de las
bases de datos NoSQL
Al proporcionar una implementación nativa de los protocolos
de conexión directa y eficiente dentro de Cosmos DB, permite
que los SDK, controladores y herramientas existentes de los
clientes de las bases de datos NoSQL interactúen con Cosmos
DB de manera transparente.
La API de Azure Cosmos DB para MongoDB
DEMO
MongoDB (“humongous” que significa enorme) es un sistema
de base de datos NoSQL orientado a documentos, desarrollado
bajo el concepto de código abierto
MongoDB – Definición
MongoDB – Términos importantes
MongoDB – Formato JSON
En JSON el formato es muy sencillo. Para cada
característica tenemos un par nombre/valor, separados
por el símbolo “:”.
Los valores pueden ser de seis tipos:
• String o cadena
• Number o número
• Boolean o booleano (true o false)
• null
• Array
• Objeto o documento, es decir un objeto JSON puede
contener otro documento JSON, sin límite de
recursividad.
MongoDB – Términos importantes
MongoDB – Operaciones CRUD
Create operations
Crear o insertar operaciones agrega nuevos documentos a una
colección. Si la colección no existe actualmente, las operaciones
de inserción crearán la colección.
MongoDB – Operaciones CRUD
Read operations
Operaciones de lectura recupera documentos de una colección;
es decir, consulta una colección de documentos.
MongoDB – Operaciones CRUD
Update operations
Las operaciones de actualización modifican los documentos
existentes en una colección.
MongoDB – Operaciones CRUD
Delete operations
Elimina documentos de una colección. MongoDB proporciona
los siguientes métodos para eliminar documentos de una
colección:
MongoDB – Selectores de consulta BSON
Nombre Descripción
$eq
Coincide con valores que son iguales a un valor especificado.
$gt Coincide con valores que son mayores que un valor
especificado.
$gte Coincide con valores que son mayores o iguales a un valor
especificado.
$lt Coincide con valores que son menores que un valor
especificado.
$lte Coincide con los valores que son menores o iguales que un
valor especificado.
$ne Coincide con todos los valores que no son iguales a un valor
especificado.
MongoDB – Selectores de consulta BSON
Nombre Descripción
$and Une las cláusulas de consulta con un resultado lógico de AND.
Todos los documentos que coinciden con las condiciones de
ambas cláusulas.
$not Invierte el efecto de una expresión de consulta y devuelve
documentos que no coinciden con la expresión de consulta.
$nor Une las cláusulas de consulta con un NOR. Retorno lógico de
todos los documentos que no coinciden con ambas cláusulas.
$or Une las cláusulas de consulta con un OR. Retorno lógico de
todos los documentos que coinciden con las condiciones de
cualquiera de las cláusulas.
MongoDB – Selectores de consulta BSON
Nombre Descripción
$exists Coincide con los documentos que tienen el campo
especificado.
$type Selecciona documentos si un campo es del tipo especificado.
De evaluación, geoespaciales, arreglos, bitwise y de proyección:
https://docs.mongodb.com/manual/reference/operator/query/
MongoDB – Selectores de consulta BSON
Nombre Descripción
$exists Coincide con los documentos que tienen el campo
especificado.
$type Selecciona documentos si un campo es del tipo especificado.
De evaluación, geoespaciales, arreglos, bitwise y de proyección:
https://docs.mongodb.com/manual/reference/operator/query/
DEMO
Azure Database Migration Service
Ejercicio
Realizar las siguientes consultas en la colección Persona de la
base de datos dbPersonal:
❏ Mostrar el Nombre, País y Moneda de las personas que
utilizan tarjeta ‘visa’ en China.
❏ Mostrar los nombres y nacionalidades de las personas con
título: ‘Honorable’ de ‘Colombia’ o ‘Venezuela’.
Procesamiento de datos en la nube
Map Reduce
MapReduce es un framework
creado por Google, y pensado
para realizar operaciones de
forma paralela sobre grandes
colecciones de datos.
Este framework está compuesto
de dos funciones principales: la
función Map y la función Reduce.
De ahí ese nombre tan original.
Procesamiento de datos en la nube
Map Reduce
Ejemplo de funcionamiento:
Procesamiento de datos en la nube
{
_id: 1,
Nombre: ‘Daniel’,
Género: ‘Masculino’,
};
{
_id: 2,
Nombre: ‘Tania’,
Género: ‘Femenino’,
};
{
_id: 3,
Nombre: ‘Jose’,
Género: ‘Masculino’,
};
{
_id: 4,
Nombre: ‘Pedro’,
Género: ‘Masculino’,
};
Procesamiento de datos en la nube
Map Reduce – Función Map
CLAVE
Masculino
Femenino
Masculino
Masculino
VALOR
1
1
1
1
Procesamiento de datos en la nube
Map Reduce – Función Reduce
CLAVE
Masculino
Femenino
VALOR
3
1
Procesamiento de datos en la nube
Map Reduce – en Node JS
var map = function () {
emit(this.Genero, 1);
}
var reduce = function(keys,values)
{
return Array.sum(values);
}
db.Persona.mapReduce ( map, reduce,
{out:‘ColeccionResultado’} );
Caso practico
Map Reduce con API Cosmos DB para Mongo DB
De los 1000 documentos aproximadamente de nuestra colección
Persona de la base de datos dbPersonal, se desea calcular una
colección ‘EstadisticasPersona’ para conocer lo siguiente:
❏ El número de personas que tienen género ‘Female’ y ‘Male’ y
que son mayores a 25 años.
Replicación de bases de datos
NoSQL en Microsoft Azure
Azure Cosmos DB
Servicio de base de datos multimodelo NoSQL
Microsoft
Universidad de Cuenca¡¡Muchas gracias!!
Microsoft Student Partners

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Introduction to database & sql
Introduction to database & sqlIntroduction to database & sql
Introduction to database & sql
 
1. Modelo de Datos
1. Modelo de Datos1. Modelo de Datos
1. Modelo de Datos
 
Active database
Active databaseActive database
Active database
 
bases de datos 3 generacion
bases de datos 3 generacionbases de datos 3 generacion
bases de datos 3 generacion
 
base de datos para dispositivos móviles
base de datos para dispositivos móvilesbase de datos para dispositivos móviles
base de datos para dispositivos móviles
 
Presentacion bases de datos
Presentacion bases de datosPresentacion bases de datos
Presentacion bases de datos
 
Database systems
Database systemsDatabase systems
Database systems
 
COMANDOS DDL
COMANDOS DDLCOMANDOS DDL
COMANDOS DDL
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
 
Reglas de integridad bd relacional
Reglas de integridad bd relacionalReglas de integridad bd relacional
Reglas de integridad bd relacional
 
Database Management System
Database Management SystemDatabase Management System
Database Management System
 
Introduction to RDBMS
Introduction to RDBMSIntroduction to RDBMS
Introduction to RDBMS
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Organización lógica y física.
Organización lógica y física.Organización lógica y física.
Organización lógica y física.
 
2 database system concepts and architecture
2 database system concepts and architecture2 database system concepts and architecture
2 database system concepts and architecture
 
XML Databases
XML DatabasesXML Databases
XML Databases
 
Data base security & integrity
Data base security &  integrityData base security &  integrity
Data base security & integrity
 
SQLServer Database Structures
SQLServer Database Structures SQLServer Database Structures
SQLServer Database Structures
 
Databases: Normalisation
Databases: NormalisationDatabases: Normalisation
Databases: Normalisation
 

Similar a Azure Cosmos DB: Bases de datos multimodelo NoSQL (20)

MONGODB - NOSQL
MONGODB - NOSQLMONGODB - NOSQL
MONGODB - NOSQL
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Jean piere sarumo mongodb
Jean piere sarumo mongodbJean piere sarumo mongodb
Jean piere sarumo mongodb
 
Ultisgbd
UltisgbdUltisgbd
Ultisgbd
 
NoSql introducción -Innova4j
NoSql introducción -Innova4jNoSql introducción -Innova4j
NoSql introducción -Innova4j
 
Act 04 rivera_alfredo_bd
Act 04 rivera_alfredo_bdAct 04 rivera_alfredo_bd
Act 04 rivera_alfredo_bd
 
MongoDB
MongoDBMongoDB
MongoDB
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Mongo db
Mongo dbMongo db
Mongo db
 
Mongo db
Mongo dbMongo db
Mongo db
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Rila
RilaRila
Rila
 
Bases dedatos act. 4
Bases dedatos act. 4Bases dedatos act. 4
Bases dedatos act. 4
 
Que una base de datos
Que una base de datosQue una base de datos
Que una base de datos
 
Introduccón a Mongodb
Introduccón a MongodbIntroduccón a Mongodb
Introduccón a Mongodb
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
MongoDB
MongoDBMongoDB
MongoDB
 

Más de Daniel Gomez Jaramillo (16)

DotVVM Fundamentals
DotVVM FundamentalsDotVVM Fundamentals
DotVVM Fundamentals
 
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
 
HTML y Alojamiento en Azure.
HTML y Alojamiento en Azure. HTML y Alojamiento en Azure.
HTML y Alojamiento en Azure.
 
Internet y seguridad en redes
Internet y seguridad en redesInternet y seguridad en redes
Internet y seguridad en redes
 
Sistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UCSistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UC
 
Colecciones en Scala
Colecciones en ScalaColecciones en Scala
Colecciones en Scala
 
Codificación de Huffman
Codificación de Huffman Codificación de Huffman
Codificación de Huffman
 
Algoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosAlgoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivos
 
Reproductor de música DG Player
Reproductor de música DG PlayerReproductor de música DG Player
Reproductor de música DG Player
 
Colecciones en Python
Colecciones en PythonColecciones en Python
Colecciones en Python
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Fuerzas de rozamiento
Fuerzas de rozamientoFuerzas de rozamiento
Fuerzas de rozamiento
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 

Último

Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 

Último (7)

Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 

Azure Cosmos DB: Bases de datos multimodelo NoSQL

  • 1. Azure Cosmos DB Servicios de bases de datos multimodelo NoSQL Expositor. Daniel Gomez Jaramillo
  • 2. Daniel Gomez Jaramillo ▪ Estudiante de Ingeniería de Sistemas en la Universidad de Cuenca (Ecuador). ▪ Microsoft Student Partner (MSP). ▪ Líder de Microsoft UCuenca. daniel.gomez@studentpartner.com @esDanielGomez
  • 3. Parte 1. Bases de datos NoSQL ▪ Situación actual y generalidades. ▪ Tipos y aplicaciones. Parte 2. Modelos NoSQL con Azure Cosmos DB • Bases de datos documentales SQL. • Bases de datos documentales con MongoDB. • Wide-columna con Cassandra. • Clave valor con Azure Table. • Grafos con Gremlin. Parte 3. Aplicaciones practicas con la API de Azure Cosmos DB para MongoDB en Node JS. Agenda
  • 4.
  • 5. Son muchas las aplicaciones web que utilizan algún tipo de bases de datos para funcionar. Hasta ahora estábamos acostumbrados a utilizar bases de datos SQL como son MySQL, Oracle o SQL Server, pero desde hace ya algún tiempo han aparecido otras que reciben el nombre de NoSQL (Not only SQL – No sólo SQL) y que han llegado con la intención de hacer frente a las bases relacionales utilizadas por la mayoría de los usuarios. Introducción
  • 6. Se puede decir que la aparición del término NoSQL aparece con la llegada de la web 2.0. En ese momento sólo subían contenido a la red aquellas empresas que tenían un portal, pero con la llegada de aplicaciones como Facebook, Twitter o Youtube, cualquier usuario podía subir contenido, provocando así un crecimiento exponencial de los datos. Orígenes de las bases de datos NoSQL
  • 7. Qué es lo que está causando ese giro hacia las bases de datos NoSQL? Cuatro mega-tendencias interrelacionadas: ❏ Big Users ❏ Internet of Things (IoT) ❏ Big Data, ❏ The Cloud. Orígenes de las bases de datos NoSQL
  • 8. Qué es lo que está causando ese giro hacia las bases de datos NoSQL? BIG USERS Orígenes de las bases de datos NoSQL
  • 9. Qué es lo que está causando ese giro hacia las bases de datos NoSQL? INTERNET DE LAS COSAS (IoT) Orígenes de las bases de datos NoSQL 14 billones de cosas Para el 2020, 32 billones de cosas
  • 10. Qué es lo que está causando ese giro hacia las bases de datos NoSQL? BIG DATA Orígenes de las bases de datos NoSQL
  • 11. Orígenes de las bases de datos NoSQL Es en este momento cuando empiezan a aparecer los primeros problemas de la gestión de toda esa información almacenada en bases de datos relacionales. En un principio, para solucionar estos problemas de accesibilidad, las empresas optaron por utilizar un mayor número de máquinas pero pronto se dieron cuenta de que esto no solucionaba el problema, además de ser una solución muy cara. La otra solución era la creación de sistemas pensados para un uso específico que con el paso del tiempo han dado lugar a soluciones robustas, apareciendo así el movimiento NoSQL.
  • 12. No tiene un definición formalmente aceptada ❏ No-RDBMS, No-Relacional ❏ No Solo SQL (NoSQL - Not Only SQL) Término General para todas las bases de datos que no siguen los principios de Bases de datos relacionales. Definición
  • 13. ❏ Se ejecutan en máquinas con pocos recursos. ❏ Pueden manejar gran cantidad de datos. ❏ No genera cuellos de botella. ❏ No utilizan estructuras fijas como tablas para el almacenamiento de los datos. ❏ No suelen permitir operaciones JOIN. Características de las bases de datos NoSQL
  • 15. NoSQL no es un sustituto a las bases de datos relacionales SQL, es solo un movimiento que busca otras opciones para la manipulación de BD con un rendimiento extremo. SQL vs NoSQL
  • 17. Azure Cosmos DB Servicio de base de datos multimodelo NoSQL
  • 18. Cosmos DB es un servicio de base de datos NoSQL incluido en Azure. NoSQL definitivamente significa no solo SQL en el caso de este servicio de base de datos, porque Cosmos DB proporciona una API de SQL que nos permite consultar documentos mediante el uso de SQL en uno de los posibles modelos que admite el servicio de base de datos. Cosmos DB es un servicio de base de datos multimodelo y, por lo tanto, admite diferentes modelos no relacionales. Azure Cosmos DB
  • 19.
  • 20. Las siguientes son tres características principales que proporciona Cosmos DB que establecen pilares para admitir características adicionales: Partición Replicación Gobernanza de recursos Características de Azure Cosmos DB
  • 21. 1. Clave - Valor En el tipo Clave - Valor, se utiliza una tabla hash en la que una clave única apunta a un elemento. Tipos de almacenamiento NoSQL
  • 22. 2. En columnas Los datos se almacenan en columnas, en lugar de almacenarse en filas, (como se hace en la mayoría de los sistemas de gestión de bases de datos relacionales). Tipos de almacenamiento NoSQL
  • 23. 3. Documentales Los almacenes de documentos son similares a los almacenes de valores clave, porque no tienen un esquema y se basan en un modelo de valor clave. Ambos carecen de coherencia en el nivel de base de datos, lo que hace posible que las aplicaciones proporcionen más fiabilidad. Tipos de almacenamiento NoSQL
  • 24. 4. Grafos En este tipo de bases de datos, la información se representa como nodos de un grafo y sus relaciones con las aristas del mismo, de manera que se puede hacer uso de la teoría de grafos para recorrerla. Tipos de almacenamiento NoSQL
  • 25. Internamente, Cosmos DB almacena los datos en un formato llamado Atom-RecordSequence (ARS), que está altamente optimizado para la partición y la replicación. Por lo tanto, sin importar el tipo de datos y API de NoSQL, los datos terminan almacenados en este formato interno. Como funciona Azure Cosmos DB?
  • 26. Cosmos DB brinda soporte para cinco API diferentes con SDK para muchos lenguajes de programación y plataformas. La siguiente tabla resume las cinco API disponibles según los cuatro modelos de datos: Azure Cosmos DB y API NoSQL Tipo NoSQL APIs disponibles Clave-Valor Table API Columna Cassandra API Documental SQL API MongoDB API Grafo Gremlin API
  • 27.
  • 28.
  • 29. Azure Cosmos DB implementa protocolos de conexión de las bases de datos NoSQL Al proporcionar una implementación nativa de los protocolos de conexión directa y eficiente dentro de Cosmos DB, permite que los SDK, controladores y herramientas existentes de los clientes de las bases de datos NoSQL interactúen con Cosmos DB de manera transparente. La API de Azure Cosmos DB para MongoDB
  • 30. DEMO
  • 31. MongoDB (“humongous” que significa enorme) es un sistema de base de datos NoSQL orientado a documentos, desarrollado bajo el concepto de código abierto MongoDB – Definición
  • 32. MongoDB – Términos importantes
  • 33. MongoDB – Formato JSON En JSON el formato es muy sencillo. Para cada característica tenemos un par nombre/valor, separados por el símbolo “:”. Los valores pueden ser de seis tipos: • String o cadena • Number o número • Boolean o booleano (true o false) • null • Array • Objeto o documento, es decir un objeto JSON puede contener otro documento JSON, sin límite de recursividad.
  • 34. MongoDB – Términos importantes
  • 35. MongoDB – Operaciones CRUD Create operations Crear o insertar operaciones agrega nuevos documentos a una colección. Si la colección no existe actualmente, las operaciones de inserción crearán la colección.
  • 36. MongoDB – Operaciones CRUD Read operations Operaciones de lectura recupera documentos de una colección; es decir, consulta una colección de documentos.
  • 37. MongoDB – Operaciones CRUD Update operations Las operaciones de actualización modifican los documentos existentes en una colección.
  • 38. MongoDB – Operaciones CRUD Delete operations Elimina documentos de una colección. MongoDB proporciona los siguientes métodos para eliminar documentos de una colección:
  • 39. MongoDB – Selectores de consulta BSON Nombre Descripción $eq Coincide con valores que son iguales a un valor especificado. $gt Coincide con valores que son mayores que un valor especificado. $gte Coincide con valores que son mayores o iguales a un valor especificado. $lt Coincide con valores que son menores que un valor especificado. $lte Coincide con los valores que son menores o iguales que un valor especificado. $ne Coincide con todos los valores que no son iguales a un valor especificado.
  • 40. MongoDB – Selectores de consulta BSON Nombre Descripción $and Une las cláusulas de consulta con un resultado lógico de AND. Todos los documentos que coinciden con las condiciones de ambas cláusulas. $not Invierte el efecto de una expresión de consulta y devuelve documentos que no coinciden con la expresión de consulta. $nor Une las cláusulas de consulta con un NOR. Retorno lógico de todos los documentos que no coinciden con ambas cláusulas. $or Une las cláusulas de consulta con un OR. Retorno lógico de todos los documentos que coinciden con las condiciones de cualquiera de las cláusulas.
  • 41. MongoDB – Selectores de consulta BSON Nombre Descripción $exists Coincide con los documentos que tienen el campo especificado. $type Selecciona documentos si un campo es del tipo especificado. De evaluación, geoespaciales, arreglos, bitwise y de proyección: https://docs.mongodb.com/manual/reference/operator/query/
  • 42. MongoDB – Selectores de consulta BSON Nombre Descripción $exists Coincide con los documentos que tienen el campo especificado. $type Selecciona documentos si un campo es del tipo especificado. De evaluación, geoespaciales, arreglos, bitwise y de proyección: https://docs.mongodb.com/manual/reference/operator/query/
  • 43. DEMO
  • 45. Ejercicio Realizar las siguientes consultas en la colección Persona de la base de datos dbPersonal: ❏ Mostrar el Nombre, País y Moneda de las personas que utilizan tarjeta ‘visa’ en China. ❏ Mostrar los nombres y nacionalidades de las personas con título: ‘Honorable’ de ‘Colombia’ o ‘Venezuela’.
  • 46.
  • 47. Procesamiento de datos en la nube Map Reduce MapReduce es un framework creado por Google, y pensado para realizar operaciones de forma paralela sobre grandes colecciones de datos. Este framework está compuesto de dos funciones principales: la función Map y la función Reduce. De ahí ese nombre tan original.
  • 48. Procesamiento de datos en la nube Map Reduce Ejemplo de funcionamiento:
  • 49. Procesamiento de datos en la nube { _id: 1, Nombre: ‘Daniel’, Género: ‘Masculino’, }; { _id: 2, Nombre: ‘Tania’, Género: ‘Femenino’, }; { _id: 3, Nombre: ‘Jose’, Género: ‘Masculino’, }; { _id: 4, Nombre: ‘Pedro’, Género: ‘Masculino’, };
  • 50. Procesamiento de datos en la nube Map Reduce – Función Map CLAVE Masculino Femenino Masculino Masculino VALOR 1 1 1 1
  • 51. Procesamiento de datos en la nube Map Reduce – Función Reduce CLAVE Masculino Femenino VALOR 3 1
  • 52. Procesamiento de datos en la nube Map Reduce – en Node JS var map = function () { emit(this.Genero, 1); } var reduce = function(keys,values) { return Array.sum(values); } db.Persona.mapReduce ( map, reduce, {out:‘ColeccionResultado’} );
  • 53. Caso practico Map Reduce con API Cosmos DB para Mongo DB De los 1000 documentos aproximadamente de nuestra colección Persona de la base de datos dbPersonal, se desea calcular una colección ‘EstadisticasPersona’ para conocer lo siguiente: ❏ El número de personas que tienen género ‘Female’ y ‘Male’ y que son mayores a 25 años.
  • 54. Replicación de bases de datos NoSQL en Microsoft Azure
  • 55. Azure Cosmos DB Servicio de base de datos multimodelo NoSQL