SlideShare una empresa de Scribd logo
1 de 47
Querétaro Software
Development Meetup
Sesión #2
Septiembre, 2017
La finalidad del Meetup es
tener un lugar donde compartir
experiencias (técnicas o no),
ideas y tendencias en la
industria de IT
Querétaro Software
Development Meetup
Primera Regla del Meetup:
tú hablas del Meetup
Segunda Regla del Meetup:
TÚ HABLAS del Meetup
Tercera Regla del Meetup:
TÚ HABLAS DEL MEETUP
Teléfonos como
en Cine
Participen Regla del ⅔ en Dudas
Términos en Inglés
Presentes y en Itálicas
Presentación disponible
en SlideShare
Guía de Acuerdo Común
Para asegurarnos de llevarnos bien, vamos aclarando unas cosas
Faltas de Ortografía y
pochismos presentes
7: 50 pm nos vamos No hacer presentaciones
para vender tu producto
Una presentación en el 2010 cambió mi actitud y mis
experiencias cada que participo en una presentación
o conferencia, así como las expectativas que tengo de
éstas.
La triste historia de una presentación
Una presentación de GMaps
Expectativas Reales
Cuales son sus expectativas del Meetup?
Agenda
Domain Specific Languages
Introducción a NoSQL con MongoDB (Parte 1)
Septiembre, 2017
Introducción a NoSQL
Presentado por Osvaldo Mercado Coss
con MongoDB (Parte 1)
Querétaro Software
Development Meetup
8
Osvaldo Mercado Coss
Backend Developer por error
● De Guadalajara, México
● Senior Backend Developer en PSL Group
● Estudios en Multimedia, de alguna manera termine codeando en el
backend
○ Stack: LA|EMP, PHP + Framework, NodeJS & Python
○ DevOps: Vagrant + Chef
○ DBs: MySQL/MariaDB, Amazon Aurora, CouchDB, Couchbase,
MongoDB y desgraciadamente SQL Server
○ Interesado en Software Escalable, DevOps & Perros
Un poco sobre mi:
Hola!
@omercadocoss
omercadocoss@gmail.com
https://mx.linkedin.com/in/osvaldomercado
Agenda
De DBs tradicional a NoSQL
¿Porqué MongoDB?
Best Practices
Conclusión
MongoDB in Action
NoSQL? 2017 y aún no sabes que és?!
A NoSQL [...] database provides a
mechanism for storage and
retrieval of data that is modeled
in means other than the tabular
relations used in relational
databases
- en.wikipedia.org/wiki/NoSQL
NoSQL-database defines NoSQL as
‘Next Generation Databases mostly
addressing some of the points: being
non-relational, distributed, open-
source and horizontally scalable.’. In
other words, it's not a very precise
definition.
- ElasticSearch [1]
Todo base de datos que NO tiene
relaciones entre datos/tablas, lo
catalogamos como NoSQL
13
Qué es lo que promueve una DB Relacional?
4 puntos básicos que conocer
Organiza la
información de
entidades
A partir de un
identificador único, se
establecen
relaciones/mappings
a otras entidades o
atributos de ellas
Uso de SQL
Prácticamente todas
las DB relacionales
usan un tipo de SQL
(Structured Query
Language) para
consultar y
administrar la base de
datos
Siguen las 12
reglas de Codd
Una DB relacional -
en su mayoría -
promueve el uso de
un RDBMS por medio
de las 12 reglas de
Codd o gran parte de
ellas.
Los Datos deben
de poder ser
Relacionables…
Sin necesidad de
explicación...
14
Vamos entendiendo de qué estamos hablando
La DB Relacional era la ley, y la Ley se Respetaba
15
Vamos entendiendo de qué estamos hablando
La DB Relacional era la ley, y la Ley se Respetaba
Tipo de
Columna?
Engine de
DB?
Tipo de
Dato?
Tipo de
Índice?
Tipo de
Estructura de
Índice?
Tipo de
Join?
Uso de
FK?
17
Dondé nos falló la DB Relacional?
Un ejemplo claro de donde falla una DB relacional
Las DBs NoSQL surgen por el
resultado del crecimiento exponencial
del internet y el crecimiento de las
web apps. Google publica su
investigación de BigTable en 2006 y
Amazon, sobre Dynamo, en 2007
Why NoSQL Database? - Couchbase
La necesidad de desarrollar
ágilmente y de operar
a cualquier escala
Why NoSQL Database? - Couchbase
20
Qué es lo que promueve NoSQL?
Traté de compilar algunos puntos en común
Datos Masivos
Cambiantes
NoSQL está orientado a
aplicaciones creadas con
datos nuevos que pueden
cambiar entre
estructurados, semi-
estructurados y
poliformicos
Se olvida de
rigurosos
schemas… Free
for all!
Deja estructuras
rígidas de lado para
poder facilitar
operaciones en la DB.
Deja A.C.I.D de
lado (en veces)
En veces, deja de
garantizar este concepto
a cambio de availability y
scalability
Está normalmente
diseñado para
escalar fácilmente
/ ser distribuida
por medio de
clusters
NoSQL se enfoca en
grandes cantidades
de datos, por lo que
su arquitectura es
diferente
21
El Mágico Mundo de NoSQL
Existen diferentes tipos de bases de datos NoSQL
Document DBs
Asocian un key a una
estructura de datos
complejos que se le
denomina el
documento.
Graph DB
Usadas para
almacenar
información de
relaciones de datos,
como conexiones
sociales.
Key-Value Stores
La versión más
sencilla de NoSQL,
que almacena
únicamente un key y
un value. Y párale de
contar.
Wide-column
stores
Almacenan datos en
columnas dinámicas
que pueden alcanzar
billones, pero
manejan un modo key-
value
22
El Mágico Mundo de NoSQL
Existen diferentes tipos de bases de datos NoSQL
Key-Value Stores
La versión más
sencilla de NoSQL,
que almacena
únicamente un key y
un value. Y párale de
contar.
23
El Mágico Mundo de NoSQL
Existen diferentes tipos de bases de datos NoSQL
Document DBs
Asocian un key a una
estructura de datos
complejos que se le
denomina el
documento.
24
El Mágico Mundo de NoSQL
Existen diferentes tipos de bases de datos NoSQL
Graph DB
Usadas para
almacenar
información de
relaciones de datos,
como conexiones
sociales.
25
El Mágico Mundo de NoSQL
Existen diferentes tipos de bases de datos NoSQL
Wide-column
stores
Almacenan datos en
columnas dinámicas
que pueden alcanzar
billones, pero
manejan un modo key-
value
26
El Mágico Mundo de NoSQL
Existen diferentes tipos de bases de datos NoSQL, aunque est
27
El Mágico Mundo de NoSQL
Existen diferentes tipos de bases de datos NoSQL
Document DBs
Asocian un key a una
estructura de datos
complejos que se le
denomina el
documento.
Graph DB
Usadas para
almacenar
información de
relaciones de datos,
como conexiones
sociales.
Key-Value Stores
La versión más
sencilla de NoSQL,
que almacena
únicamente un key y
un value. Y párale de
contar.
Wide-column
stores
Almacenan datos en
columnas dinámicas
que pueden alcanzar
billones, pero
manejan un modo key-
value
28
El Mágico Mundo de NoSQL
Existen diferentes tipos de bases de datos NoSQL
Document DBs
Asocian un key a una
estructura de datos
complejos que se le
denomina el
documento.
Graph DB
Usadas para
almacenar
información de
relaciones de datos,
como conexiones
sociales.
Key-Value Stores
La versión más
sencilla de NoSQL,
que almacena
únicamente un key y
un value. Y párale de
contar.
Wide-column
stores
Almacenan datos en
columnas dinámicas
que pueden alcanzar
billones, pero
manejan un modo key-
value
31
De MySQL a NoSQL en un ejemplo
Un excelente ejemplo de lo que es cambiar datos de una DB relacionable a NoSQL
32
Qué es el MongoDB?
Vamos entendiendo de qué estamos hablando
MongoDB es una base de datos gratuita y
open source orientada a documentos, la
cual maneja sus datos en JSON/BSON y en
la que encontramos que fue planeada
como distribuible/escalable desde su core
lo cual la hace altamente flexible y escalable
33
Qué es el MongoDB?
Vamos entendiendo de qué estamos hablando
34
Qué es el MongoDB?
Vamos entendiendo de qué estamos hablando
35
Qué es el MongoDB?
Vamos entendiendo de qué estamos hablando
36
Qué es el MongoDB?
Vamos entendiendo de qué estamos hablando
37
Entendiendo MongoDB
Cuáles son algunas de sus características principales
Utiliza documentos
similares a objetos JSON
Promueve el
polimorfismo de datos
Tiene Agregación de
Datos por medio de
MapReduce
Tiene Búsqueda de Datos
Viene con un core
enfocado en réplicas y
sharding
Interactuas desde tu
app a MongoDB por
medio de
drivers/librerías
Tiene una versión
enterprise
Múltiple soporte de
storage engines
Vamos a Ensuciarnos Las Manos un Poco
MongoDB es una confiable
solución NoSQL para
almacenamiento de datos, con
una gran comunidad, en
constante desarrollo y probada
para uso inmenso de datos
40
Donde he visto que MongoDB Brilla
Aquí es donde personalmente veo los beneficios de usar MongoDB
Web App a producción con
grandes cantidades de datos
Es una excelente opción para
crecer tu aplicación y usarla
desde el principio, no es algo
experimental ni que haya sido
testeado unas veces, MongoDB
funciona y funciona bastante
bien para un sistema en
producción.
Disponibilidad de comunidad
y soporte en múltiples
plataformas
A pesar de que se tienen que utilizar
diferentes librerías y drivers para
utilizar MongoDB, la disponibilidad
es bastante buena y no le he
encontrado limitantes en OS o
lenguaje de programación, aparte su
documentación es buena y tiene una
comunidad bastante activa
Sistemas Que se Expandirán
Rápidamente y que Necesitan DB
El sharding, clusters, réplicas, sin
queja alguna… otro elemento que
funciona bastante bien y hasta el
momento no he encontrado algún
problema con cualquiera de estas
funcionalidades.
41
Donde he visto que MongoDB Brilla
Otros ejemplos de donde brilla MongoDB
42
Donde he visto que MongoDB me Deja Abajo
Aquí es donde personalmente veo las desventajas de usar MongoDB
Recursos limitados de
hardware o donde no se puede
tener control total del
servidor
Si no tienes control completo de
tu servidor, no puedes instalar
cosas desde cero o no puedes
aumentar RAM fácilmente,
cuidado, a lo mejor MongoDB
no es para ti.
Tratar de hacer relaciones
complejas de datos
Obviamente no es para esto, pero si
se necesita, MongoDB puede ser un
costoso proceso para hacer algo que
una RDBMS puede hacer bastante
fácilmente.
No es una DB que dejas vivir,
es una DB que debe de ser
monitoreada
Nada es perfecto, MongoDB
necesita tweaks (en mi
experiencia) más frecuente que
otras DBs, esto no es
necesariamente malo, pero es
algo que tomar en cuenta.
Best Practices para entrar a
NoSQL
44
Pregúntate qué es lo
que requieres de tus
datos
Best Practices Personales
5 cosas que he aprendido en NoSQL
No te vayas por un
trend, ni por lo que te
contaron, investiga
algunos de los casos
de uso con los cual te
puedes topar en tu
desarrollo existente.
Investiga que DB
te da una mejor
solución o te
ahorra problemas
Lanzar un cluster de
elasticsearch a lo mejor
no es la mejor idea si sólo
necesitas búsquedas por
id. Necesitas replicación
de datos? Necesitas
sharding? tienes
limitantes de hardware?
Métete a los docs
El buen uso de tu DB de
NoSQL o de MongoDB
depende en gran parte
de cómo configuras tu
DB, tienes que leer y
tienes que aprender que
pasa en ella.
Revisa tus datos
Para darle un uso
óptimo, cambia
colecciones, cambia
índices, MongoDB
facilita estos cambios
y los hace bastante
sencillos, están
adaptadas para el
cambio constante -
aprovéchalo
Que no te de miedo
mezclar
Tu aplicación y tus
datos rigen el rumbo
de la DB a usar, no
ideologías o contratos.
Si en algún momento
necesitas tener 2 DBs,
tenlas y evitate
mantenimiento y
desarrollo innecesario.
db.meetuperos.insert( {
"knowledge": {
"nosql": true,
"option": [ "mongodb" ]
},
"presentation": "awesome"
}
)
Gracias!
Bienvenidas las preguntas, comentarios, quejas y sugerencias
omercadocoss@gmail.com
@omercadocoss
https://mx.linkedin.com/in/osvaldomercado
Querétaro Software
Development Meetup
Lecturas Recomendadas
Recomendaciones personales acerca del tema
Why NoSQL?
https://www.couchbase.com/resources/why-nosql
Getting Started with MongoDB
https://docs.mongodb.com/getting-started/shell/
What is an In-Memory Key-Value Store?
https://aws.amazon.com/es/nosql/key-value/
Martin Fowler: NoSQL
https://martinfowler.com/nosql.html
MongoDB at Scale
https://www.toptal.com/php/php-testing-with-codeception
Key Points from NoSQL Distilled
https://martinfowler.com/articles/nosqlKeyPoints.html
The Future is Polyglot Persistence
https://martinfowler.com/articles/nosql-intro-original.pdf
NoSQL Explained
https://www.mongodb.com/nosql-explained
What guarantees do Relational Databases (RDBMS)
provide with respect to safe data storage?
https://www.quora.com/What-guarantees-do-Relational-Databases-
RDBMS-provide-with-respect-to-safe-data-storage
NoSQL, No Problem: An Intro to NoSQL Databases
https://www.thoughtworks.com/insights/blog/nosql-no-problem-intro-nosql-databases
MongoDB Architecture
https://www.mongodb.com/mongodb-architecture
Qué es NoSQL?
https://aws.amazon.com/es/nosql/
Replication in MongoDB
https://docs.mongodb.com/manual/replication/
What is MapReduce
https://www.tutorialspoint.com/hadoop/hadoop_mapreduce.htm

