SlideShare una empresa de Scribd logo
Bases de Datos

      NoSQL
    Antonio Ognio
antonio@ognio.com
Conceptos
 básicos
Rendimiento

Capacidad de llevar a cabo una
tarea comparada con los
recursos utilizados
Si un sistema puede hacer más
que otro usando la misma
cantidad de recursos entonces
tiene un mayor rendimiento
Alta disponibilidad
Capacidad de un sistema de ofrecer
cierto nivel de funcionalidad y
servicio en sus operaciones de
manera ininterrumpida.
Generalmente esto requiere tener
servidores redundantes, replicar la
información y ofrecer tolerancia a
los fallos
Escalabilidad


Generalmente requiere piezas independientes,
particionamiento de la información y tolerancia a los fallos
Capacidad de un sistema de poder crecer en número de
usuarios y operaciones realizadas de manera continua sin
que la calidad de su servicio se vea afectada .
Tipos de escalabilidad

Vertical: El sistema cree al
usuario equipos más potentes y
con más recursos.
Horizontal: El sistema crece
dividiendo la carga de trabajo
entre más equipos de las
mismas características
Tolerancia a fallos
Capacidad de un sistema de poder
recuperarse en caso de que alguno
de sus componentes falle o deje de
operar.
Generalmente mente requiere
utilizar equipos con funciones
redundantes y replicar la
información constantemente.
Sistema Distribuido

Es un sistema en el que las
características ofrecidas solo se
logran entregar utilizando
distintos equipos trabajando en
simultáneo de manera conjunta
y colaborativa.
Modelo Relacional


Las entidades del dominio del problema se modelan como tablas
Las tablas tienen columnas y registros
Los atributos van como columnas y son los mismos para todos los
registros
Cada tabla tiene una estructura definida (Schema)
Las relaciones se logran asociando los valores de ciertas
columnas de una tabla con ciertas columnas de otras tablas
ACID

Atomicidad (Atomicity)
Consistencia (Consistency)
Independencia (Isolation)
Durabilidad (Durability)
Teorema CAP




Solo es posible obtener dos de las propiedades al mismo
                         tiempo
Map/Reduce

Estrategia para calcular un
resultado que divide la entrada de
datos en un montón de partes
procesadas independientemente
en paralelo para luego consolidar
todos los resultados en un solo
valor o conjunto.
NoSQL
(No solo SQL)
Motivaciones
Enormes volúmenes de datos
Dificultad de escalar operaciones de
escritura
Dificultad de gestionar esquemas a
gran escala
Necesidad de mayor velocidad y
rendimiento
Datos en Facebook
                                 1 980 millones de HD de 500 GB




             6 veces en 4 años


                                            988 EB
322 millones de HD de 500GB



          161 EB




          2006                               2010
Características

No relacionales
Distribuídas
Escalabilidad horizontal
Schema-less (Sin estructura)
Eventualmente consistentes
Categorías


Key-Value stores
Document stores
Column-oriented stores
Graph Databases
Key-Value Store
 hash / diccionario
Memcached
Dynamo (inspiración de otras)
Redis
Riak
Tokyo Cabinet
Document Stores
semi-estructuradas


IBM Lotus
MongoDB
CouchDB
Column-Oriented Stores
  semi-estructuradas

 BigTable (inspiración de otras)
 HBase
 Cassandra
 Hypertable
Graph Database



InfoGrid
Neo4j
Mongo DB
orientada a documentos

 Documentos estilo JSON (BSON)
 Colección (Similar a tabla)
 Consultas simples con JSON
 Consultas complejas con
 Map/Reduce empleando Javascript
Apache Cassandra
orientada a columnas
Creada por Facebook
Particionamiento automático
Enfoque en op. de escritura
Consistencia ajustable (CAP)
Servidor en Java usando Thrift
Modelo de datos de Cassandra
Si solo tienes un
martillo, todo te parece
       un clavo.
REDIS
(Remote Dictionary Server)
“La memoria
 es el nuevo
disco, el disco
 es la nueva
    cinta”
  — jim gray
Fortalezas
Disco duro
  - durabilidad
  - capacidad
  - acceso sequencial (= “cinta”)
memoria
  - acceso aleatorio
  - baja latencia
Latencia relativa
  Registros        0.1

Memoria Cache      1

Memoria RAM        10

 Disco Duro     1.000.000
Latencia relativa

  Registros        0.1

Memoria Cache      1

Memoria RAM        10

 Disco Duro     1.000.000
flickr.com/photos/36688133@N00/3655892919
Berlin - Londres
  F-16          6 minutos

  Avión          1 hora

  Tren          10 horas

Automóvil       114 años
malogrado
flickr.com/photos/64498037@N00/3107322938
redis

   flickr.com/photos/atzu/2645776918
