Introducción a NoSQL con MongoDB
Upcoming SlideShare
Loading in...5
×
 

Introducción a NoSQL con MongoDB

on

  • 4,899 views

Introducción a NoSQL y a MongoDB.

Introducción a NoSQL y a MongoDB.
Charla dada en el Gulev 2010 en Veracruz, México.

Statistics

Views

Total Views
4,899
Views on SlideShare
4,694
Embed Views
205

Actions

Likes
4
Downloads
147
Comments
0

9 Embeds 205

http://weblogs.javahispano.org 79
http://cores.gl 65
http://www.slideshare.net 26
http://klippr.co 25
http://webcomparte.cl 4
http://webcache.googleusercontent.com 2
http://www.linkedin.com 2
http://planeta.javahispano.org 1
https://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Introducción a NoSQL con MongoDB Introducción a NoSQL con MongoDB Presentation Transcript

  • NoSQL con MongoDB Erick Camacho @ecamacho erick.camacho@tidyslice.com 1
  • Agenda • ¿Por qué? • ¿Cómo? • Opciones • Mongo 2
  • Si tienes un martillo... 3
  • todo parece un clavo 4
  • NoSQL es acerca de elegir la herramienta adecuada. 5
  • Motivaciones 6
  • El performance es el Rey 7
  • El acceso a datos es el principal cuello de botella 8
  • ¿Cómo escalas un RDBMS? 9
  • Escalamiento Vertical • Más recursos para el servidor: CPU, RAM, interfaces de red, etc. 10
  • Escalamiento Vertical "#$%&'%! "#$%&'%! )$*+,-(*%-$% ./0,1"1,(2$#% !"#$% &$% &"'(#% ! 11
  • Escalamiento Vertical "#$%&'%! "#$%&'%! "#$%&'%! "#$%&'%! "#$%&'%! "#$%&'%! "#$%&'%! )$*+,-(*%-$% )$*+,-(*%-$% )$*+,-(*%-$% )$*+,-(*%-$% ./0,1"1,(2$#% ./0,1"1,(2$#% ./0,1"1,(2$#% ./0,1"1,(2$#% !"#$% !"#$% &$% &$% &"'(#% &"'(#% ! ! 11
  • Escalamiento Vertical "#$%&'%! "#$%&'%! "#$%&'%! "#$%&'%! "#$%&'%! "#$%&'%! "#$%&'%! )$*+,-(*%-$% )$*+,-(*%-$% )$*+,-(*%-$% )$*+,-(*%-$% ./0,1"1,(2$#% ./0,1"1,(2$#% ./0,1"1,(2$#% ./0,1"1,(2$#% !"#$% !"#$% &$% &$% &"'(#% &"'(#% ! ! 11
  • Escalamiento vertical • Limitado por hardware • Arquitectura con problemas de bottlenecks 12
  • Escalamiento Horizontal • Las RDBMS no se adaptan a esta arquitectura • ¿TX distribuidas? Muy costosas • ¿Cómo distribuyes las escrituras? • ¿Shardening? • ¿Desnormalización? 13
  • Escalamiento horizontal • Replicación Maestro - Esclavo • Replicación Maestro (escrituras)- MultiEsclavos (lecturas) • Replicación MultiMaestro (shardening) 14
  • Escalamiento Horizontal • ¿Qué pasa con las escrituras? • ¿Cómo escalas las transacciones? • ¿y el shardening? 15
  • ¿Todo dominio es relacional? 16
  • ¿Todo debe ser transaccional? • A: Atomicity • C: Consistency • I: Isolated • D: Durability 17
  • Teorema CAP ! "#$%&%'($)*! +,-&.-/&.&'*! 0-1'&'&#$! 2#.(1-$)(! 18
  • Teorema CAP ! "#$%&%'($)*! ! "#$%&! +,-&.-/&.&'*! 0-1'&'&#$! 2#.(1-$)(! 18
  • NoSQL: tú decides 19
  • NoSQL: tú decides Pensar es difícil 19
  • Categorías de soluciones NoSQL 20
  • Orientadas a Objetos • El tipo más viejo (1980’s) • Permite herencia entre tablas, polimorfismo. • Lenguaje de consulta orientado a objetos. • Ha influenciado la evolución de las RDBMS (sql 99, Oracle, Postgres, etc). 21
  • Orientadas a Objetos 22
  • Key-Value • Sólo almacenan dos cosas: 1 campo clave asociado a 1 dato binario. • Operaciones Put, Get, Delete. • Piensa en una HashTable distribuida. • Todo en memoria, algunas persisten a disco de forma asíncrona. • Útil como cache en combinación con una RDBMS. 23
  • Key - Value Wordpress Youtube memcached Twitter Craiglist GitHub Redis The Guardian Proyecto Voldemort LinkedIn 24
  • Key - Value • Muy útiles para entornos distribuidos. • Alto performance. • Lenguaje de consulta muy pobre. Requiere procesamiento externo de los datos. 25
  • Orientadas a documentos • Iguales a las Key - Value, pero el dato no es binario. • Debe ser un formato que el servidor entienda: XML, JSON, BSON.. • Permite consultas más complejas sobre atributos. • Son usadas como sustituto de las RDBMS. 26
  • Orientadas a documento foursquare sourceForge Justin.tv SimpleDB 27
  • Orientadas a columnas • La información se representa en columnas. • Mayor rapidez para consultas sobre pocas columnas. • Mayor rapidez para agregados. • Peor performance para escrituras. 28
  • Orientadas a columnas 29
  • Orientadas a columnas 29
  • Orientadas a columnas 29
  • Orientadas a Columnas facebook twitter digg reddit BigTable 30
  • Orientadas a Grafos • Datos como nodos y relaciones. • Las relaciones pueden ser bidireccionales y tener atributos. • Permite hacer consultas complejas a relaciones. • Permite gran velocidad de recorrido de las relaciones. 31
  • Orientadas a Grafos 32
  • ¿Cuál usar? 33
  • ¿Cuál usar? Depende de tus requerimientos 33
  • Nathan Hurst http://blog.nahurst.com/visual-guide-to-nosql-systems 34
  • ¿Y si tenemos de varios tipos en una misma aplicación? 35
  • • Orientado a Documento. • Usa el formato BSON: Binary JSON. • Permite consultas muy avanzadas. • Preparado para escalar horizontalmente. • Open source con soporte comercial con 10Gen. 36
  • DEMO 37
  • Preguntas 38