Académique Documents
Professionnel Documents
Culture Documents
[Parte prctica]
Creando estructuras
Crear el keyspace
create keyspace Comercio with
placement_strategy=
'org.apache.cassandra.locator.SimpleStrategy' and
strategy_options={replication_factor:1};
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];
get usuario[1];
list usuario;
get venta where pagada=false;
list producto limit 3;
Solo si hemos
creado el
ndice.
Insertando datos
Un usuario
set usuario[1][trololo]='yes';
set IdPorMail['jesus@mail.net'][keyUsuario]=1;
Un producto
INCR login_counter[1][login] BY 0;
Una venta
Borrando
del usuario[3][mail];
del usuario[3];
drop index on usuario.pais;
drop column family usuario;
drop keyspace comercio;
Introduccin a CQL
Creacin de estructuras
CREATE KEYSPACE tpv WITH strategy_class =
'NetworkTopologyStrategy'
AND strategy_options:DC1 = 2 AND strategy_options:
DC2 = 2;
Introduccin a CQL(2)
Insercin y consulta
INSERT INTO usuarios (ID, nombre, mail) VALUES (1, 'jesus',
'jesus@mail.net') USING CONSISTENCY LOCAL_QUORUM AND TTL 600;
Introduccin a phpcassa
Despus de instalar Cassandra(la distribucin
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');
Introduccin a phpcassa(2)
Y un poco ms de cdigo para usarla
Conexin
use phpcassa\Connection\ConnectionPool;
use phpcassa\SystemManager;
$sys = new SystemManager('127.0.0.1');
$pool = new ConnectionPool('Comercio', array
('127.0.0.1'));
// ...
// ...
$pool->close();
$sys->close();
Introduccin a phpcassa(2)
Consultas simples
use phpcassa\ColumnFamily;
$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"];
Introduccin a phpcassa(3)
Consultas algo ms complejas
use phpcassa\ColumnSlice;
use phpcassa\Index\IndexExpression;
use phpcassa\Index\IndexClause;
$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);
}
Herramientas de administracin
grficas
Cassandra-Cluster-Admin
El equivalente a phpMyAdmin
https://github.com/sebgiroux/Cassandra-Cluster-Admin
OpsCenter
Viene en con Datastax Comunity Edition.
Es el ms completo, muestra estadsticas 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/
PREGUNTAS?
set pruebasuper[1][supercol1][col2]='1-1-2';
set pruebasuper[key][supercol2][col2]='2-2';
set pruebasuper[esto][es][free]='style';