benchmark



4897 GET/s
5128 SET/s

      code.google.com/p/redis/wiki/Benchmarks
flickr.com/photos/mbiddulph/3836727468
sheeva plug




  flickr.com/photos/mbiddulph/3836727468
sheeva plug




$99 99
     flickr.com/photos/mbiddulph/3836727468
Características
Estructuras de datos
  - enteros, cadenas
  - listas, conjuntos, diccionarios
  - canales
Operaciones atómicas
  - get, set, increment
  - push, pop ...
Características
Memoria virtual
   - llaves siempre en memoria
   - Intercambio sobre demanda
Durabilidad
   - append-only log file
   - background snapshots
Replicación
Implementación


-   10k lineas de ANSI C
-   Base de código clara y legible
-   Salvatore Sanfilipo (Italia)
-   Sponsor de VMware
Bases de datos NoSQL - Huancayo - 2010
Librerías cliente
-   redis-cli, telnet
-   c, c#
-   ruby, python, perl
-   java, scala
-   php
-   [muchas más ...]
Instalación en Linux
          (UNIX en general)
> wget redis.tgz
> tar xzf redis.tgz
> cd redis
> make
> ./redis-server
CADENAS
SET
GET
DEL
GETSET
MGET
INCR / DECR
LISTAS

RPUSH / RPOP
LPUSH / LPOP
LRANGE
RPOPLPUSH
SORT
CONJUNTOS
          (SETS)


SADD / SREM
SMOVE
SINTER / SINTERSTORE
SUNION / SUNIONSTORE
SDIFF / SDIFFSTORE
SORT
CONJUNTOS ORDENADOS
           (ZSETS)




  ZADD
  ZREM
  ZRANGE
  ? ZINTER / ZUNION / ZDIFF ?
DICCIONARIOS
          (HASHES)



HSET
HGET
HDEL
HGETALL
HEXISTS
EJEMPLO: BLOG
   (BITÁCORA DE INTERNET)



posts:contador (COUNTER)
post:id:1 (HASH)
post:id:1:tags (SET)
tag:nombre:posts (ZSET)
posts (ZSET)
EJEMPLO: BLOG
      (CONTINUACION)



tags (SET)
posts:mes:<m>:anio:<a> (ZSET)
post:slug:<slug> (STRING)
meses (ZSET)
visitas (ZSET)
Aplicación de Ejemplo:
- Un blog muy simple escrito en PHP
- No usa ningún framework MVC o
 mapeador de objetos
- La interacción con Redis está en el
 archivo modelos.inc.php
 http://bitbucket.org/nosqldemos/redis-blog-demo/
 Un agradecimiento a Ernesto Anaya (texai) por el
 trabajo en CSS.
Resúmen
-   NoSQL = No solo SQL
-   Elegir la herramienta adecuada
-   No hay que cruzar la línea roja
-   Nueva manera de modelar
-   Casi todos productos opensource
-   Redis es simple y bastante flexible
ENLACES

http://redis.io
http://code.google.com/p/redis/
http://rediscookbook.org
http://mongodb.org
http://cassandra.apache.org
preguntas
Créditos
     Algunos slides y la plantilla
     de la presentación tomadas
                desde:
http://www.slideshare.net/tim.lossen.de/redis-memory-as-the-new-disk
Bases de Datos

      NoSQL
    Antonio Ognio
antonio@ognio.com

Más contenido relacionado

ODP
Devops Madrid Marzo - Caso de uso en AWS
PDF
Ansible + AWS: Cómo administrar tu infraestructura de AWS con Ansible
PDF
Ceph: The Storage System of the Future
PPTX
Introducción a Apache Spark
PDF
LSWC PostgreSQL 9.1 (2011)
PPTX
Arquitectura e implementación de PostgreSQL 9.3
PDF
Presentación de Postgresql 9.1
PDF
Devops Madrid Marzo - Caso de uso en AWS
Ansible + AWS: Cómo administrar tu infraestructura de AWS con Ansible
Ceph: The Storage System of the Future
Introducción a Apache Spark
LSWC PostgreSQL 9.1 (2011)
Arquitectura e implementación de PostgreSQL 9.3
Presentación de Postgresql 9.1

La actualidad más candente (20)