Más contenido relacionado

La actualidad más candente (20)

Base de datos
Base de datosBase de datos
Base de datos
 
Conceptos de NoSoloSQL
Conceptos de NoSoloSQLConceptos de NoSoloSQL
Conceptos de NoSoloSQL
 
Modulo2
Modulo2Modulo2
Modulo2
 
Rila
RilaRila
Rila
 
Act 04 rivera_alfredo_bd
Act 04 rivera_alfredo_bdAct 04 rivera_alfredo_bd
Act 04 rivera_alfredo_bd
 
Sistemasgestoresdebasededatosrelacionales
SistemasgestoresdebasededatosrelacionalesSistemasgestoresdebasededatosrelacionales
Sistemasgestoresdebasededatosrelacionales
 
Actividad 4 presentacion escobar
Actividad 4 presentacion escobarActividad 4 presentacion escobar
Actividad 4 presentacion escobar
 
Smbd Codigo Abierto Y Licenciado Ultimo
Smbd Codigo Abierto Y Licenciado UltimoSmbd Codigo Abierto Y Licenciado Ultimo
Smbd Codigo Abierto Y Licenciado Ultimo
 
Principales bases de datos existente
Principales bases de datos existentePrincipales bases de datos existente
Principales bases de datos existente
 
Tipos de bases de datos por Juan del Ángel Oláez González
Tipos de bases de datos por Juan del Ángel Oláez GonzálezTipos de bases de datos por Juan del Ángel Oláez González
Tipos de bases de datos por Juan del Ángel Oláez González
 
