SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
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
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

Mais conteúdo relacionado

Mais procurados

Documentacion postgresql
Documentacion postgresqlDocumentacion postgresql
Documentacion postgresql
Cesar Martinez
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
brobelo
 

Mais procurados (20)

Aws PHPVigo
Aws PHPVigoAws PHPVigo
Aws PHPVigo
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
 
Documentacion postgresql
Documentacion postgresqlDocumentacion postgresql
Documentacion postgresql
 
Introducción a PostgreSql
Introducción a PostgreSqlIntroducción a PostgreSql
Introducción a PostgreSql
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
SQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB EngineSQL Server 2014 Mejoras del DB Engine
SQL Server 2014 Mejoras del DB Engine
 
Postgres como base de datos NoSQL. Codemotion 2015
Postgres como base de datos NoSQL. Codemotion 2015Postgres como base de datos NoSQL. Codemotion 2015
Postgres como base de datos NoSQL. Codemotion 2015
 
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
 
Características nosql de postgresql
Características nosql de postgresqlCaracterísticas nosql de postgresql
Características nosql de postgresql
 
Postgre sql
Postgre sqlPostgre sql
Postgre sql
 
Postgresql Como Funciona Una Dbms Por Dentro
Postgresql Como Funciona Una Dbms Por DentroPostgresql Como Funciona Una Dbms Por Dentro
Postgresql Como Funciona Una Dbms Por Dentro
 
Benchmarking
BenchmarkingBenchmarking
Benchmarking
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datos
 
Sq lite
Sq liteSq lite
Sq lite
 
SGBD Y TECNOLOGIAS
SGBD Y TECNOLOGIASSGBD Y TECNOLOGIAS
SGBD Y TECNOLOGIAS
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
 
Admon PG 1
Admon PG 1Admon PG 1
Admon PG 1
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
 
Servidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyServidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValley
 
Hypertable ld
Hypertable ldHypertable ld
Hypertable ld
 

Destaque

Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en Windows
Antonio Ognio
 
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Antonio Ognio
 

Destaque (15)

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

Semelhante a Bases de datos NoSQL - Huancayo - 2010

Pablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open DataPablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open Data
Smash Tech
 

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

Xamarin y cosmosDB
Xamarin y cosmosDBXamarin y cosmosDB
Xamarin y cosmosDB
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
Introducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data Warehouse
 
Postgresql expo
Postgresql expoPostgresql expo
Postgresql expo
 
Azure SQL Data Warehouse desde cada_angulo
Azure SQL Data Warehouse desde cada_anguloAzure SQL Data Warehouse desde cada_angulo
Azure SQL Data Warehouse desde cada_angulo
 
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nubeIndustria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
 
Exposicionsqlite1 (1)
Exposicionsqlite1 (1)Exposicionsqlite1 (1)
Exposicionsqlite1 (1)
 
UYOUG OTN Tour 2011 - RAC sin sorpresas
UYOUG OTN Tour 2011 - RAC sin sorpresasUYOUG OTN Tour 2011 - RAC sin sorpresas
UYOUG OTN Tour 2011 - RAC sin sorpresas
 
Sql o NoSql en Informática Médica
Sql o NoSql en Informática MédicaSql o NoSql en Informática Médica
Sql o NoSql en Informática Médica
 
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQL
 
Base De Datos
Base De DatosBase De Datos
Base De Datos
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web Escalable
 
Tutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeTutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtime
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
 
Nuevo motor relacional In-memory OLTP
Nuevo motor relacional In-memory OLTPNuevo motor relacional In-memory OLTP
Nuevo motor relacional In-memory OLTP
 
WorkShop Desarrollo con SQL Server 2008
WorkShop Desarrollo con SQL Server 2008WorkShop Desarrollo con SQL Server 2008
WorkShop Desarrollo con SQL Server 2008
 
Lo que siempre has querido saber para exprimir sql server
Lo que siempre has querido saber para exprimir sql serverLo que siempre has querido saber para exprimir sql server
Lo que siempre has querido saber para exprimir sql server
 
Pablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open DataPablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open Data
 
Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014
 
Arquitecturas de Base de Datos- kmm.pptx
Arquitecturas de Base de Datos- kmm.pptxArquitecturas de Base de Datos- kmm.pptx
Arquitecturas de Base de Datos- kmm.pptx
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (10)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

Bases de datos NoSQL - Huancayo - 2010