PPTX
PDF
Migrando de MSSQL a PostgreSQL
PDF
Documentacion postgresql
PDF
Introducción a PostgreSql
PPTX
PostgreSQL
PPTX
SQL Server 2014 Mejoras del DB Engine
PDF
Postgres como base de datos NoSQL. Codemotion 2015
DOCX
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
PDF
Características nosql de postgresql
PDF
Postgre sql
ODP
Postgresql Como Funciona Una Dbms Por Dentro
PPTX
Benchmarking
PDF
Redis: servidor de estructuras de datos
PPTX
Sq lite
PPTX
SGBD Y TECNOLOGIAS
PDF
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
PDF
Admon PG 1
PDF
Fundamentos de Administración PostgreSQL
PDF
Servidores de mapas en alta disponibilidad CyLiconValley
PPTX
Hypertable ld
Migrando de MSSQL a PostgreSQL
Documentacion postgresql
Introducción a PostgreSql
PostgreSQL
SQL Server 2014 Mejoras del DB Engine
Postgres como base de datos NoSQL. Codemotion 2015
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
Características nosql de postgresql
Postgre sql
Postgresql Como Funciona Una Dbms Por Dentro
Benchmarking
Redis: servidor de estructuras de datos
Sq lite
SGBD Y TECNOLOGIAS
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
Admon PG 1
Fundamentos de Administración PostgreSQL
Servidores de mapas en alta disponibilidad CyLiconValley
Hypertable ld
Publicidad

Destacado (15)

PDF
Consejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
PDF
PDF
Twixer (english)
PDF
Lenguajes y frameworks para desarrollo web
PDF
Lean Startups
PDF
Gestor de paquetes YUM
PDF
¿Porqué Python? ...y Django
PDF
Desarrollando con PHP en Windows
PDF
Organizando una Hackparty
PDF
Mejorando la seguridad del servicio SSH - Hardening
PDF
PDF
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
PDF
Python Dominicana 059: Django Migrations
PDF
Ubuntu Server Edition 9.04 Jaunty Jackalope
PDF
Mini-tutorial de git
Consejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Twixer (english)
Lenguajes y frameworks para desarrollo web
Lean Startups
Gestor de paquetes YUM
¿Porqué Python? ...y Django
Desarrollando con PHP en Windows
Organizando una Hackparty
Mejorando la seguridad del servicio SSH - Hardening
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Python Dominicana 059: Django Migrations
Ubuntu Server Edition 9.04 Jaunty Jackalope
Mini-tutorial de git
Publicidad

Similar a Bases de datos NoSQL - Huancayo - 2010 (20)

KEY
Redis, base de datos NoSQL clave-valor
KEY
Aplicaciones web altamente escalables con Redis
PPTX
Introducción a NoSQL
PDF
Taller Redis
ODP
Nosql tucumanvalley-10
PPSX
Presentacion BD NoSQL
PPTX
Introducción mongodb y desarrollo
PDF
NoSql introducción -Innova4j
PPT
Bases de datos avanzado NOSQL
PPTX
NoSQL: la siguiente generación de Base de Datos
PPT
Big table por Matias tesoriero
PPTX
Redis: no solo una caché
PDF
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
PDF
Sql o NoSql en Informática Médica
PPTX
Apache Cassandra
PDF
NoSQL: Un Cambio de Paradigma - Apache Cassandra
PDF
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
PDF
Introducción a NoSQL - RubyFunDay 2013
PPTX
Bd nosql clave valor
Redis, base de datos NoSQL clave-valor
Aplicaciones web altamente escalables con Redis
Introducción a NoSQL
Taller Redis
Nosql tucumanvalley-10
Presentacion BD NoSQL
Introducción mongodb y desarrollo
NoSql introducción -Innova4j
Bases de datos avanzado NOSQL
NoSQL: la siguiente generación de Base de Datos
Big table por Matias tesoriero
Redis: no solo una caché
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Sql o NoSql en Informática Médica
Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache Cassandra
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Introducción a NoSQL - RubyFunDay 2013
Bd nosql clave valor

Último (20)

PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
capacitación de aire acondicionado Bgh r 410
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PPTX
Presentación de Redes de Datos modelo osi
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PDF
clase auditoria informatica 2025.........
PDF
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Curso de generación de energía mediante sistemas solares
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPT
introduccion a las_web en el 2025_mejoras.ppt
historia_web de la creacion de un navegador_presentacion.pptx
MANUAL de recursos humanos para ODOO.pdf
capacitación de aire acondicionado Bgh r 410
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Documental Beyond the Code (Dossier Presentación - 2.0)
TRABAJO DE TECNOLOGIA.pdf...........................
Presentación de Redes de Datos modelo osi
El-Gobierno-Electrónico-En-El-Estado-Bolivia
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
clase auditoria informatica 2025.........
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
Presentación PASANTIAS AuditorioOO..pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Curso de generación de energía mediante sistemas solares
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Diapositiva proyecto de vida, materia catedra
Power Point Nicolás Carrasco (disertación Roblox).pptx
Influencia-del-uso-de-redes-sociales.pdf
introduccion a las_web en el 2025_mejoras.ppt

Bases de datos NoSQL - Huancayo - 2010