SlideShare una empresa de Scribd logo
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

Base de datos
Base de datosBase de datos
Base de datos
Dario Aguirre Monico
 
Conceptos de NoSoloSQL
Conceptos de NoSoloSQLConceptos de NoSoloSQL
Conceptos de NoSoloSQL
Creatif comunicación proactiva
 
Modulo2
Modulo2Modulo2
Modulo2
dorysvalero
 
Rila
RilaRila
Rila
RIC LA
 
Act 04 rivera_alfredo_bd
Act 04 rivera_alfredo_bdAct 04 rivera_alfredo_bd
Act 04 rivera_alfredo_bd
alfredo rivera pavon
 
Sistemasgestoresdebasededatosrelacionales
SistemasgestoresdebasededatosrelacionalesSistemasgestoresdebasededatosrelacionales
Sistemasgestoresdebasededatosrelacionales
Rafael Navarro Prieto
 
Actividad 4 presentacion escobar
Actividad 4 presentacion escobarActividad 4 presentacion escobar
Actividad 4 presentacion escobar
Juan Fernando Escobar Rivera
 
Smbd Codigo Abierto Y Licenciado Ultimo
Smbd Codigo Abierto Y Licenciado UltimoSmbd Codigo Abierto Y Licenciado Ultimo
Smbd Codigo Abierto Y Licenciado UltimoArmando
 
Principales bases de datos existente
Principales bases de datos existentePrincipales bases de datos existente
Principales bases de datos existente
adricarlosfernando
 
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
Ángel Oláez
 
Bases de Datos SQL y NoSQL
Bases de Datos SQL y NoSQLBases de Datos SQL y NoSQL
Bases de Datos SQL y NoSQL
CONALEP
 
Act1.7 nosql terminado corregido
Act1.7 nosql terminado corregidoAct1.7 nosql terminado corregido
Act1.7 nosql terminado corregido
Rafael Navarro Prieto
 
Act1.7 nosql terminado
Act1.7 nosql terminadoAct1.7 nosql terminado
Act1.7 nosql terminado
Rafael Navarro Prieto
 
Act4 bd moreno_joel
Act4 bd moreno_joelAct4 bd moreno_joel
Act4 bd moreno_joel
joel28
 
Base de datos
Base de datosBase 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
Diego López-de-Ipiña González-de-Artaza
 
Act4 base de_datos_guadalupe_monroy
Act4 base de_datos_guadalupe_monroyAct4 base de_datos_guadalupe_monroy
Act4 base de_datos_guadalupe_monroy
Guadalupe Monroy
 
BASE DE DATOS
BASE DE DATOSBASE DE DATOS
BASE DE DATOS
Ken Castañeda Colina
 

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

Meetup: Sesion #3 MongoDB - Pt 2
Meetup: Sesion #3 MongoDB - Pt 2Meetup: Sesion #3 MongoDB - Pt 2
Meetup: Sesion #3 MongoDB - Pt 2
Osvaldo Mercado Coss
 
Base de datos
Base de datosBase de datos
Act4 samuel dominguez._basesdedatos
Act4 samuel dominguez._basesdedatosAct4 samuel dominguez._basesdedatos
Act4 samuel dominguez._basesdedatos
eskrapi dominguez
 
Principales Bases de Datos
Principales Bases de DatosPrincipales Bases de Datos
Principales Bases de Datos
reynayuc
 
Base de datos
Base de datosBase de datos
Base de datos
Ana Karen Hernandez
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
Dolores Leonor
 
Act4 base datos_reyes_rosalba
Act4 base datos_reyes_rosalbaAct4 base datos_reyes_rosalba
Act4 base datos_reyes_rosalba
Rozzi Reyes
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
Catalina Blancas
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
chackws
 
Presentacion power point
Presentacion power pointPresentacion power point
Presentacion power point
Jose Manzano
 
Base de datos
Base de datosBase de datos
Base de datos
veronica andrade
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
Dolores Leonor
 
Bases de datos
Bases de datosBases de datos
Bases de datos
Alfredo Martinez Hdez
 
Bases de datos
Bases de datosBases de datos
Bases de datos
Ing Edgar Mtz
 
Que es una base de datos
Que es una base de datosQue es una base de datos
Que es una base de datos
HectorJuarez49
 
Bases datos
Bases datosBases datos
Bases datos
fredy Castañeda
 
Base de datos
Base de datosBase de datos
Bases datos
Bases datosBases datos
Bases datos
Profe Ozzy
 
Gestor de base de datos
Gestor de base de datosGestor de base de datos
Gestor de base de datos
ana leydi linares serrano
 
Actv4_bd_moreno_joel
Actv4_bd_moreno_joelActv4_bd_moreno_joel
Actv4_bd_moreno_joel
joel28
 

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

Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 

Último (20)

Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 

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