Pandra: librería PHP para trabajar con Cassandra
Para aquellos que necesiten Cassandra en sus proyectos o quieran trastear con él, les vendrá muy bien esta librería basada en CRUD. Soporta las estructuras de datos ofrecida por Cassandra y sus tipos de datos:
- Column: clave-valor y el timestamp
- Column Family: un array asociativo que contiene columnas, el cual sólo debe tener un clave paterna
- Super Column: practicamente igual que la Column Family, sin embargo tiene una Super Column Family como padre. Puede haber varias Super Columns para una clave
- Super Column Family: contenedor de Super Column
- Key ID: clave única
- Key Space: nivel más alto, sería el equivalente a la base de datos
Un ejemplo de código sería el siguiente:
class Address extends PandraSuperColumn {
public function init() {
$this->addColumn('city', 'string');
$this->addColumn('street', 'string');
$this->addColumn('zip', 'int');
}
}
class Addresses extends PandraSuperColumnFamily {
public function init() {
$this->setKeySpace('Keyspace1');
$this->setName('Super1');
$this->addSuper(new Address('homeAddress'));
$this->addSuper(new Address('workAddress'));
}
}
$keyID = 'kenlogin';
$addrs = new Addresses();
$addrs->setKeyID($keyID);
// home address
$homeAddr = $addrs->getColumn('homeAddress');
$homeAddr->setColumn('city', 'san francisco');
$homeAddr->setColumn('street', '1234 x street');
$homeAddr->setColumn('zip', '94107');
// work address
$workAddr = $addrs->getColumn('workAddress');
$workAddr->setColumn('city', 'san jose');
$workAddr->setColumn('street', '9876 y drive');
// custom labelled supercolumn
$customAddr = new Address(''customAddress');
$customAddr->setColumn('city', 'another city');
$addrs->addSuper($customAddr);
// Saving via Column Family
$addrs->save();
// Saving via Super Column,
$customAddr->setColumn('city', 'another city');
$customAddr->save();
Dale un ojo a esto
http://phpcamp.net/toolbar/cassandra-is-my-nosql-solution-but
Taufpate, interesante el link que pasas. La verdad es que Cassandra está genial, pero no es oro todo lo que reluce, yo un problema que veo son las búsquedas de contenido, para lo que necesitarÃas instalar Lucandra.
Saludos y gracias