SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Introducción a




    Ingenieria de Sotware I – Cohorte 2010
                       Ing. Liliana Paradas
                         Ing. William Yánez
Introducción
●   Es un sistema de administración de base de datos
    distribuida, open source, diseñado para manejar grandes
    cantidades de datos.
●   Se autodefine como “Altamente escalable, eventualmente
    consistente, distribuida y basada en datos clave-valor”.
●   Es una solución NoSQL, inicialmente desarrollada por
    Facebook (liberado en julio 2008) y desde Marzo 2009 es
    un proyecto de la fundación Apache (Feb 17 2010 top-
    level).
●   Esta basada en BigTable (Módelo de Datos) y Amazon
    Dynamo (infraestructura).
●   Desarrollado en Java.
Características
●   Probado
    ●   Digg, Facebook, Twitter, entre otros
●   Descentralizada
    ●   Todos los nodos de uncluster son identicos. No hay “Single Point of
        Failure” (SPOF)
●   Tolerante a fallas
    ●   La data es automáticamente replicada a todos los nodos.
●   Elasticidad
    ●   El incremento del rendimiento es lineal a la cantidad de nodos
        agregados al cluster (sin downtime).
●   Modelo de Datos Eficiente y Simple => clave/valor
Modelo de Datos
●   Columnas:
        ●       Es una tripleta que contiene un nombre, un valor y un
                timestamp.
        {
            "name": "emailAddress",
            "value": "foo@bar.com",
            "timestamp": 123456789
        }

            ●   Son referenciadas por un row-key.

    ●   Es el tipo de datos básico de Cassandra.
Modelo de Datos
●   Familias de Columnas:
    ●   Contiene múltiples Columnas, cada familia de columnas es
        almacenada en un archivo separado
●   SuperColumnas:
    ●   Columnas que contienen otras columnas.
●   Keyspace:
    ●   Agrupa las Familias de Columnas, tipicamente uno por aplicación
●   Cluster
Comparación con RDBMS
●   Con 50 Gb
    ●   MySQL lee en +o- 350 ms
    ●   MySQL escribe en +o- 300 ms
    ●   Cassandra escribe en 0.12 ms
    ●   Cassandra lee en 15 ms
Instalación y Puesta en Marcha
1) Descargar la ultima versión (0.5.1 actual)
●   Web oficial: http://cassandra.apache.org/
2) Descomprimimos en cualquier carpeta.
3) Creamos el directorio de datos y de log por defecto:
●   sudo mkdir -p /var/log/cassandra
●   sudo mkdir -p /var/lib/cassandra
●   sudo chown -R usuario /var/lib/cassandra
●   sudo chown -R usuario /var/log/cassandra
4) Ejecutamos con: bin/cassandra -f
Instalación y Puesta en Marcha
1) Descargar la ultima versión (0.5.1 actual)
●   Web oficial: http://cassandra.apache.org/
2) Descomprimimos en cualquier carpeta.
3) Creamos el directorio de datos y de log por defecto:
●   sudo mkdir -p /var/log/cassandra
●   sudo mkdir -p /var/lib/cassandra
●   sudo chown -R usuario /var/lib/cassandra
●   sudo chown -R usuario /var/log/cassandra
4) Ejecutamos con: bin/cassandra -f
●   Ver conf/storage-conf.xml
Conectandonos a Cassandra
Usamos la herramienta cassandra-cli:


Para correrla escribimos en la consola:
$ bin/cassandra-cli --host localhost --port 9160


