SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Cassandra           [Parte práctica]

     Base de Datos NoSQL clave/valor
___________________________________________________________________________


                            Jesús Rodríguez Pérez
Modelo de datos de Cassandra

Antes de empezar con el diseño de una base datos en cassandra debemos al
menos repasar los conceptos básicos de su modelo de datos.
 ● Cluster: nodos que ejecutan una instancia de Cassandra, estos pueden
    contener varios keyspaces.
 ● Keyspace: un espacio de nombres que permite agrupar varias
    ColumnFamilies. Sería el equivalente a una BBDD en el modelo relacional.
 ● ColumnFamily: puede contener varias columns. Sería equivalente a una
    tabla en el modelo relacional. No todas las filas de una ColumnFamily tienen
    el porque tener el mismo número de columnas. Cada fila se identifica por su
    row key
 ● Column: unidad básica de almacenamiento. Están compuestas por name,
    value y timestamp.
 ● SuperColumn: son columnas que pueden almacenar otras columnas. No se
    suelen utilizar.

Será necesario también conocer cómo funcionan los índices ya que estos nos
permiten hacer consultas más complejas.
Diseño de una BD NoSQL
Creando estructuras

Crear el keyspace
create keyspace Comercio with
  placement_strategy=
  'org.apache.cassandra.locator.SimpleStrategy' and
  strategy_options={replication_factor:1};




Una vez creado la indicamos que vamos a
trabajar con dicho keyspace.
use Comercio;
Creando estructuras(2)

Una familia de columnas
create column family usuario with comparator=UTF8Type and
key_validation_class=IntegerType and
default_validation_class=UTF8Type and
column_metadata =[
   {column_name: nombre, validation_class: UTF8Type},
   {column_name: mail, validation_class: UTF8Type},
   {column_name: pais, validation_class: UTF8Type,
                 index_type: KEYS},
   {column_name: fechaIngreso, validation_class: DateType}
];
Consultando datos

                 Row key
  ColumnFamily             Column


get usuario[1][mail];               Solo si hemos
                                    creado el
get usuario[1];                     índice.

list usuario;

get venta where pagada=false;

list producto limit 3;
Insertando datos


set usuario[1][nombre] = 'Jesus';                  Un usuario
set usuario[1][mail] = 'jesus@mail.net';
set usuario[1][fechaIngreso]='2012-05-12';

set usuario[1][trololo]='yes';

set IdPorMail['jesus@mail.net'][keyUsuario]=1;     Un producto
INCR login_counter[1][login] BY 0;


set producto['product1'][nombre]='aceite oliva';
                                                   Una venta
set venta[1][keyUsuario]=1;
set venta[1][pagada]=false;
set venta[1]['product1']=5;
set venta[1][pagada]=false;
Borrando


del usuario[3][mail];

del usuario[3];

drop index on usuario.pais;

drop column family usuario;

drop keyspace comercio;
Introducción a CQL

Creación de estructuras
  CREATE KEYSPACE tpv WITH strategy_class =
  'NetworkTopologyStrategy'
  AND strategy_options:DC1 = 2 AND strategy_options:
  DC2 = 2;



  CREATE COLUMNFAMILY usuarios(
   ID uuid PRIMARY KEY,
   nombre varchar, password varchar, mail varchar
  ) WITH replicate_on_write=true AND
  default_validation=varchar AND comparator=varchar;
Introducción a CQL(2)


Inserción y consulta
  INSERT INTO usuarios (ID, nombre, mail) VALUES (1, 'jesus',
  'jesus@mail.net') USING CONSISTENCY LOCAL_QUORUM AND TTL 600;

  SELECT nombre, mail FROM usuarios;

  SELECT * FROM usuarios;

  SELECT * FROM producto
    WHERE referencia in ('product1', 'product2');
Introducción a phpcassa

Después de instalar Cassandra(la distribución
de Datastax Community Edition), apache2 y
PHP5 ahora toca phpcassa.
Simplemente nos descargamos phpcassa y lo
descomprimimos en un directorio accesible por
apache.
Para cargarla solo tenemos que poner:
require_once(__DIR__.'/../lib/autoload.php');
Introducción a phpcassa(2)

Y un poco más de código para usarla
Conexión
use phpcassaConnectionConnectionPool;
use phpcassaSystemManager;

$sys = new SystemManager('127.0.0.1');
$pool = new ConnectionPool('Comercio', array
('127.0.0.1'));

// ...
// ...

$pool->close();
$sys->close();
Introducción a phpcassa(2)


