27
Introducción a NoSQL 75.06 Organización de Datos FIUBA

DatosNoSQL

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