Successfully reported this slideshow.

Bases de datos NoSQL - Huancayo - 2010

0

Share

Loading in …3
×
1 of 57
1 of 57

Bases de datos NoSQL - Huancayo - 2010

0

Share

Download to read offline

Una introducción a las bases de datos agrupadas bajo la etiqueta "NoSQL", conceptos relacionados y problemática que origina su creación y evolución.

Una introducción a las bases de datos agrupadas bajo la etiqueta "NoSQL", conceptos relacionados y problemática que origina su creación y evolución.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Bases de datos NoSQL - Huancayo - 2010

  1. 1. Bases de Datos NoSQL Antonio Ognio antonio@ognio.com
  2. 2. Conceptos básicos
  3. 3. Rendimiento Capacidad de llevar a cabo una tarea comparada con los recursos utilizados Si un sistema puede hacer más que otro usando la misma cantidad de recursos entonces tiene un mayor rendimiento
  4. 4. Alta disponibilidad Capacidad de un sistema de ofrecer cierto nivel de funcionalidad y servicio en sus operaciones de manera ininterrumpida. Generalmente esto requiere tener servidores redundantes, replicar la información y ofrecer tolerancia a los fallos
  5. 5. Escalabilidad Generalmente requiere piezas independientes, particionamiento de la información y tolerancia a los fallos Capacidad de un sistema de poder crecer en número de usuarios y operaciones realizadas de manera continua sin que la calidad de su servicio se vea afectada .
  6. 6. Tipos de escalabilidad Vertical: El sistema cree al usuario equipos más potentes y con más recursos. Horizontal: El sistema crece dividiendo la carga de trabajo entre más equipos de las mismas características
  7. 7. Tolerancia a fallos Capacidad de un sistema de poder recuperarse en caso de que alguno de sus componentes falle o deje de operar. Generalmente mente requiere utilizar equipos con funciones redundantes y replicar la información constantemente.
  8. 8. Sistema Distribuido Es un sistema en el que las características ofrecidas solo se logran entregar utilizando distintos equipos trabajando en simultáneo de manera conjunta y colaborativa.
  9. 9. Modelo Relacional Las entidades del dominio del problema se modelan como tablas Las tablas tienen columnas y registros Los atributos van como columnas y son los mismos para todos los registros Cada tabla tiene una estructura definida (Schema) Las relaciones se logran asociando los valores de ciertas columnas de una tabla con ciertas columnas de otras tablas
  10. 10. ACID Atomicidad (Atomicity) Consistencia (Consistency) Independencia (Isolation) Durabilidad (Durability)
  11. 11. Teorema CAP Solo es posible obtener dos de las propiedades al mismo tiempo
  12. 12. Map/Reduce Estrategia para calcular un resultado que divide la entrada de datos en un montón de partes procesadas independientemente en paralelo para luego consolidar todos los resultados en un solo valor o conjunto.
  13. 13. NoSQL (No solo SQL)
  14. 14. Motivaciones Enormes volúmenes de datos Dificultad de escalar operaciones de escritura Dificultad de gestionar esquemas a gran escala Necesidad de mayor velocidad y rendimiento
  15. 15. Datos en Facebook 1 980 millones de HD de 500 GB 6 veces en 4 años 988 EB 322 millones de HD de 500GB 161 EB 2006 2010
  16. 16. Características No relacionales Distribuídas Escalabilidad horizontal Schema-less (Sin estructura) Eventualmente consistentes
  17. 17. Categorías Key-Value stores Document stores Column-oriented stores Graph Databases
  18. 18. Key-Value Store hash / diccionario Memcached Dynamo (inspiración de otras) Redis Riak Tokyo Cabinet
  19. 19. Document Stores semi-estructuradas IBM Lotus MongoDB CouchDB
  20. 20. Column-Oriented Stores semi-estructuradas BigTable (inspiración de otras) HBase Cassandra Hypertable
  21. 21. Graph Database InfoGrid Neo4j
  22. 22. Mongo DB orientada a documentos Documentos estilo JSON (BSON) Colección (Similar a tabla) Consultas simples con JSON Consultas complejas con Map/Reduce empleando Javascript
  23. 23. Apache Cassandra orientada a columnas Creada por Facebook Particionamiento automático Enfoque en op. de escritura Consistencia ajustable (CAP) Servidor en Java usando Thrift
  24. 24. Modelo de datos de Cassandra
  25. 25. Si solo tienes un martillo, todo te parece un clavo.
  26. 26. REDIS (Remote Dictionary Server)
  27. 27. “La memoria es el nuevo disco, el disco es la nueva cinta” — jim gray
  28. 28. Fortalezas Disco duro - durabilidad - capacidad - acceso sequencial (= “cinta”) memoria - acceso aleatorio - baja latencia
  29. 29. Latencia relativa Registros 0.1 Memoria Cache 1 Memoria RAM 10 Disco Duro 1.000.000
  30. 30. Latencia relativa Registros 0.1 Memoria Cache 1 Memoria RAM 10 Disco Duro 1.000.000
  31. 31. flickr.com/photos/36688133@N00/3655892919
  32. 32. Berlin - Londres F-16 6 minutos Avión 1 hora Tren 10 horas Automóvil 114 años malogrado
  33. 33. flickr.com/photos/64498037@N00/3107322938
  34. 34. redis flickr.com/photos/atzu/2645776918
  35. 35. benchmark 4897 GET/s 5128 SET/s code.google.com/p/redis/wiki/Benchmarks
  36. 36. flickr.com/photos/mbiddulph/3836727468
  37. 37. sheeva plug flickr.com/photos/mbiddulph/3836727468
  38. 38. sheeva plug $99 99 flickr.com/photos/mbiddulph/3836727468
  39. 39. Características Estructuras de datos - enteros, cadenas - listas, conjuntos, diccionarios - canales Operaciones atómicas - get, set, increment - push, pop ...
  40. 40. Características Memoria virtual - llaves siempre en memoria - Intercambio sobre demanda Durabilidad - append-only log file - background snapshots Replicación
  41. 41. Implementación - 10k lineas de ANSI C - Base de código clara y legible - Salvatore Sanfilipo (Italia) - Sponsor de VMware
  42. 42. Librerías cliente - redis-cli, telnet - c, c# - ruby, python, perl - java, scala - php - [muchas más ...]
  43. 43. Instalación en Linux (UNIX en general) > wget redis.tgz > tar xzf redis.tgz > cd redis > make > ./redis-server
  44. 44. CADENAS SET GET DEL GETSET MGET INCR / DECR
  45. 45. LISTAS RPUSH / RPOP LPUSH / LPOP LRANGE RPOPLPUSH SORT
  46. 46. CONJUNTOS (SETS) SADD / SREM SMOVE SINTER / SINTERSTORE SUNION / SUNIONSTORE SDIFF / SDIFFSTORE SORT
  47. 47. CONJUNTOS ORDENADOS (ZSETS) ZADD ZREM ZRANGE ? ZINTER / ZUNION / ZDIFF ?
  48. 48. DICCIONARIOS (HASHES) HSET HGET HDEL HGETALL HEXISTS
  49. 49. EJEMPLO: BLOG (BITÁCORA DE INTERNET) posts:contador (COUNTER) post:id:1 (HASH) post:id:1:tags (SET) tag:nombre:posts (ZSET) posts (ZSET)
  50. 50. EJEMPLO: BLOG (CONTINUACION) tags (SET) posts:mes:<m>:anio:<a> (ZSET) post:slug:<slug> (STRING) meses (ZSET) visitas (ZSET)
  51. 51. Aplicación de Ejemplo: - Un blog muy simple escrito en PHP - No usa ningún framework MVC o mapeador de objetos - La interacción con Redis está en el archivo modelos.inc.php http://bitbucket.org/nosqldemos/redis-blog-demo/ Un agradecimiento a Ernesto Anaya (texai) por el trabajo en CSS.
  52. 52. Resúmen - NoSQL = No solo SQL - Elegir la herramienta adecuada - No hay que cruzar la línea roja - Nueva manera de modelar - Casi todos productos opensource - Redis es simple y bastante flexible
  53. 53. ENLACES http://redis.io http://code.google.com/p/redis/ http://rediscookbook.org http://mongodb.org http://cassandra.apache.org
  54. 54. preguntas
  55. 55. Créditos Algunos slides y la plantilla de la presentación tomadas desde: http://www.slideshare.net/tim.lossen.de/redis-memory-as-the-new-disk
  56. 56. Bases de Datos NoSQL Antonio Ognio antonio@ognio.com

×