Consultas simples
use phpcassaColumnFamily;

$usuario = new ColumnFamily($pool, 'usuario');
$IdPorMail = new ColumnFamily($pool, 'IdPorMail');

$user1 = $usuario->get(1);
$nombre = $user1["nombre"];
echo "Usuario $nombre";


$id=$IdPorMail->get($user1["mail"]);
echo $id["keyUsuario"];
Introducción a phpcassa(3)

Consultas algo más complejas
use phpcassaColumnSlice;
use phpcassaIndexIndexExpression;
use phpcassaIndexIndexClause;

$venta = new ColumnFamily($pool, 'venta');
$producto = new ColumnFamily($pool, 'producto');

$n=$venta->get_count('1');
echo $n;

$index_KeyUser = new IndexExpression('keyUsuario', 1);
$index_pay = new IndexExpression('pagada', false);
$index_clause = new IndexClause(array($index_KeyUser ,$index_pay));
$rows = $venta->get_indexed_slices($index_clause);

foreach($rows as $key => $columns) {
    Print_r($columns);
}
Thrift y otros clientes


Thrift es un conjunto de herramientas y
librerías que permite crear interfaces
genéricas con las que podemos
generar todo el código necesario para
utilizarlo en otros lenguajes.

 thrift --gen <language> <Thrift filename>
Herramientas de administración
               gráficas

●   Cassandra-Cluster-Admin
    El equivalente a phpMyAdmin
    https://github.com/sebgiroux/Cassandra-Cluster-Admin
●   OpsCenter
    Viene en con Datastax Comunity Edition.
    Es el más completo, muestra estadísticas de rendimiento de
    los nodos...
    http://www.datastax.com/products/opscenter
●   Cassandra-gui
    De forma bastante simple permite administrar Cassandra.
    http://code.google.com/a/apache-extras.org/p/cassandra-gui/
Para seguir aprendiendo


●   Tutorial sobre CQL
●   Una serie de tutoriales de un blog
●   Grupo de NoSQL de google
●   Tutorial sobre Hector
●   Blog
●   Post sobre cassandra en C++
●   Casos prácticos de clientes
●   NosqlTape (entrevistas)
●   Videotutoriales de Cassandra
¿PREGUNTAS?
Bonus Track: Supercolumnas

Creación
  create column family pruebaSuper
  with comparator=UTF8Type and
  key_validation_class=UTF8Type and
  default_validation_class=UTF8Type and
  column_type = 'Super' and
  subcomparator = 'UTF8Type' and
  column_metadata =[
     {column_name: supercol,
  validation_class: UTF8Type}
  ];
Bonus Track: Super columnas

Inserción
set pruebasuper[1][supercol1][col]='1-1-1';


set pruebasuper[1][supercol1][col2]='1-1-2';


set pruebasuper[key][supercol2][col2]='2-2';


set pruebasuper[esto][es][free]='style';
Bonus Track: Super columnas

Consultas
get pruebasuper[1];




Listar las filas
   list pruebasuper;

Más contenido relacionado

La actualidad más candente

Introduccion a Cassandra
Introduccion a CassandraIntroduccion a Cassandra
Introduccion a CassandraStratebi
 
No sql la nueva era
No sql la nueva eraNo sql la nueva era
No sql la nueva eraJuan Navas
 
Android DB por Cesar Cespedes
Android DB por Cesar CespedesAndroid DB por Cesar Cespedes
Android DB por Cesar CespedesLima GTUG
 
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 nubeRodrigo Corral
 
Mongodb administración
Mongodb administraciónMongodb administración
Mongodb administraciónJuan Ladetto
 
Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrolloJuan Ladetto
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryGonzalo Chacaltana
 
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 DentroEQ SOFT EIRL
 
Características MONGO DB
Características MONGO DBCaracterísticas MONGO DB
Características MONGO DBmaxfontana90
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentesManuelHernandezz
 
Mejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos OracleMejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos Oraclejftorres92
 

La actualidad más candente (20)

Introduccion a Cassandra
Introduccion a CassandraIntroduccion a Cassandra
Introduccion a Cassandra
 
Nosql y cassandra
Nosql y cassandraNosql y cassandra
Nosql y cassandra
 
Informe cassandra
Informe cassandraInforme cassandra
Informe cassandra
 
Intro cassandra
Intro cassandraIntro cassandra
Intro cassandra
 
Diaposotivas apache-cassandra
Diaposotivas apache-cassandraDiaposotivas apache-cassandra
Diaposotivas apache-cassandra
 
