SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
Cassandra
                 para dummies
Por: Javier Vidal Peña
Fecha: 17 - Mayo - 2012
Érase una vez…
Necesitaban una
   base de datos
Necesitaban una
   base de datos
       relacional
Necesitaban
id   alias            name               bio                                                location   web
1    JaVidalPe        Javier Vidal       Joven, sin experiencia, pero con muchas ganas      Almería
                                         de aprender. Internship en
                                         http://www.kuapay.com y fundador del
                                         @ProyectoTawea.

2    MiguelAngel_LV   Miguel Angel       Programador de Java, C, C++, PHP, Android,         Almería    http://miguelangellv.
                                         Javascript... Usuario de Linux y Android. En                  wordpress.com/
                                         Google+ es donde muestro lo mejor de mí
                                         http://gplus.to/miguelangellv

3    Piquerworld      Jose Manuel        Entrepreneur & New Ideas Developer. Por suerte     Spain
                                         el mundo esta lleno de locos. :D

4    nicogarm87       Nicolas Garcia


5    joseferrer       Jose Ferrer        Ruby on Rails developer at @wecanclick &           Almería    http://moviendo.me
                                         @wedfotospain

6    valgreens        Antonio Valverde   Estudiante de Teleco y blogger amateur. Internet   Almería    http://www.valgreens
                                         como hobby. Geek y desarrollo web freelance                   .es/
                                         junior. Socio de la AWGR y colaboro con GTUG
                                         Granada

7    Sergio_LMarqu    Sergio Lopez
     ez
..   …                …                  …                                                  …          …
Atomicity




Durability
             ACID        Consistency




             Isolation
ACID
      y
Escalabilidad
#nosql
1. How will we add new machines?
2. Are their any single points of failure?
3. Do the writes scale as well?
4. How much administration will the system require?
5. If its open source, is there a healthy community?
6. How much time and effort would we have to
   expend to deploy and integrate it?
7. Does it use technology which we know we can work with?
No existe un único punto de fallo
Fácilmente escalable
Productiva comunidad
• 150 nodos
• 800M usuarios
• 200TB de datos
¿Cómo funciona?
Modelo clave -> valor
“78423”  { “name”: “Miguel Ángel”, “pass”: 1234 }
Sin esquema
“78423”  { “name”: “Miguel Ángel”, “pass”: 1234 }
“12314”  { “name”: “Javier Vidal”, “age”: 23}
“43561”  { “email”: “pepe@tawea.com”, “color”: “red”}
Sin relaciones

 Group by
 Inner join
 Delete cascade
 …
Organizado en
        familias de columnas
clave                                                     valor

           alias         name                                bio                                      Web

12314   MiguelAngel    Miguel Ángel
                                         Programador de Java, C, C++, PHP, Android,
                                         Javascript... Usuario de Linux y Android. En      http://gplus.to/miguelangellv
            _LV           López
                                          Google+ es donde muestro lo mejor de mí




           alias         name                                bio
34252                                  Estudiante de Ing. Informatica de la UAL. Usuario
          javimb9        Javi Imb.     de GNU/Linux y Android, y amante del Software
                                                   Libre y el FutbolChapas.




           alias         name                                bio                                    location
12341   ProyectoTaw                    Jóvenes con ilusión y muchas ganas de trabajar.
                      Proyecto Tawea                                                             Almería, Almería
            eate                                      Objetivo: Tawea.
Organizado en
        familias de columnas
clave                                                     valor

           alias         name                                bio                                      Web

12314   MiguelAngel    Miguel Ángel
                                         Programador de Java, C, C++, PHP, Android,
                                         Javascript... Usuario de Linux y Android. En      http://gplus.to/miguelangellv
            _LV           López
                                          Google+ es donde muestro lo mejor de mí




           alias         name                                bio
34252                                  Estudiante de Ing. Informatica de la UAL. Usuario
          javimb9        Javi Imb.     de GNU/Linux y Android, y amante del Software
                                                   Libre y el FutbolChapas.



12341
           alias         name                                bio                                    location

        ProyectoTaw                    Jóvenes con ilusión y muchas ganas de trabajar.
                      Proyecto Tawea                                                             Almería, Almería
            eate                                      Objetivo: Tawea.
Organizado en
               super columnas
clave                                             valor

                 author                             text                                    date
        4324    Miguel Ángel
                               a ver si saco tiempo. En uno de los proyectos que
                                 estoy ahora nos hemos pillado despacho en el      2012-04-17T10:24:04+00:00
                   López
                                         CADE, que está cerquita vuestra.
