Introducción a NoSQL

642
-1

Published on

Presentación introductoria

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

No Downloads
Views
Total Views
642
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
24
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Introducción a NoSQL

  1. 1. INTRODUCCIÓN A NOSQL Resum Executiu 東京‘ TOKIOTA
  2. 2. Base de datos relacionales  Nacen en los años 70 porque  Almacenamiento es caro  Los datos se normalizan  El almacenamiento se separa de la aplicación  Ventajas  Único modelo disponible por muchos años  Integración  Control de concurrencia東京‘ TOKIOTA Presentación de compañía
  3. 3. Base de datos relacionales  Desventajas  No esta preparado para cluster  Hardware caro  Coste de licencias  Limitar el desarrollo haciéndolo poco ágil  Con lógica de la aplicación  Join  Nuevo requisitos de escalabilidad continua東京‘ TOKIOTA Presentación de compañía
  4. 4. Desarrollo de software  Metodologías ágiles  Ciclos de desarrollo cortos  Constante evolución de requerimientos  Flexibilidad de diseño  Pero las bases de datos relacionales  Difíciles de evolucionar (migrar)  Pocos desarrolladores interactúan con la base de datos  Tienen un modelo diferente al que se usa en el desarrollo東京‘ TOKIOTA Presentación de compañía
  5. 5. Necesidades reales  Escalar horizontalmente  Resultados en tiempo real  Agilidad en el desarrollo  Modelo de datos flexibles  Bajo coste東京‘ TOKIOTA Presentación de compañía
  6. 6. Base de datos NoSQL  Nacen por las necesidades:  No usan el modelo relacional  Se ejecutan bien sobre clusters  Crecen horizontalmente (sharding)  Open-source  Sin schemas東京‘ TOKIOTA Presentación de compañía
  7. 7. Base de datos NoSQL  Ventajas  Veloces  Escalables  Se acoplan al modelo de objetos  Agiles  Desventajas  No son transaccionales – tampoco lo necesitan  No son ACID, son BASE  Consultas Ad-hoc limitadas  Modelo de escritura y modelo de lectura東京‘ TOKIOTA Presentación de compañía
  8. 8. Alta disponibilidad – Replica sets  Alta disponibilidad  Redundancia de datos  Recuperación en caso de desastre  Transparente a la aplicación  En caliente東京‘ TOKIOTA Presentación de compañía
  9. 9. Escribir Leer Primaria Driver Replicas asíncronas Leer Secundaria Leer Secundaria東京‘ TOKIOTA Presentación de compañía
  10. 10. Recuperación ante caidas Escribir Leer Primaria Driver Leer Secundaria Leer Secundaria東京‘ TOKIOTA Presentación de compañía
  11. 11. Recuperación ante caidas Primaria Escribir Driver Leer Primaria Leer Secundaria東京‘ TOKIOTA Presentación de compañía
  12. 12. Recuperación ante caidas Leer Secundaria Primaria Escribir Driver Leer Primaria Leer Secundaria東京‘ TOKIOTA Presentación de compañía
  13. 13. Sharding data{a , b} Key[0...100] Nodo Clave V 0 … 15 W 16 … 45 X 46 … 60 Y 61 … 75 V W X Y Z Z 76 … 100東京‘ TOKIOTA Presentación de compañía
  14. 14. Sharding - búsquedas Nodo Clave find{a=30} a 0 … 15 b 16 … 45 c 46 … 60 d 61 … 75 e 76 … 100 La query se envía a un solo nodo東京‘ TOKIOTA Presentación de compañía
  15. 15. Sharding - búsquedas Nodo Clave find{20>a<50} a 0 … 15 b 16 … 45 c 46 … 60 d 61 … 75 e 76 … 100 La query se envía a mas de un nodo東京‘ TOKIOTA Presentación de compañía
  16. 16. Sharding - búsquedas Nodo Clave find{b=hola} a 0 … 15 b 16 … 45 c 46 … 60 d 61 … 75 e 76 … 100 Tabla-Scan es igual de malo東京‘ TOKIOTA Presentación de compañía
  17. 17. Sharding - búsquedas Nodo Clave Crear índice sobre b a 0 … 15 find{b=hola} b 16 … 45 c 46 … 60 d 61 … 75 e 76 … 100 Penaliza un poco el coste de comunicación東京‘ TOKIOTA Presentación de compañía
  18. 18. Sharding - búsquedas Nodo Clave find{b=hola, a=51} a 0 … 15 b 16 … 45 c 46 … 60 d 61 … 75 e 76 … 100 Se envía solo a un nodo東京‘ TOKIOTA Presentación de compañía
  19. 19. Sharding - búsquedas Nodo Clave find{b=hola, a=51} a 0 … 15 b 16 … 45 c 46 … 60 d 61 … 75 e 76 … 100 Se envía solo a un nodo東京‘ TOKIOTA Presentación de compañía
  20. 20. Sharding – Order by …東京‘ TOKIOTA Presentación de compañía
  21. 21. Velocidad de lectura東京‘ TOKIOTA Presentación de compañía
  22. 22. Tipos de NoSQL y uso Tipo Uso Productos Key - Value Cache Redis MemCached Colum-Family Clave + multiples Cassandra columnas Amazon Simple DB Google BigTable HBase Documentales Guardar objetos enteros MongoDB con una clave RavenDB CrounchDB Azure Table Storage Grapho Guardan nodos y Neo4j relaciones entre nodos東京‘ TOKIOTA Presentación de compañía
  23. 23. Key-Value  Una única clave que apunta a un único ítem.東京‘ TOKIOTA Presentación de compañía
  24. 24. Column-Family  Es el mas parecido a SQL. Mantiene la información separada en columnas.東京‘ TOKIOTA Presentación de compañía
  25. 25. Documentos { "customer": { "id": 1, "name": "Martin", "billingAddress": [{"city": "Chicago"}], "orders": [{"id":99, "customerId":1, "orderItems":[ {"productId":27, "price": 32.45}], "shippingAddress":[{"city":"Chicago"}] "orderPayment":[{ "ccinfo":"1000-1000-1000-1000", "txnId":"abelif879rft", "billingAddress": {"city": "Chicago"} }], }] } }
  26. 26. Grafos Se representa por nodos que están unidos por relaciones, donde ambos tienen propiedades
  27. 27. ¿Qué pasa con BI? ¿Como hago vistas o DW? Aplicar una función por cada elemento de una colección Combina los elementos usando una operación
  28. 28. Ejemplo, cuanto he vendido de cada producto
  29. 29. Beneficios de MapReduce Preparado para gran volumen de información  Pero puedo hacer pruebas con pequeñas muestras Tolerable a fallos  Piso los datos porque los recalculo Seguro ante problemas de threading  No tocan la información de entrada
  30. 30. Implementaciones La implementación mas grande de Cassandra tiene 300 TB repartidos en 400 ordenadores Disney tiene los datos de usuarios y juegos repartidos en 1400 instancias de MongoDB Para un listado mas detallado visitar http://www.mongodb.org/display/DOCS/Producti on+Deployments
  31. 31. MUCHAS GRACIAS POR TU CONFIANZA Resum Executiu 東京‘ TOKIOTA
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×