TUTO CASSANDRA LC
TUTO CASSANDRA LCTUTO CASSANDRA LC
TUTO CASSANDRA LC
 
No sql la nueva era
No sql la nueva eraNo sql la nueva era
No sql la nueva era
 
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
 
Android DB por Cesar Cespedes
Android DB por Cesar CespedesAndroid DB por Cesar Cespedes
Android DB por Cesar Cespedes
 
Base de datos - Clase 1
Base de datos - Clase 1Base de datos - Clase 1
Base de datos - Clase 1
 
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
 
Couchdb
CouchdbCouchdb
Couchdb
 
Mongodb administración
Mongodb administraciónMongodb administración
Mongodb administración
 
Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrollo
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
 
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
 
Características MONGO DB
Características MONGO DBCaracterísticas MONGO DB
Características MONGO DB
 
NoSQL - MongoDB
NoSQL - MongoDBNoSQL - MongoDB
NoSQL - MongoDB
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
Mejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos OracleMejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos Oracle
 

Destacado

La api de salesforce
La api de salesforceLa api de salesforce
La api de salesforcejesusnoseq
 
Educación y datos masivos (Big Data)
Educación y datos masivos (Big Data)Educación y datos masivos (Big Data)
Educación y datos masivos (Big Data)Fernando Santamaría
 
7 New Tools Java Developers Should Know
7 New Tools Java Developers Should Know7 New Tools Java Developers Should Know
7 New Tools Java Developers Should KnowTakipi
 
Big Data Open Source Analytics (español)
Big Data Open Source Analytics (español)Big Data Open Source Analytics (español)
Big Data Open Source Analytics (español)Stratebi
 
Big Data y Minería de datos
Big Data y Minería de datos Big Data y Minería de datos
Big Data y Minería de datos Luis Joyanes
 
Monta una Infraestructura Big Data para tu Empresa - Sesión I
Monta una Infraestructura Big Data para tu Empresa - Sesión IMonta una Infraestructura Big Data para tu Empresa - Sesión I
Monta una Infraestructura Big Data para tu Empresa - Sesión IUrko Zurutuza
 
Big data para principiantes
Big data para principiantesBig data para principiantes
Big data para principiantesCarlos Toxtli
 
Apache Storm vs. Spark Streaming - two stream processing platforms compared
Apache Storm vs. Spark Streaming - two stream processing platforms comparedApache Storm vs. Spark Streaming - two stream processing platforms compared
Apache Storm vs. Spark Streaming - two stream processing platforms comparedGuido Schmutz
 
Estudio "Big Data: retos y oportunidades para el turismo"
Estudio "Big Data: retos y oportunidades para el turismo"Estudio "Big Data: retos y oportunidades para el turismo"
Estudio "Big Data: retos y oportunidades para el turismo"Invattur
 
Introducción al Big Data
Introducción al Big DataIntroducción al Big Data
Introducción al Big DataDavid Alayón
 
Realtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and HadoopRealtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and HadoopDataWorks Summit
 
Kafka and Storm - event processing in realtime
Kafka and Storm - event processing in realtimeKafka and Storm - event processing in realtime
Kafka and Storm - event processing in realtimeGuido Schmutz
 

Destacado (15)

Standard svg
Standard svgStandard svg
Standard svg
 
La api de salesforce
La api de salesforceLa api de salesforce
La api de salesforce
 
Cassandra db
Cassandra dbCassandra db
Cassandra db
 
Educación y datos masivos (Big Data)
Educación y datos masivos (Big Data)Educación y datos masivos (Big Data)
Educación y datos masivos (Big Data)
 
7 New Tools Java Developers Should Know
7 New Tools Java Developers Should Know7 New Tools Java Developers Should Know
7 New Tools Java Developers Should Know
 
Big Data Open Source Analytics (español)
Big Data Open Source Analytics (español)Big Data Open Source Analytics (español)
Big Data Open Source Analytics (español)
 
Big Data y Minería de datos
Big Data y Minería de datos Big Data y Minería de datos
Big Data y Minería de datos
 
Monta una Infraestructura Big Data para tu Empresa - Sesión I
Monta una Infraestructura Big Data para tu Empresa - Sesión IMonta una Infraestructura Big Data para tu Empresa - Sesión I
Monta una Infraestructura Big Data para tu Empresa - Sesión I
 
Big data para principiantes
Big data para principiantesBig data para principiantes
Big data para principiantes
 
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4jBases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
 
