MongoDB - Madrid Devops Febrero

3,297 views

Published on

Charla introductoria sobre MongoDB en la reunión de Febrero del 2012 del grupo Madrid DevOps

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,297
On SlideShare
0
From Embeds
0
Number of Embeds
1,589
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MongoDB - Madrid Devops Febrero

  1. 1. Introducción a MongoDB
  2. 2. Índice <ul><li>Cuando usar NoSQL
  3. 3. Cuando no usar NoSQL
  4. 4. Vistazo a MongoDB
  5. 5. Otras características
  6. 6. Esquema básico
  7. 7. Replicación
  8. 8. Auto-sharding
  9. 9. Arquitectura
  10. 10. Primeros pasos
  11. 11. Backup </li></ul>
  12. 12. ¿Cuando usar NoSQL? <ul><li>Cachear
  13. 13. Alto volumen de datos
  14. 14. Escalabilidad horizontal(sin joins ni transacciones complejas)
  15. 15. El lema es ”No sólo SQL” no ”sólo NoSQL” </li></ul>
  16. 16. ¿Cuando no usar NoSQL? <ul><li>Alto nivel transaccional
  17. 17. Business Intelligence
  18. 18. Problemas que requieren sentencias relacionales </li></ul>
  19. 19. Vistazo a MongoDB <ul><li>Orientado a documentos (formato BSON)
  20. 20. Esquema flexible
  21. 21. Queries dinámicas
  22. 22. Replicación
  23. 23. Auto-sharding
  24. 24. Operaciones atómicas
  25. 25. Índices completos </li></ul>
  26. 26. Vistazo a MongoDB <ul><li>No relacional
  27. 27. Distribuida
  28. 28. Opensource
  29. 29. Escalable horizontalmente
  30. 30. Drivers para casi todos los lenguajes
  31. 31. Replicación y sharding automático
  32. 32. GridFS </li></ul>
  33. 33. Otras características <ul><li>Map Reduce </li><ul><li>Queries se ejecutan en paralelo en todos los shards
  34. 34. Adición y procesamiento de datos flexible </li></ul><li>Indexación Geoespacial </li><ul><li>Encuentra objetos basándose en su localización geográfica </li></ul></ul>
  35. 35. Esquema básico <ul><li>Servidor de base de datos
  36. 36. Shell
  37. 37. Sharding router </li></ul>Mongod Database server Mongo Interactive shell Mongos Sharding router
  38. 38. Replicación <ul><li>Master: mongod –master
  39. 39. Slave: mongod –source url:port o pasivo –slavedelay numberofseconds
  40. 40. Replica Sets </li><ul><li>Soporte completo ante caídas(recomendado para cada shard usado)
  41. 41. Se pueden tener miembros pasivos que nunca serán primarios </li></ul><li>Master-master </li><ul><li>Sólo recomendable para operaciones de insert o delete por id </li></ul></ul>
  42. 42. Auto-sharding <ul><li>Definido por una clave shard
  43. 43. La respuesta ante caídas se maneja mediante replica sets de cada shard
  44. 44. Las queries map reduce pueden correr en paralelo entre varios shards
  45. 45. Se pueden añadir servidores como shards y automáticamente se empiezan a repartir los datos entre ellos </li></ul>
  46. 46. Fragmentación
  47. 47. Fragmentación
  48. 48. Arquitectura <ul><li>Shards Servers: mongod –shardsvr
  49. 49. Se puede configurar replicación para cubrirse ante caídas.
  50. 50. Shards Routers: mongos –configdb urlconfig:portconfig
  51. 51. Actua como la shell para el resto de clientes
  52. 52. Puede ejecutarse en un servidor de aplicaciones para reducir el tráfico
  53. 53. Config Routers:mongod –configsvr
  54. 54. Recomendado un grupo de 3 </li></ul>
  55. 55. Arquitectura lógica
  56. 56. Detalle importante <ul><li>_id </li><ul><li>Special key
  57. 57. Presente en todos los documentos(objetos) almacenados
  58. 58. Única en cada colección
  59. 59. Del tipo que se desee </li></ul></ul>
  60. 60. Primeros pasos sharding <ul><li>use admin
  61. 61. db.runCommand( { addshard : &quot;pre-mongo1:10000&quot; } );
  62. 62. db.runCommand( { addshard : &quot;pre-mongo2:10000&quot; } );
  63. 63. db.runCommand( { enablesharding : &quot;activities&quot; } );
  64. 64. db.runCommand( { shardcollection : &quot;activities.userWall&quot; , key : { userId: 1 } } );
  65. 65. db.printShardingStatus() </li></ul>
  66. 66. Backup <ul><li>EC2 -> Snapshot EBS
  67. 67. LVM-> Snapshot LV
  68. 68. FS->mysqldump, dd (poco recomendable)
  69. 69. Punto débil de Mongo con instalación en sharding.
  70. 70. Más detalles en http://bit.ly/wNdlIA </li></ul>
  71. 71. Preguntas
  72. 72. Contacto <ul><li>Twitter: @jvicenteherrera
  73. 73. LinkedIn: http://es.linkedin.com/in/jvherrera
  74. 74. Blog: http://www.juanvicenteherrera.es </li></ul>

×