2012-11-21 4 views
4

J'essaye de modéliser des données de timesérie pour un réseau de capteurs dans Cassandra 11x. Mon principal cas d'utilisation consiste à interroger des plages de temps importantes à partir d'un périphérique source particulier. Je préférerais utiliser cql pour économiser du temps.Schéma CQL et timeseries

En utilisant cql3 je définir une table comme ceci:

create table example (
    source int, 
    sample_time timeuuid, 
    value double, 
    PRIMARY KEY (source,sample_time) 
); 

Mais cette partition résultats clés dans les lignes qui se développent rapidement trop large/chaud, et ne donne aucune parallélisation sur les requêtes. Idéalement, je voudrais définir un type de composition pour être ma clé de partition, est-ce supporté dans cql?

J'ai lu http://www.datastax.com/dev/blog/advanced-time-series-with-cassandra et la section sur les montages à haut débit est particulièrement pertinente. Dois-je me rabattre sur la définition de la disposition de stockage directement et oublier cql?

Répondre

3

Cela nécessite Cassandra 1.2:

CREATE TABLE foo (
    a int, 
    b text, 
    c uuid, 
    PRIMARY KEY ((a, b)) 
); 

vous donnera une clé de ligne moteur de stockage composited d'int, texte.