Apache Storm vs. Spark Streaming - two stream processing platforms compared
Apache Storm vs. Spark Streaming - two stream processing platforms comparedApache Storm vs. Spark Streaming - two stream processing platforms compared
Apache Storm vs. Spark Streaming - two stream processing platforms compared
 
Estudio "Big Data: retos y oportunidades para el turismo"
Estudio "Big Data: retos y oportunidades para el turismo"Estudio "Big Data: retos y oportunidades para el turismo"
Estudio "Big Data: retos y oportunidades para el turismo"
 
Introducción al Big Data
Introducción al Big DataIntroducción al Big Data
Introducción al Big Data
 
Realtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and HadoopRealtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and Hadoop
 
Kafka and Storm - event processing in realtime
Kafka and Storm - event processing in realtimeKafka and Storm - event processing in realtime
Kafka and Storm - event processing in realtime
 

Similar a Presentacion sobre cassandra

Similar a Presentacion sobre cassandra (20)

APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
BigData - NoSQL
BigData -  NoSQL BigData -  NoSQL
BigData - NoSQL
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntu
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005
 
No-SQL Databases
No-SQL DatabasesNo-SQL Databases
No-SQL Databases
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataforma
 
Sesion n°6
Sesion n°6Sesion n°6
Sesion n°6
 
MANUAL
MANUALMANUAL
MANUAL
 
Mysql
MysqlMysql
Mysql
 
Tema4[php]
Tema4[php]Tema4[php]
Tema4[php]
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sas
 
Postfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
Postfix y Dovecot con usuarios virtuales mysql en Debian WheezyPostfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
Postfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
 
Tema 7 Trabajando Con Mysql
Tema 7 Trabajando Con MysqlTema 7 Trabajando Con Mysql
Tema 7 Trabajando Con Mysql
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4
 
Metadata api en apex
Metadata api en apexMetadata api en apex
Metadata api en apex
 
Codeigniter101
Codeigniter101Codeigniter101
Codeigniter101
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 