Connected to localhost/9160
Welcome to cassandra CLI.
Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.
Conectandonos a Cassandra
cassandra> set Keyspace1.Standard1['wyanez']['nombre']='William'
Value inserted.
cassandra> set Keyspace1.Standard1['wyanez']['apellido']='Yanez'
Value inserted.
cassandra> set Keyspace1.Standard1['wyanez']['edad']='39'
Value inserted.
cassandra> set Keyspace1.Standard1['wyanez']['tlf1']='0426-5529140'
Value inserted.
cassandra> get Keyspace1.Standard1['wyanez']
=> (column=tlf1, value=0426-5529140, timestamp=1269577777158)
=> (column=nombre, value=William, timestamp=1269577730679)
=> (column=edad, value=39, timestamp=1269577764734)
=> (column=apellido, value=Yanez, timestamp=1269577754462)
Returned 4 results.
Y los Lenguajes de Programación ?
●   Ruby (http://github.com/fauna/cassandra/tree/master)
●   Perl
●   Python
●   Java
●   Php
●   C++
●   C# /. Net
●   Otros: Scala, Clojure, Grails.
●   Todos usan la API Thrift (bajo nivel)
Ruby & Cassandra
●   http://github.com/fauna/cassandra/tree/master
●   gem install cassandra
●   Y listo... veamos ahora el queso a la tostada
Ruby & Cassandra
require 'rubygems'
require 'cassandra'
include Cassandra::Constants


client = Cassandra.new('Keyspace1')
res= client.get(:Standard1 ,'wyanez')
puts res.inspect

Más contenido relacionado

La actualidad más candente

Apache cassandra
Apache cassandraApache cassandra
Apache cassandra
libra_hch
 

La actualidad más candente (20)

Apache cassandra
Apache cassandraApache cassandra
Apache cassandra
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
Sql Saturday Guatemala 2018 - Azure SQL Data Warehouse
Sql Saturday Guatemala 2018 - Azure SQL Data WarehouseSql Saturday Guatemala 2018 - Azure SQL Data Warehouse
Sql Saturday Guatemala 2018 - Azure SQL Data Warehouse
 
Bases de Datos NoSQL - Riak
Bases de Datos NoSQL - Riak Bases de Datos NoSQL - Riak
Bases de Datos NoSQL - Riak
 
Apache cassandra
Apache cassandraApache cassandra
Apache cassandra
 
Tutorial de como configurar y instalar Cassandra
Tutorial de como configurar y instalar Cassandra Tutorial de como configurar y instalar Cassandra
Tutorial de como configurar y instalar Cassandra
 
Presentacion BD NoSQL
Presentacion  BD NoSQLPresentacion  BD NoSQL
Presentacion BD NoSQL
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datos
 
Couchdb
CouchdbCouchdb
Couchdb
 
Diaposotivas apache-cassandra
Diaposotivas apache-cassandraDiaposotivas apache-cassandra
Diaposotivas apache-cassandra
 
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
 
Presentacion sobre cassandra
Presentacion sobre cassandraPresentacion sobre cassandra
Presentacion sobre cassandra
 
Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrollo
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
 
No sql la nueva era
No sql la nueva eraNo sql la nueva era
No sql la nueva era
 
PostgreSQL vs MySQL: PostgreSQL como alternativa.
PostgreSQL vs MySQL: PostgreSQL como alternativa.PostgreSQL vs MySQL: PostgreSQL como alternativa.
PostgreSQL vs MySQL: PostgreSQL como alternativa.
 
Act4 basesdedatos oscar_varona
Act4 basesdedatos oscar_varonaAct4 basesdedatos oscar_varona
Act4 basesdedatos oscar_varona
 
Mysql cluster
Mysql clusterMysql cluster
Mysql cluster
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
MongoDB
MongoDBMongoDB
MongoDB
 

Similar a Intro cassandra

Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
Johanna Mendez
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
Johanna Mendez
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_p
edvin_marcelo
 

Similar a Intro cassandra (20)

Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Sysmana 2017 monitorización de logs con el stack elk
Sysmana 2017   monitorización de logs con el stack elkSysmana 2017   monitorización de logs con el stack elk
Sysmana 2017 monitorización de logs con el stack elk
 
Update Big Data 2014
Update Big Data 2014Update Big Data 2014
Update Big Data 2014
 
Postgresql expo
Postgresql expoPostgresql expo
Postgresql expo
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)
 
Reporte cluster
Reporte clusterReporte cluster
Reporte cluster
 
Las cronicas de redis
Las cronicas de redisLas cronicas de redis
Las cronicas de redis
 
NOSQL apache-cassandra-150611122739-lva1-app6891
NOSQL apache-cassandra-150611122739-lva1-app6891NOSQL apache-cassandra-150611122739-lva1-app6891
NOSQL apache-cassandra-150611122739-lva1-app6891
 
Cluster MySQL en Windows
Cluster MySQL en WindowsCluster MySQL en Windows
Cluster MySQL en Windows
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Clúster
ClústerClúster
Clúster
 
Terraspace, the definitive terraform framework
Terraspace, the definitive terraform frameworkTerraspace, the definitive terraform framework
Terraspace, the definitive terraform framework
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Pg pool cluster postgresql
Pg pool cluster postgresqlPg pool cluster postgresql
Pg pool cluster postgresql
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_p
 
Estudio sobre Spark, Storm, Kafka y Hive
Estudio sobre Spark, Storm, Kafka y HiveEstudio sobre Spark, Storm, Kafka y Hive
Estudio sobre Spark, Storm, Kafka y Hive
 
NO SQL y Cassandra
NO SQL y CassandraNO SQL y Cassandra
NO SQL y Cassandra
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
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
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

