introducción a nosql

31
Resum Executiu 東京TOKIOTA INTRODUCCIÓN A NOSQL

Upload: daniel-mazzini

Post on 28-May-2015

584 views

Category:

Technology


0 download

DESCRIPTION

Presentación introductoria

TRANSCRIPT

Page 1: Introducción a NoSQL

Resum Executiu 東京‘TOKIOTA

INTRODUCCIÓN A NOSQL

Page 2: Introducción a NoSQL

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

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

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

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

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

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

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

Presentación de compañía東京‘ TOKIOTA

Primaria

Secundaria

Secundaria

Dri

ver

Escribir

Leer

Leer

Leer

Replicas asíncronas

Page 10: Introducción a NoSQL

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

Presentación de compañía東京‘ TOKIOTA

Recuperación ante caidas

Primaria

Secundaria

Dri

ver Escribir

Leer

Leer

Primaria

Page 12: Introducción a NoSQL

Presentación de compañía東京‘ TOKIOTA

Recuperación ante caidas

Primaria

Secundaria

Dri

ver Escribir

Leer

Leer

PrimariaSecundariaLeer

Page 13: Introducción a NoSQL

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

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

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

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

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

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

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

Presentación de compañía東京‘ TOKIOTA

Sharding – Order by …

Page 21: Introducción a NoSQL

Presentación de compañía東京‘ TOKIOTA

Velocidad de lectura

Page 22: Introducción a NoSQL

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

Presentación de compañía東京‘ TOKIOTA

Key-Value

Una única clave que apunta a un único ítem.

Page 24: Introducción a NoSQL

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

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

Grafos

Se representa por nodos que están unidos por

relaciones, donde ambos tienen propiedades

Page 27: Introducción a NoSQL

¿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

Ejemplo, cuanto he vendido de cada producto

Page 29: Introducción a NoSQL

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

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

Resum Executiu 東京‘TOKIOTA

MUCHAS GRACIAS POR TU CONFIANZA