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();
Pandra
Vaya, otra más… no la conocÃa. Tendrá que hacer competencia a MongoDB y CouchDB, que son muy similares, y según veo en el repositorio de Terrastore, más maduras.
Cierto, Isra, las dos DBs que mencionas son más maduras, pero ahora todo es “nuevo” en este sentido, por lo que hay que echar un ojo a lo nuevo que va apareciendo 🙂
Saludos