Intro cassandra
Upcoming SlideShare
Loading in...5
×
 

Intro cassandra

on

  • 1,595 views

Introducción a Apache Cassandra co

Introducción a Apache Cassandra co

Statistics

Views

Total Views
1,595
Views on SlideShare
1,595
Embed Views
0

Actions

Likes
1
Downloads
39
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Intro cassandra Intro cassandra Presentation Transcript

  • 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 Marcha1) 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/cassandra4) Ejecutamos con: bin/cassandra -f
  • Instalación y Puesta en Marcha1) 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/cassandra4) Ejecutamos con: bin/cassandra -f● Ver conf/storage-conf.xml
  • Conectandonos a CassandraUsamos la herramienta cassandra-cli:Para correrla escribimos en la consola:$ bin/cassandra-cli --host localhost --port 9160Connected to localhost/9160Welcome to cassandra CLI.Type help or ? for help. Type quit or exit to quit.
  • Conectandonos a Cassandracassandra> set Keyspace1.Standard1[wyanez][nombre]=WilliamValue inserted.cassandra> set Keyspace1.Standard1[wyanez][apellido]=YanezValue inserted.cassandra> set Keyspace1.Standard1[wyanez][edad]=39Value inserted.cassandra> set Keyspace1.Standard1[wyanez][tlf1]=0426-5529140Value 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 & Cassandrarequire rubygemsrequire cassandrainclude Cassandra::Constantsclient = Cassandra.new(Keyspace1)res= client.get(:Standard1 ,wyanez)puts res.inspect