Upload
sebas141
View
216
Download
2
Embed Size (px)
DESCRIPTION
dads
Citation preview
Introduccin a NoSQL75.06 Organizacin de Datos FIUBA
Introduccin a NoSQL
Conceptos Generales Relacional Clave/Valor Columnas Documentos Grafos
Conceptos Generales: ACID
Atomicidad Consistencia Aislamiento Durabilidad
Conceptos Generales: CAP
Consistente Disponibilidad Tolerante a particiones
Teorema CAP: elegir 2
Depende del negocio
Conceptos Generales: Mapreduce
Map Reduce Paralelismo
Relacional
Tablas bidimensionales Estructurada Relacin de datos mediante claves forneas SQL ACID Muchas features
Relacional - Motores
MySQL MSSQL Oracle SQLite PostgreSQL MariaDB
Relacional +1
Se sabe cmo son los datos, pero no cmo se va a usar
Relacional -1
Datos muy variables Datos con muchas jerarquas Escalar
Clave/Valor
Mapea claves a valores Sin estructura Muy rpidos para accesos por clave Simples de distribuir Muchas veces usados como cache
Clave/Valor - Motores
Memcached Voldemort Redis Riak Tokyo/Kyoto Cabinet Google LevelDB
Clave/Valor +1
Escalar horizontalmente Muchos accesos solo por clave Datos poco relacionados
Clave/Valor -1
Necesidad de consultas complejas
Columnas
Sorted map (key: row, col, timestamp) Conceptualmente -> tabla, con filas y
columnas Los datos se almacenan por columnas No es costoso agregar columnas Cada fila puede tener un conjunto distinto de
columnas (valores nulos no ocupan espacio) Solo scan y get para consultas
Columnas - Motores
HBase Cassandra Hypertable Google BigTable Accumulo
Columnas +1
Escalabilidad horizontal Compresin y versionado
Columnas -1
Cuando no se sabe cmo se van a usar los datos
Pocos datos (entran en un solo server)
Columnas != Columnas Relacional
Base de datos relacionales que guardan los datos por columnas
Motores: Sybase IQ C-Store Vertica VectorWise MonetDB ParAccel Infobright
Documentos
Esquemas flexibles Objetos anidados, no relacionados Facil de distribuir Desnormalizacin de datos
Documentos - Motores
MongoDB CouchDB OrientDB
Documentos +1
Cuando no se sabe cmo van a ser los datos
Documentos -1
Consultas complejas con joins (cada documento deberia contener toda la informacin que generalmente se va a querer sobre l)
Grafos
Datos almacenados en forma de grafo Los datos se navegan mediante nodos y
aristas Los nodos y las relaciones pueden tener
propiedades (pares clave/valor) ACID
Grafos - Motores
Neo4J InfiniteGraph
Grafos +1
Aplicaciones donde hay redes Datos muy interconectados
Grafos -1
Difcil de particionar una misma red (se puede usar el grafo para relaciones y los datos se almacenan en otra db)
Cdigo
Cdigo de los ejemplos en https://github.com/damianmarti
PresentacinIntroduccin a NoSQLConceptos Generales: ACIDConceptos Generales: CAPConceptos Generales: MapreduceRelacionalRelacional - MotoresRelacional +1Relacional -1Clave/ValorClave/Valor - MotoresClave/Valor +1Clave/Valor -1ColumnasColumnas - MotoresColumnas +1Columnas -1Columnas != Columnas RelacionalDocumentosDocumentos - MotoresDocumentos +1Documentos -1GrafosGrafos - MotoresGrafos +1Grafos -1Cdigo