Presentacion sobre cassandra

  • 1. Cassandra [Parte práctica] Base de Datos NoSQL clave/valor ___________________________________________________________________________ Jesús Rodríguez Pérez
  • 2. Modelo de datos de Cassandra Antes de empezar con el diseño de una base datos en cassandra debemos al menos repasar los conceptos básicos de su modelo de datos. ● Cluster: nodos que ejecutan una instancia de Cassandra, estos pueden contener varios keyspaces. ● Keyspace: un espacio de nombres que permite agrupar varias ColumnFamilies. Sería el equivalente a una BBDD en el modelo relacional. ● ColumnFamily: puede contener varias columns. Sería equivalente a una tabla en el modelo relacional. No todas las filas de una ColumnFamily tienen el porque tener el mismo número de columnas. Cada fila se identifica por su row key ● Column: unidad básica de almacenamiento. Están compuestas por name, value y timestamp. ● SuperColumn: son columnas que pueden almacenar otras columnas. No se suelen utilizar. Será necesario también conocer cómo funcionan los índices ya que estos nos permiten hacer consultas más complejas.
  • 3. Diseño de una BD NoSQL
  • 4. Creando estructuras Crear el keyspace create keyspace Comercio with placement_strategy= 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options={replication_factor:1}; Una vez creado la indicamos que vamos a trabajar con dicho keyspace. use Comercio;
  • 5. Creando estructuras(2) Una familia de columnas create column family usuario with comparator=UTF8Type and key_validation_class=IntegerType and default_validation_class=UTF8Type and column_metadata =[ {column_name: nombre, validation_class: UTF8Type}, {column_name: mail, validation_class: UTF8Type}, {column_name: pais, validation_class: UTF8Type, index_type: KEYS}, {column_name: fechaIngreso, validation_class: DateType} ];
  • 6. Consultando datos Row key ColumnFamily Column get usuario[1][mail]; Solo si hemos creado el get usuario[1]; índice. list usuario; get venta where pagada=false; list producto limit 3;
  • 7. Insertando datos set usuario[1][nombre] = 'Jesus'; Un usuario set usuario[1][mail] = 'jesus@mail.net'; set usuario[1][fechaIngreso]='2012-05-12'; set usuario[1][trololo]='yes'; set IdPorMail['jesus@mail.net'][keyUsuario]=1; Un producto INCR login_counter[1][login] BY 0; set producto['product1'][nombre]='aceite oliva'; Una venta set venta[1][keyUsuario]=1; set venta[1][pagada]=false; set venta[1]['product1']=5; set venta[1][pagada]=false;
  • 8. Borrando del usuario[3][mail]; del usuario[3]; drop index on usuario.pais; drop column family usuario; drop keyspace comercio;
  • 9. Introducción a CQL Creación de estructuras CREATE KEYSPACE tpv WITH strategy_class = 'NetworkTopologyStrategy' AND strategy_options:DC1 = 2 AND strategy_options: DC2 = 2; CREATE COLUMNFAMILY usuarios( ID uuid PRIMARY KEY, nombre varchar, password varchar, mail varchar ) WITH replicate_on_write=true AND default_validation=varchar AND comparator=varchar;
  • 10. Introducción a CQL(2) Inserción y consulta INSERT INTO usuarios (ID, nombre, mail) VALUES (1, 'jesus', 'jesus@mail.net') USING CONSISTENCY LOCAL_QUORUM AND TTL 600; SELECT nombre, mail FROM usuarios; SELECT * FROM usuarios; SELECT * FROM producto WHERE referencia in ('product1', 'product2');
  • 11. Introducción a phpcassa Después de instalar Cassandra(la distribución de Datastax Community Edition), apache2 y PHP5 ahora toca phpcassa. Simplemente nos descargamos phpcassa y lo descomprimimos en un directorio accesible por apache. Para cargarla solo tenemos que poner: require_once(__DIR__.'/../lib/autoload.php');
  • 12. Introducción a phpcassa(2) Y un poco más de código para usarla Conexión use phpcassaConnectionConnectionPool; use phpcassaSystemManager; $sys = new SystemManager('127.0.0.1'); $pool = new ConnectionPool('Comercio', array ('127.0.0.1')); // ... // ... $pool->close(); $sys->close();
  • 13. Introducción a phpcassa(2) Consultas simples use phpcassaColumnFamily; $usuario = new ColumnFamily($pool, 'usuario'); $IdPorMail = new ColumnFamily($pool, 'IdPorMail'); $user1 = $usuario->get(1); $nombre = $user1["nombre"]; echo "Usuario $nombre"; $id=$IdPorMail->get($user1["mail"]); echo $id["keyUsuario"];
  • 14. Introducción a phpcassa(3) Consultas algo más complejas use phpcassaColumnSlice; use phpcassaIndexIndexExpression; use phpcassaIndexIndexClause; $venta = new ColumnFamily($pool, 'venta'); $producto = new ColumnFamily($pool, 'producto'); $n=$venta->get_count('1'); echo $n; $index_KeyUser = new IndexExpression('keyUsuario', 1); $index_pay = new IndexExpression('pagada', false); $index_clause = new IndexClause(array($index_KeyUser ,$index_pay)); $rows = $venta->get_indexed_slices($index_clause); foreach($rows as $key => $columns) { Print_r($columns); }
  • 15. Thrift y otros clientes Thrift es un conjunto de herramientas y librerías que permite crear interfaces genéricas con las que podemos generar todo el código necesario para utilizarlo en otros lenguajes. thrift --gen <language> <Thrift filename>
  • 16. Herramientas de administración gráficas ● Cassandra-Cluster-Admin El equivalente a phpMyAdmin https://github.com/sebgiroux/Cassandra-Cluster-Admin ● OpsCenter Viene en con Datastax Comunity Edition. Es el más completo, muestra estadísticas de rendimiento de los nodos... http://www.datastax.com/products/opscenter ● Cassandra-gui De forma bastante simple permite administrar Cassandra. http://code.google.com/a/apache-extras.org/p/cassandra-gui/
  • 17. Para seguir aprendiendo ● Tutorial sobre CQL ● Una serie de tutoriales de un blog ● Grupo de NoSQL de google ● Tutorial sobre Hector ● Blog ● Post sobre cassandra en C++ ● Casos prácticos de clientes ● NosqlTape (entrevistas) ● Videotutoriales de Cassandra
  • 19. Bonus Track: Supercolumnas Creación create column family pruebaSuper with comparator=UTF8Type and key_validation_class=UTF8Type and default_validation_class=UTF8Type and column_type = 'Super' and subcomparator = 'UTF8Type' and column_metadata =[ {column_name: supercol, validation_class: UTF8Type} ];
  • 20. Bonus Track: Super columnas Inserción set pruebasuper[1][supercol1][col]='1-1-1'; set pruebasuper[1][supercol1][col2]='1-1-2'; set pruebasuper[key][supercol2][col2]='2-2'; set pruebasuper[esto][es][free]='style';
  • 21. Bonus Track: Super columnas Consultas get pruebasuper[1]; Listar las filas list pruebasuper;