12314
                  author                             text                                   date
        3453                     Mu buenas! Qué es exactamente? Me sale un
                  joseferrer     listado con peña de Almería. Cómo vais con lo     2012-04-17T10:24:04+00:00
                                                   vuestro?



                 author                             text                                    date
12341   2424
                   pepe                          Hola que tal                      2012-04-17T10:24:04+00:00
Organizado en
               super columnas
clave                                             valor

                 author                             text                                    date
        4324    Miguel Ángel
                               a ver si saco tiempo. En uno de los proyectos que
                                 estoy ahora nos hemos pillado despacho en el      2012-04-17T10:24:04+00:00
                   López
                                         CADE, que está cerquita vuestra.
12314
                  author                             text                                   date
        3453                     Mu buenas! Qué es exactamente? Me sale un
                  joseferrer     listado con peña de Almería. Cómo vais con lo     2012-04-17T10:24:04+00:00
                                                   vuestro?


12341
                 author                             text                                    date
        2424
                   pepe                          Hola que tal                      2012-04-17T10:24:04+00:00
Operaciones
Get en familia de columnas



usuario = get(3);
nombre = usuario [“nombre”];
Get en super columnas


bandeja = get(3);
mensaje= bandeja[1231];
autor = bandeja[1231][“autor”];
Multiget



usuarios= multiget({2,5,7});
usuario = usuarios[2];
Insert en familia de columnas

user = {
    “alias” :    “prueba”,
    “name” :     “Pepe”,
    “bio” :      “Mi vida.” };

insert(1234,user);
Insert en súper columnas
inbox = {    1231: {
                   “author”   : “pepe”,
                   “text”     : “hola que tal”,
                   “date”     : “2012-4-17T24”},
             1232: {
                   “author”   : “juan”,
                   “text”     : “hola manuel”,
                   “date”     : “2012-4-17T24”}};

insert(1234, inbox );
Ejemplo:

Ver tu muro de tweeter
users                users_tweets                            tweets
1 {name:Javier Vidal}       1 {2,4,6,9,10,12,15,16,19}     1    {autor:1,text:Hola vaya, vaya …

2 {name:Miguel Angel}       2 {3,6,7,10}                   2    {auto:2,text:Informáticos de la…

3 {name:Jose Manuel}        3 {8,9,11,16,22,23,24}         3    {auto:1,text:Ey como va el trab…

4 {name:Nicolas Garcia}     4 {1,4,5,7,8,12,13,16,18,19}   4    {autor:5, text:Mi enhorabuena…

5 {name:Jose Ferrer}        5 {12,13,15,16,18,19,20}       5    {autor:3, text: El futuro pertene…

6 {name:Antonio Valverde}   6 {3,4,6,8,9,10}               6    {autor:2, text:G+: Comienza el …

7 {name:Sergio Lopez}       7 {4,5,7,9,12,14,17,18}        7    {autor:7, text:Felicidades @gl …

                                                           8    {autor:6, text:@galatea128 co…

                                                           9    {autor:5, text:Como mola la A…

                                                           10 {autor:2, text: Exacto, están ec…
                                                           11 {autor:6, text:Plantilla EL BICHO..
users                users_tweets                            tweets
1 {name:Javier Vidal}       1 {2,4,6,9,10,12,15,16,19}     1    {autor:1,text:Hola vaya, vaya …

2 {name:Miguel Angel}       2 {3,6,7,10}                   2    {auto:2,text:Informáticos de la…

3 {name:Jose Manuel}        3 {8,9,11,16,22,23,24}         3    {auto:1,text:Ey como va el trab…

4 {name:Nicolas Garcia}     4 {1,4,5,7,8,12,13,16,18,19}   4    {autor:5, text:Mi enhorabuena…

5 {name:Jose Ferrer}        5 {12,13,15,16,18,19,20}       5    {autor:3, text: El futuro pertene…

6 {name:Antonio Valverde}   6 {3,4,6,8,9,10}               6    {autor:2, text:G+: Comienza el …

7 {name:Sergio Lopez}       7 {4,5,7,9,12,14,17,18}        7    {autor:7, text:Felicidades @gl …

                                                           8    {autor:6, text:@galatea128 co…

                                                           9    {autor:5, text:Como mola la A…

                                                           10 {autor:2, text: Exacto, están ec…
  1) Get users_tweets para obtener los tweets
                                                           11 {autor:6, text:Plantilla EL BICHO..
   que deberíamos ver en nuestro muro
users                users_tweets                            tweets
1 {name:Javier Vidal}       1 {2,4,6,9,10,12,15,16,19}     1    {autor:1,text:Hola vaya, vaya …

2 {name:Miguel Angel}       2 {3,6,7,10}                   2    {auto:2,text:Informáticos de la…

3 {name:Jose Manuel}        3 {8,9,11,16,22,23,24}         3    {auto:1,text:Ey como va el trab…

4 {name:Nicolas Garcia}     4 {1,4,5,7,8,12,13,16,18,19}   4    {autor:5, text:Mi enhorabuena…

5 {name:Jose Ferrer}        5 {12,13,15,16,18,19,20}       5    {autor:3, text: El futuro pertene…

6 {name:Antonio Valverde}   6 {3,4,6,8,9,10}               6    {autor:2, text:G+: Comienza el …

7 {name:Sergio Lopez}       7 {4,5,7,9,12,14,17,18}        7    {autor:7, text:Felicidades @gl …

                                                           8    {autor:6, text:@galatea128 co…

                                                           9    {autor:5, text:Como mola la A…

                                                           10 {autor:2, text: Exacto, están ec…
  2) Multiget tweets para obtener la
                                                           11 {autor:6, text:Plantilla EL BICHO..
  información detallada de cada tweet
users                users_tweets                            tweets
1 {name:Javier Vidal}       1 {2,4,6,9,10,12,15,16,19}     1    {autor:1,text:Hola vaya, vaya …

2 {name:Miguel Angel}       2 {3,6,7,10}                   2    {auto:2,text:Informáticos de la…

3 {name:Jose Manuel}        3 {8,9,11,16,22,23,24}         3    {auto:1,text:Ey como va el trab…

4 {name:Nicolas Garcia}     4 {1,4,5,7,8,12,13,16,18,19}   4    {autor:5, text:Mi enhorabuena…

5 {name:Jose Ferrer}        5 {12,13,15,16,18,19,20}       5    {autor:3, text: El futuro pertene…

6 {name:Antonio Valverde}   6 {3,4,6,8,9,10}               6    {autor:2, text:G+: Comienza el …

7 {name:Sergio Lopez}       7 {4,5,7,9,12,14,17,18}        7    {autor:7, text:Felicidades @gl …

                                                           8    {autor:6, text:@galatea128 co…

                                                           9    {autor:5, text:Como mola la A…

                                                           10 {autor:2, text: Exacto, están ec…
  2) Multiget users para obtener la
                                                           11 {autor:6, text:Plantilla EL BICHO..
  información detallada de cada autor
Comparativa aproximada
350

300

250

200
                      SQL
150                   NoSQL
100

50

 0
        Tiempo (ms)
Pros          Contras
• Rápida      • Mayor trabajo
• Flexible    • Expuesto a
• Escalable     errores
SQL vs NoSQL
SQL vs NoSQL
Elige tu criterio

Contenu connexe

Plus de betabeers

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformabetabeers
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)betabeers
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lagebetabeers
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavillabetabeers
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbaobetabeers
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu appbetabeers
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)betabeers
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)betabeers
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)betabeers
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)betabeers
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Usobetabeers
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startupbetabeers
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.betabeers
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización webbetabeers
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrumbetabeers
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottambetabeers
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTbetabeers
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015betabeers
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015betabeers
 

Plus de betabeers (20)

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataforma
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lage
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Uso
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startup
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización web
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrum
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottam
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoT
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
 

Cassandra

  • 1. Cassandra para dummies Por: Javier Vidal Peña Fecha: 17 - Mayo - 2012
  • 3. Necesitaban una base de datos
  • 4. Necesitaban una base de datos relacional
  • 6. id alias name bio location web 1 JaVidalPe Javier Vidal Joven, sin experiencia, pero con muchas ganas Almería de aprender. Internship en http://www.kuapay.com y fundador del @ProyectoTawea. 2 MiguelAngel_LV Miguel Angel Programador de Java, C, C++, PHP, Android, Almería http://miguelangellv. Javascript... Usuario de Linux y Android. En wordpress.com/ Google+ es donde muestro lo mejor de mí http://gplus.to/miguelangellv 3 Piquerworld Jose Manuel Entrepreneur & New Ideas Developer. Por suerte Spain el mundo esta lleno de locos. :D 4 nicogarm87 Nicolas Garcia 5 joseferrer Jose Ferrer Ruby on Rails developer at @wecanclick & Almería http://moviendo.me @wedfotospain 6 valgreens Antonio Valverde Estudiante de Teleco y blogger amateur. Internet Almería http://www.valgreens como hobby. Geek y desarrollo web freelance .es/ junior. Socio de la AWGR y colaboro con GTUG Granada 7 Sergio_LMarqu Sergio Lopez ez .. … … … … …
  • 7. Atomicity Durability ACID Consistency Isolation
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. ACID y Escalabilidad
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. 1. How will we add new machines? 2. Are their any single points of failure? 3. Do the writes scale as well? 4. How much administration will the system require? 5. If its open source, is there a healthy community? 6. How much time and effort would we have to expend to deploy and integrate it? 7. Does it use technology which we know we can work with?
  • 19.
  • 20. No existe un único punto de fallo
  • 23. • 150 nodos • 800M usuarios • 200TB de datos
  • 25. Modelo clave -> valor “78423”  { “name”: “Miguel Ángel”, “pass”: 1234 }
  • 26. Sin esquema “78423”  { “name”: “Miguel Ángel”, “pass”: 1234 } “12314”  { “name”: “Javier Vidal”, “age”: 23} “43561”  { “email”: “pepe@tawea.com”, “color”: “red”}
  • 27. Sin relaciones Group by Inner join Delete cascade …
  • 28. Organizado en familias de columnas clave valor alias name bio Web 12314 MiguelAngel Miguel Ángel Programador de Java, C, C++, PHP, Android, Javascript... Usuario de Linux y Android. En http://gplus.to/miguelangellv _LV López Google+ es donde muestro lo mejor de mí alias name bio 34252 Estudiante de Ing. Informatica de la UAL. Usuario javimb9 Javi Imb. de GNU/Linux y Android, y amante del Software Libre y el FutbolChapas. alias name bio location 12341 ProyectoTaw Jóvenes con ilusión y muchas ganas de trabajar. Proyecto Tawea Almería, Almería eate Objetivo: Tawea.
  • 29. Organizado en familias de columnas clave valor alias name bio Web 12314 MiguelAngel Miguel Ángel Programador de Java, C, C++, PHP, Android, Javascript... Usuario de Linux y Android. En http://gplus.to/miguelangellv _LV López Google+ es donde muestro lo mejor de mí alias name bio 34252 Estudiante de Ing. Informatica de la UAL. Usuario javimb9 Javi Imb. de GNU/Linux y Android, y amante del Software Libre y el FutbolChapas. 12341 alias name bio location ProyectoTaw Jóvenes con ilusión y muchas ganas de trabajar. Proyecto Tawea Almería, Almería eate Objetivo: Tawea.
  • 30. Organizado en super columnas clave valor author text date 4324 Miguel Ángel a ver si saco tiempo. En uno de los proyectos que estoy ahora nos hemos pillado despacho en el 2012-04-17T10:24:04+00:00 López CADE, que está cerquita vuestra. 12314 author text date 3453 Mu buenas! Qué es exactamente? Me sale un joseferrer listado con peña de Almería. Cómo vais con lo 2012-04-17T10:24:04+00:00 vuestro? author text date 12341 2424 pepe Hola que tal 2012-04-17T10:24:04+00:00
  • 31. Organizado en super columnas clave valor author text date 4324 Miguel Ángel a ver si saco tiempo. En uno de los proyectos que estoy ahora nos hemos pillado despacho en el 2012-04-17T10:24:04+00:00 López CADE, que está cerquita vuestra. 12314 author text date 3453 Mu buenas! Qué es exactamente? Me sale un joseferrer listado con peña de Almería. Cómo vais con lo 2012-04-17T10:24:04+00:00 vuestro? 12341 author text date 2424 pepe Hola que tal 2012-04-17T10:24:04+00:00
  • 33. Get en familia de columnas usuario = get(3); nombre = usuario [“nombre”];
  • 34. Get en super columnas bandeja = get(3); mensaje= bandeja[1231]; autor = bandeja[1231][“autor”];
  • 36. Insert en familia de columnas user = { “alias” : “prueba”, “name” : “Pepe”, “bio” : “Mi vida.” }; insert(1234,user);
  • 37. Insert en súper columnas inbox = { 1231: { “author” : “pepe”, “text” : “hola que tal”, “date” : “2012-4-17T24”}, 1232: { “author” : “juan”, “text” : “hola manuel”, “date” : “2012-4-17T24”}}; insert(1234, inbox );
  • 38. Ejemplo: Ver tu muro de tweeter
  • 39. users users_tweets tweets 1 {name:Javier Vidal} 1 {2,4,6,9,10,12,15,16,19} 1 {autor:1,text:Hola vaya, vaya … 2 {name:Miguel Angel} 2 {3,6,7,10} 2 {auto:2,text:Informáticos de la… 3 {name:Jose Manuel} 3 {8,9,11,16,22,23,24} 3 {auto:1,text:Ey como va el trab… 4 {name:Nicolas Garcia} 4 {1,4,5,7,8,12,13,16,18,19} 4 {autor:5, text:Mi enhorabuena… 5 {name:Jose Ferrer} 5 {12,13,15,16,18,19,20} 5 {autor:3, text: El futuro pertene… 6 {name:Antonio Valverde} 6 {3,4,6,8,9,10} 6 {autor:2, text:G+: Comienza el … 7 {name:Sergio Lopez} 7 {4,5,7,9,12,14,17,18} 7 {autor:7, text:Felicidades @gl … 8 {autor:6, text:@galatea128 co… 9 {autor:5, text:Como mola la A… 10 {autor:2, text: Exacto, están ec… 11 {autor:6, text:Plantilla EL BICHO..
  • 40. users users_tweets tweets 1 {name:Javier Vidal} 1 {2,4,6,9,10,12,15,16,19} 1 {autor:1,text:Hola vaya, vaya … 2 {name:Miguel Angel} 2 {3,6,7,10} 2 {auto:2,text:Informáticos de la… 3 {name:Jose Manuel} 3 {8,9,11,16,22,23,24} 3 {auto:1,text:Ey como va el trab… 4 {name:Nicolas Garcia} 4 {1,4,5,7,8,12,13,16,18,19} 4 {autor:5, text:Mi enhorabuena… 5 {name:Jose Ferrer} 5 {12,13,15,16,18,19,20} 5 {autor:3, text: El futuro pertene… 6 {name:Antonio Valverde} 6 {3,4,6,8,9,10} 6 {autor:2, text:G+: Comienza el … 7 {name:Sergio Lopez} 7 {4,5,7,9,12,14,17,18} 7 {autor:7, text:Felicidades @gl … 8 {autor:6, text:@galatea128 co… 9 {autor:5, text:Como mola la A… 10 {autor:2, text: Exacto, están ec… 1) Get users_tweets para obtener los tweets 11 {autor:6, text:Plantilla EL BICHO.. que deberíamos ver en nuestro muro
  • 41. users users_tweets tweets 1 {name:Javier Vidal} 1 {2,4,6,9,10,12,15,16,19} 1 {autor:1,text:Hola vaya, vaya … 2 {name:Miguel Angel} 2 {3,6,7,10} 2 {auto:2,text:Informáticos de la… 3 {name:Jose Manuel} 3 {8,9,11,16,22,23,24} 3 {auto:1,text:Ey como va el trab… 4 {name:Nicolas Garcia} 4 {1,4,5,7,8,12,13,16,18,19} 4 {autor:5, text:Mi enhorabuena… 5 {name:Jose Ferrer} 5 {12,13,15,16,18,19,20} 5 {autor:3, text: El futuro pertene… 6 {name:Antonio Valverde} 6 {3,4,6,8,9,10} 6 {autor:2, text:G+: Comienza el … 7 {name:Sergio Lopez} 7 {4,5,7,9,12,14,17,18} 7 {autor:7, text:Felicidades @gl … 8 {autor:6, text:@galatea128 co… 9 {autor:5, text:Como mola la A… 10 {autor:2, text: Exacto, están ec… 2) Multiget tweets para obtener la 11 {autor:6, text:Plantilla EL BICHO.. información detallada de cada tweet
  • 42. users users_tweets tweets 1 {name:Javier Vidal} 1 {2,4,6,9,10,12,15,16,19} 1 {autor:1,text:Hola vaya, vaya … 2 {name:Miguel Angel} 2 {3,6,7,10} 2 {auto:2,text:Informáticos de la… 3 {name:Jose Manuel} 3 {8,9,11,16,22,23,24} 3 {auto:1,text:Ey como va el trab… 4 {name:Nicolas Garcia} 4 {1,4,5,7,8,12,13,16,18,19} 4 {autor:5, text:Mi enhorabuena… 5 {name:Jose Ferrer} 5 {12,13,15,16,18,19,20} 5 {autor:3, text: El futuro pertene… 6 {name:Antonio Valverde} 6 {3,4,6,8,9,10} 6 {autor:2, text:G+: Comienza el … 7 {name:Sergio Lopez} 7 {4,5,7,9,12,14,17,18} 7 {autor:7, text:Felicidades @gl … 8 {autor:6, text:@galatea128 co… 9 {autor:5, text:Como mola la A… 10 {autor:2, text: Exacto, están ec… 2) Multiget users para obtener la 11 {autor:6, text:Plantilla EL BICHO.. información detallada de cada autor
  • 43. Comparativa aproximada 350 300 250 200 SQL 150 NoSQL 100 50 0 Tiempo (ms)
  • 44. Pros Contras • Rápida • Mayor trabajo • Flexible • Expuesto a • Escalable errores