Intro cassandra

  • 1. Introducción a Ingenieria de Sotware I – Cohorte 2010 Ing. Liliana Paradas Ing. William Yánez
  • 2. Introducción ● Es un sistema de administración de base de datos distribuida, open source, diseñado para manejar grandes cantidades de datos. ● Se autodefine como “Altamente escalable, eventualmente consistente, distribuida y basada en datos clave-valor”. ● Es una solución NoSQL, inicialmente desarrollada por Facebook (liberado en julio 2008) y desde Marzo 2009 es un proyecto de la fundación Apache (Feb 17 2010 top- level). ● Esta basada en BigTable (Módelo de Datos) y Amazon Dynamo (infraestructura). ● Desarrollado en Java.
  • 3. Características ● Probado ● Digg, Facebook, Twitter, entre otros ● Descentralizada ● Todos los nodos de uncluster son identicos. No hay “Single Point of Failure” (SPOF) ● Tolerante a fallas ● La data es automáticamente replicada a todos los nodos. ● Elasticidad ● El incremento del rendimiento es lineal a la cantidad de nodos agregados al cluster (sin downtime). ● Modelo de Datos Eficiente y Simple => clave/valor
  • 4. Modelo de Datos ● Columnas: ● Es una tripleta que contiene un nombre, un valor y un timestamp. { "name": "emailAddress", "value": "foo@bar.com", "timestamp": 123456789 } ● Son referenciadas por un row-key. ● Es el tipo de datos básico de Cassandra.
  • 5. Modelo de Datos ● Familias de Columnas: ● Contiene múltiples Columnas, cada familia de columnas es almacenada en un archivo separado ● SuperColumnas: ● Columnas que contienen otras columnas. ● Keyspace: ● Agrupa las Familias de Columnas, tipicamente uno por aplicación ● Cluster
  • 6. Comparación con RDBMS ● Con 50 Gb ● MySQL lee en +o- 350 ms ● MySQL escribe en +o- 300 ms ● Cassandra escribe en 0.12 ms ● Cassandra lee en 15 ms
  • 7. Instalación y Puesta en Marcha 1) Descargar la ultima versión (0.5.1 actual) ● Web oficial: http://cassandra.apache.org/ 2) Descomprimimos en cualquier carpeta. 3) Creamos el directorio de datos y de log por defecto: ● sudo mkdir -p /var/log/cassandra ● sudo mkdir -p /var/lib/cassandra ● sudo chown -R usuario /var/lib/cassandra ● sudo chown -R usuario /var/log/cassandra 4) Ejecutamos con: bin/cassandra -f
  • 8. Instalación y Puesta en Marcha 1) Descargar la ultima versión (0.5.1 actual) ● Web oficial: http://cassandra.apache.org/ 2) Descomprimimos en cualquier carpeta. 3) Creamos el directorio de datos y de log por defecto: ● sudo mkdir -p /var/log/cassandra ● sudo mkdir -p /var/lib/cassandra ● sudo chown -R usuario /var/lib/cassandra ● sudo chown -R usuario /var/log/cassandra 4) Ejecutamos con: bin/cassandra -f ● Ver conf/storage-conf.xml
  • 9. Conectandonos a Cassandra Usamos la herramienta cassandra-cli: Para correrla escribimos en la consola: $ bin/cassandra-cli --host localhost --port 9160 Connected to localhost/9160 Welcome to cassandra CLI. Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.
  • 10. Conectandonos a Cassandra cassandra> set Keyspace1.Standard1['wyanez']['nombre']='William' Value inserted. cassandra> set Keyspace1.Standard1['wyanez']['apellido']='Yanez' Value inserted. cassandra> set Keyspace1.Standard1['wyanez']['edad']='39' Value inserted. cassandra> set Keyspace1.Standard1['wyanez']['tlf1']='0426-5529140' Value inserted. cassandra> get Keyspace1.Standard1['wyanez'] => (column=tlf1, value=0426-5529140, timestamp=1269577777158) => (column=nombre, value=William, timestamp=1269577730679) => (column=edad, value=39, timestamp=1269577764734) => (column=apellido, value=Yanez, timestamp=1269577754462) Returned 4 results.
  • 11. Y los Lenguajes de Programación ? ● Ruby (http://github.com/fauna/cassandra/tree/master) ● Perl ● Python ● Java ● Php ● C++ ● C# /. Net ● Otros: Scala, Clojure, Grails. ● Todos usan la API Thrift (bajo nivel)
  • 12. Ruby & Cassandra ● http://github.com/fauna/cassandra/tree/master ● gem install cassandra ● Y listo... veamos ahora el queso a la tostada
  • 13. Ruby & Cassandra require 'rubygems' require 'cassandra' include Cassandra::Constants client = Cassandra.new('Keyspace1') res= client.get(:Standard1 ,'wyanez') puts res.inspect