Bases de Datos SQL y NoSQL
Bases de Datos SQL y NoSQLBases de Datos SQL y NoSQL
Bases de Datos SQL y NoSQL
 
Act1.7 nosql terminado corregido
Act1.7 nosql terminado corregidoAct1.7 nosql terminado corregido
Act1.7 nosql terminado corregido
 
Act1.7 nosql terminado
Act1.7 nosql terminadoAct1.7 nosql terminado
Act1.7 nosql terminado
 
Act4 bd moreno_joel
Act4 bd moreno_joelAct4 bd moreno_joel
Act4 bd moreno_joel
 
Taller 1
Taller 1Taller 1
Taller 1
 
Que es MongoDB
Que es MongoDBQue es MongoDB
Que es MongoDB
 
Base de datos
Base de datosBase de datos
Base de datos
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
 
Act4 base de_datos_guadalupe_monroy
Act4 base de_datos_guadalupe_monroyAct4 base de_datos_guadalupe_monroy
Act4 base de_datos_guadalupe_monroy
 
BASE DE DATOS
BASE DE DATOSBASE DE DATOS
BASE DE DATOS
 

Similar a Meetup: Sesion #2 MongoDB

Similar a Meetup: Sesion #2 MongoDB (20)

Meetup: Sesion #3 MongoDB - Pt 2
Meetup: Sesion #3 MongoDB - Pt 2Meetup: Sesion #3 MongoDB - Pt 2
Meetup: Sesion #3 MongoDB - Pt 2
 
