Introducción a NoSQL
-
Upload
daniel-mazzini -
Category
Technology
-
view
586 -
download
0
description
Transcript of Introducción a NoSQL
![Page 1: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/1.jpg)
Resum Executiu 東京‘TOKIOTA
INTRODUCCIÓN A NOSQL
![Page 2: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/2.jpg)
Presentación de compañía東京‘ TOKIOTA
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
![Page 3: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/3.jpg)
Presentación de compañía東京‘ TOKIOTA
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
![Page 4: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/4.jpg)
Presentación de compañía東京‘ TOKIOTA
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
![Page 5: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/5.jpg)
Presentación de compañía東京‘ TOKIOTA
Necesidades reales
Escalar horizontalmente
Resultados en tiempo real
Agilidad en el desarrollo
Modelo de datos flexibles
Bajo coste
![Page 6: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/6.jpg)
Presentación de compañía東京‘ TOKIOTA
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
![Page 7: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/7.jpg)
Presentación de compañía東京‘ TOKIOTA
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
![Page 8: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/8.jpg)
Presentación de compañía東京‘ TOKIOTA
Alta disponibilidad – Replica sets
Alta disponibilidad
Redundancia de datos
Recuperación en caso de desastre
Transparente a la aplicación
En caliente
![Page 9: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/9.jpg)
Presentación de compañía東京‘ TOKIOTA
Primaria
Secundaria
Secundaria
Dri
ver
Escribir
Leer
Leer
Leer
Replicas asíncronas
![Page 10: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/10.jpg)
Presentación de compañía東京‘ TOKIOTA
Recuperación ante caidas
Primaria
Secundaria
Secundaria
Dri
ver
Escribir
Leer
Leer
Leer
![Page 11: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/11.jpg)
Presentación de compañía東京‘ TOKIOTA
Recuperación ante caidas
Primaria
Secundaria
Dri
ver Escribir
Leer
Leer
Primaria
![Page 12: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/12.jpg)
Presentación de compañía東京‘ TOKIOTA
Recuperación ante caidas
Primaria
Secundaria
Dri
ver Escribir
Leer
Leer
PrimariaSecundariaLeer
![Page 13: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/13.jpg)
Presentación de compañía東京‘ TOKIOTA
Sharding
Key[0...100]
V
Nodo Clave
V 0 … 15
W 16 … 45
X 46 … 60
Y 61 … 75
Z 76 … 100
data{a , b}
W X Y Z
![Page 14: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/14.jpg)
Presentación de compañía東京‘ TOKIOTA
Sharding - búsquedas
Nodo Clave
a 0 … 15
b 16 … 45
c 46 … 60
d 61 … 75
e 76 … 100
find{a=30}
La query se envía a un solo nodo
![Page 15: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/15.jpg)
Presentación de compañía東京‘ TOKIOTA
Sharding - búsquedas
Nodo Clave
a 0 … 15
b 16 … 45
c 46 … 60
d 61 … 75
e 76 … 100
find{20>a<50}
La query se envía a mas de un nodo
![Page 16: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/16.jpg)
Presentación de compañía東京‘ TOKIOTA
Sharding - búsquedas
Nodo Clave
a 0 … 15
b 16 … 45
c 46 … 60
d 61 … 75
e 76 … 100
find{b=hola}
Tabla-Scan es igual de malo
![Page 17: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/17.jpg)
Presentación de compañía東京‘ TOKIOTA
Sharding - búsquedas
Nodo Clave
a 0 … 15
b 16 … 45
c 46 … 60
d 61 … 75
e 76 … 100
Crear índice sobre b
find{b=hola}
Penaliza un poco el coste de comunicación
![Page 18: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/18.jpg)
Presentación de compañía東京‘ TOKIOTA
Sharding - búsquedas
Nodo Clave
a 0 … 15
b 16 … 45
c 46 … 60
d 61 … 75
e 76 … 100
find{b=hola, a=51}
Se envía solo a un nodo
![Page 19: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/19.jpg)
Presentación de compañía東京‘ TOKIOTA
Sharding - búsquedas
Nodo Clave
a 0 … 15
b 16 … 45
c 46 … 60
d 61 … 75
e 76 … 100
find{b=hola, a=51}
Se envía solo a un nodo
![Page 20: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/20.jpg)
Presentación de compañía東京‘ TOKIOTA
Sharding – Order by …
![Page 21: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/21.jpg)
Presentación de compañía東京‘ TOKIOTA
Velocidad de lectura
![Page 22: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/22.jpg)
Presentación de compañía東京‘ TOKIOTA
Tipos de NoSQL y uso
Tipo Uso Productos
Key - Value Cache Redis
MemCached
Colum-Family Clave + multiples
columnas
Cassandra
Amazon Simple DB
Google BigTable
HBase
Documentales Guardar objetos enteros
con una clave
MongoDB
RavenDB
CrounchDB
Azure Table Storage
Grapho Guardan nodos y
relaciones entre nodos
Neo4j
![Page 23: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/23.jpg)
Presentación de compañía東京‘ TOKIOTA
Key-Value
Una única clave que apunta a un único ítem.
![Page 24: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/24.jpg)
Presentación de compañía東京‘ TOKIOTA
Column-Family
Es el mas parecido a SQL. Mantiene la información
separada en columnas.
![Page 25: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/25.jpg)
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"}
}],
}]
}
}
![Page 26: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/26.jpg)
Grafos
Se representa por nodos que están unidos por
relaciones, donde ambos tienen propiedades
![Page 27: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/27.jpg)
¿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
![Page 28: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/28.jpg)
Ejemplo, cuanto he vendido de cada producto
![Page 29: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/29.jpg)
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
![Page 30: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/30.jpg)
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
![Page 31: Introducción a NoSQL](https://reader034.fdocuments.ec/reader034/viewer/2022052215/55661391d8b42a7d608b47fb/html5/thumbnails/31.jpg)
Resum Executiu 東京‘TOKIOTA
MUCHAS GRACIAS POR TU CONFIANZA