Base de datos
Base de datosBase de datos
Base de datos
 
Act4 samuel dominguez._basesdedatos
Act4 samuel dominguez._basesdedatosAct4 samuel dominguez._basesdedatos
Act4 samuel dominguez._basesdedatos
 
Principales Bases de Datos
Principales Bases de DatosPrincipales Bases de Datos
Principales Bases de Datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
 
Act4 base datos_reyes_rosalba
Act4 base datos_reyes_rosalbaAct4 base datos_reyes_rosalba
Act4 base datos_reyes_rosalba
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
Presentacion power point
Presentacion power pointPresentacion power point
Presentacion power point
 
Base de datos
Base de datosBase de datos
Base de datos
 
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
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Que es una base de datos
Que es una base de datosQue es una base de datos
Que es una base de datos
 
Bases datos
Bases datosBases datos
Bases datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bases datos
Bases datosBases datos
Bases datos
 
Gestor de base de datos
Gestor de base de datosGestor de base de datos
Gestor de base de datos
 
Actv4_bd_moreno_joel
Actv4_bd_moreno_joelActv4_bd_moreno_joel
Actv4_bd_moreno_joel
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Último (16)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Meetup: Sesion #2 MongoDB

  • 2. La finalidad del Meetup es tener un lugar donde compartir experiencias (técnicas o no), ideas y tendencias en la industria de IT Querétaro Software Development Meetup
  • 3. Primera Regla del Meetup: tú hablas del Meetup Segunda Regla del Meetup: TÚ HABLAS del Meetup Tercera Regla del Meetup: TÚ HABLAS DEL MEETUP
  • 4. Teléfonos como en Cine Participen Regla del ⅔ en Dudas Términos en Inglés Presentes y en Itálicas Presentación disponible en SlideShare Guía de Acuerdo Común Para asegurarnos de llevarnos bien, vamos aclarando unas cosas Faltas de Ortografía y pochismos presentes 7: 50 pm nos vamos No hacer presentaciones para vender tu producto
  • 5. Una presentación en el 2010 cambió mi actitud y mis experiencias cada que participo en una presentación o conferencia, así como las expectativas que tengo de éstas. La triste historia de una presentación Una presentación de GMaps Expectativas Reales Cuales son sus expectativas del Meetup?
  • 6. Agenda Domain Specific Languages Introducción a NoSQL con MongoDB (Parte 1)
  • 7. Septiembre, 2017 Introducción a NoSQL Presentado por Osvaldo Mercado Coss con MongoDB (Parte 1) Querétaro Software Development Meetup
  • 8. 8 Osvaldo Mercado Coss Backend Developer por error ● De Guadalajara, México ● Senior Backend Developer en PSL Group ● Estudios en Multimedia, de alguna manera termine codeando en el backend ○ Stack: LA|EMP, PHP + Framework, NodeJS & Python ○ DevOps: Vagrant + Chef ○ DBs: MySQL/MariaDB, Amazon Aurora, CouchDB, Couchbase, MongoDB y desgraciadamente SQL Server ○ Interesado en Software Escalable, DevOps & Perros Un poco sobre mi: Hola! @omercadocoss omercadocoss@gmail.com https://mx.linkedin.com/in/osvaldomercado
  • 9. Agenda De DBs tradicional a NoSQL ¿Porqué MongoDB? Best Practices Conclusión MongoDB in Action NoSQL? 2017 y aún no sabes que és?!
  • 10. A NoSQL [...] database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases - en.wikipedia.org/wiki/NoSQL
  • 11. NoSQL-database defines NoSQL as ‘Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open- source and horizontally scalable.’. In other words, it's not a very precise definition. - ElasticSearch [1]
  • 12. Todo base de datos que NO tiene relaciones entre datos/tablas, lo catalogamos como NoSQL
  • 13. 13 Qué es lo que promueve una DB Relacional? 4 puntos básicos que conocer Organiza la información de entidades A partir de un identificador único, se establecen relaciones/mappings a otras entidades o atributos de ellas Uso de SQL Prácticamente todas las DB relacionales usan un tipo de SQL (Structured Query Language) para consultar y administrar la base de datos Siguen las 12 reglas de Codd Una DB relacional - en su mayoría - promueve el uso de un RDBMS por medio de las 12 reglas de Codd o gran parte de ellas. Los Datos deben de poder ser Relacionables… Sin necesidad de explicación...
  • 14. 14 Vamos entendiendo de qué estamos hablando La DB Relacional era la ley, y la Ley se Respetaba
  • 15. 15 Vamos entendiendo de qué estamos hablando La DB Relacional era la ley, y la Ley se Respetaba
  • 16. Tipo de Columna? Engine de DB? Tipo de Dato? Tipo de Índice? Tipo de Estructura de Índice? Tipo de Join? Uso de FK?
  • 17. 17 Dondé nos falló la DB Relacional? Un ejemplo claro de donde falla una DB relacional
  • 18. Las DBs NoSQL surgen por el resultado del crecimiento exponencial del internet y el crecimiento de las web apps. Google publica su investigación de BigTable en 2006 y Amazon, sobre Dynamo, en 2007 Why NoSQL Database? - Couchbase
  • 19. La necesidad de desarrollar ágilmente y de operar a cualquier escala Why NoSQL Database? - Couchbase
  • 20. 20 Qué es lo que promueve NoSQL? Traté de compilar algunos puntos en común Datos Masivos Cambiantes NoSQL está orientado a aplicaciones creadas con datos nuevos que pueden cambiar entre estructurados, semi- estructurados y poliformicos Se olvida de rigurosos schemas… Free for all! Deja estructuras rígidas de lado para poder facilitar operaciones en la DB. Deja A.C.I.D de lado (en veces) En veces, deja de garantizar este concepto a cambio de availability y scalability Está normalmente diseñado para escalar fácilmente / ser distribuida por medio de clusters NoSQL se enfoca en grandes cantidades de datos, por lo que su arquitectura es diferente
  • 21. 21 El Mágico Mundo de NoSQL Existen diferentes tipos de bases de datos NoSQL Document DBs Asocian un key a una estructura de datos complejos que se le denomina el documento. Graph DB Usadas para almacenar información de relaciones de datos, como conexiones sociales. Key-Value Stores La versión más sencilla de NoSQL, que almacena únicamente un key y un value. Y párale de contar. Wide-column stores Almacenan datos en columnas dinámicas que pueden alcanzar billones, pero manejan un modo key- value
  • 22. 22 El Mágico Mundo de NoSQL Existen diferentes tipos de bases de datos NoSQL Key-Value Stores La versión más sencilla de NoSQL, que almacena únicamente un key y un value. Y párale de contar.
  • 23. 23 El Mágico Mundo de NoSQL Existen diferentes tipos de bases de datos NoSQL Document DBs Asocian un key a una estructura de datos complejos que se le denomina el documento.
  • 24. 24 El Mágico Mundo de NoSQL Existen diferentes tipos de bases de datos NoSQL Graph DB Usadas para almacenar información de relaciones de datos, como conexiones sociales.
  • 25. 25 El Mágico Mundo de NoSQL Existen diferentes tipos de bases de datos NoSQL Wide-column stores Almacenan datos en columnas dinámicas que pueden alcanzar billones, pero manejan un modo key- value
  • 26. 26 El Mágico Mundo de NoSQL Existen diferentes tipos de bases de datos NoSQL, aunque est
  • 27. 27 El Mágico Mundo de NoSQL Existen diferentes tipos de bases de datos NoSQL Document DBs Asocian un key a una estructura de datos complejos que se le denomina el documento. Graph DB Usadas para almacenar información de relaciones de datos, como conexiones sociales. Key-Value Stores La versión más sencilla de NoSQL, que almacena únicamente un key y un value. Y párale de contar. Wide-column stores Almacenan datos en columnas dinámicas que pueden alcanzar billones, pero manejan un modo key- value
  • 28. 28 El Mágico Mundo de NoSQL Existen diferentes tipos de bases de datos NoSQL Document DBs Asocian un key a una estructura de datos complejos que se le denomina el documento. Graph DB Usadas para almacenar información de relaciones de datos, como conexiones sociales. Key-Value Stores La versión más sencilla de NoSQL, que almacena únicamente un key y un value. Y párale de contar. Wide-column stores Almacenan datos en columnas dinámicas que pueden alcanzar billones, pero manejan un modo key- value
  • 29.
  • 30.
  • 31. 31 De MySQL a NoSQL en un ejemplo Un excelente ejemplo de lo que es cambiar datos de una DB relacionable a NoSQL
  • 32. 32 Qué es el MongoDB? Vamos entendiendo de qué estamos hablando MongoDB es una base de datos gratuita y open source orientada a documentos, la cual maneja sus datos en JSON/BSON y en la que encontramos que fue planeada como distribuible/escalable desde su core lo cual la hace altamente flexible y escalable
  • 33. 33 Qué es el MongoDB? Vamos entendiendo de qué estamos hablando
  • 34. 34 Qué es el MongoDB? Vamos entendiendo de qué estamos hablando
  • 35. 35 Qué es el MongoDB? Vamos entendiendo de qué estamos hablando
  • 36. 36 Qué es el MongoDB? Vamos entendiendo de qué estamos hablando
  • 37. 37 Entendiendo MongoDB Cuáles son algunas de sus características principales Utiliza documentos similares a objetos JSON Promueve el polimorfismo de datos Tiene Agregación de Datos por medio de MapReduce Tiene Búsqueda de Datos Viene con un core enfocado en réplicas y sharding Interactuas desde tu app a MongoDB por medio de drivers/librerías Tiene una versión enterprise Múltiple soporte de storage engines
  • 38. Vamos a Ensuciarnos Las Manos un Poco
  • 39. MongoDB es una confiable solución NoSQL para almacenamiento de datos, con una gran comunidad, en constante desarrollo y probada para uso inmenso de datos
  • 40. 40 Donde he visto que MongoDB Brilla Aquí es donde personalmente veo los beneficios de usar MongoDB Web App a producción con grandes cantidades de datos Es una excelente opción para crecer tu aplicación y usarla desde el principio, no es algo experimental ni que haya sido testeado unas veces, MongoDB funciona y funciona bastante bien para un sistema en producción. Disponibilidad de comunidad y soporte en múltiples plataformas A pesar de que se tienen que utilizar diferentes librerías y drivers para utilizar MongoDB, la disponibilidad es bastante buena y no le he encontrado limitantes en OS o lenguaje de programación, aparte su documentación es buena y tiene una comunidad bastante activa Sistemas Que se Expandirán Rápidamente y que Necesitan DB El sharding, clusters, réplicas, sin queja alguna… otro elemento que funciona bastante bien y hasta el momento no he encontrado algún problema con cualquiera de estas funcionalidades.
  • 41. 41 Donde he visto que MongoDB Brilla Otros ejemplos de donde brilla MongoDB
  • 42. 42 Donde he visto que MongoDB me Deja Abajo Aquí es donde personalmente veo las desventajas de usar MongoDB Recursos limitados de hardware o donde no se puede tener control total del servidor Si no tienes control completo de tu servidor, no puedes instalar cosas desde cero o no puedes aumentar RAM fácilmente, cuidado, a lo mejor MongoDB no es para ti. Tratar de hacer relaciones complejas de datos Obviamente no es para esto, pero si se necesita, MongoDB puede ser un costoso proceso para hacer algo que una RDBMS puede hacer bastante fácilmente. No es una DB que dejas vivir, es una DB que debe de ser monitoreada Nada es perfecto, MongoDB necesita tweaks (en mi experiencia) más frecuente que otras DBs, esto no es necesariamente malo, pero es algo que tomar en cuenta.
  • 43. Best Practices para entrar a NoSQL
  • 44. 44 Pregúntate qué es lo que requieres de tus datos Best Practices Personales 5 cosas que he aprendido en NoSQL No te vayas por un trend, ni por lo que te contaron, investiga algunos de los casos de uso con los cual te puedes topar en tu desarrollo existente. Investiga que DB te da una mejor solución o te ahorra problemas Lanzar un cluster de elasticsearch a lo mejor no es la mejor idea si sólo necesitas búsquedas por id. Necesitas replicación de datos? Necesitas sharding? tienes limitantes de hardware? Métete a los docs El buen uso de tu DB de NoSQL o de MongoDB depende en gran parte de cómo configuras tu DB, tienes que leer y tienes que aprender que pasa en ella. Revisa tus datos Para darle un uso óptimo, cambia colecciones, cambia índices, MongoDB facilita estos cambios y los hace bastante sencillos, están adaptadas para el cambio constante - aprovéchalo Que no te de miedo mezclar Tu aplicación y tus datos rigen el rumbo de la DB a usar, no ideologías o contratos. Si en algún momento necesitas tener 2 DBs, tenlas y evitate mantenimiento y desarrollo innecesario.
  • 45. db.meetuperos.insert( { "knowledge": { "nosql": true, "option": [ "mongodb" ] }, "presentation": "awesome" } )
  • 46. Gracias! Bienvenidas las preguntas, comentarios, quejas y sugerencias omercadocoss@gmail.com @omercadocoss https://mx.linkedin.com/in/osvaldomercado Querétaro Software Development Meetup
  • 47. Lecturas Recomendadas Recomendaciones personales acerca del tema Why NoSQL? https://www.couchbase.com/resources/why-nosql Getting Started with MongoDB https://docs.mongodb.com/getting-started/shell/ What is an In-Memory Key-Value Store? https://aws.amazon.com/es/nosql/key-value/ Martin Fowler: NoSQL https://martinfowler.com/nosql.html MongoDB at Scale https://www.toptal.com/php/php-testing-with-codeception Key Points from NoSQL Distilled https://martinfowler.com/articles/nosqlKeyPoints.html The Future is Polyglot Persistence https://martinfowler.com/articles/nosql-intro-original.pdf NoSQL Explained https://www.mongodb.com/nosql-explained What guarantees do Relational Databases (RDBMS) provide with respect to safe data storage? https://www.quora.com/What-guarantees-do-Relational-Databases- RDBMS-provide-with-respect-to-safe-data-storage NoSQL, No Problem: An Intro to NoSQL Databases https://www.thoughtworks.com/insights/blog/nosql-no-problem-intro-nosql-databases MongoDB Architecture https://www.mongodb.com/mongodb-architecture Qué es NoSQL? https://aws.amazon.com/es/nosql/ Replication in MongoDB https://docs.mongodb.com/manual/replication/ What is MapReduce https://www.tutorialspoint.com/hadoop/hadoop_mapreduce.htm