2013-06-06 2 views
1

Je veux insérer des données dans une famille de la colonne composite à travers CQL 3.structure colonnes Cassandra composite et insérer

create column family marks with 
comparator = 'CompositeType(DateType,UTF8Type,UTF8Type)' AND 
key_validation_class=UTF8Type AND 
default_validation_class=UTF8Type; 

La structure sera une fois avec la coquille cassandra-cli et le résultat seront enregistrés dans cassandra comme

**63** (2013-06-04 00:00:00 UTC, Science, 89.00): '' 
     (2013-06-04 00:00:00 UTC, Mathematics, 80.00): '' 
     (2013-06-04 00:00:00 UTC, English, 90.00):'' 

Ici, la clé de ligne est 63 qui est Clé primaire et Unique. Et les données seront sauvegardées dans cassandra comme ci-dessus seulement dans le nom de la colonne. Quelle sera la requête d'insertion pour cela et quel sera le pilote le plus approprié pour atteindre ce CQL3 ou l'épargne.

Répondre

1

En CQL3, vous le faites en utilisant une clé primaire composée:

CREATE TABLE marks (
    id text, 
    date timestamp, 
    subject text, 
    mark text, 
    PRIMARY KEY (id, date, subject, mark) 
) 

Avec ce schéma, id est la clé de la ligne puisqu'il apparaît en premier. Les noms de colonne sont un composite de date: subject: mark.

Vous pouvez alors insérer:

insert into marks (id, date, subject, mark) values ('63', '2013-06-04 00:00:00 UTC', 'Science', '89.00'); 
insert into marks (id, date, subject, mark) values ('63', '2013-06-04 00:00:00 UTC', 'Mathematics', '80.00'); 
insert into marks (id, date, subject, mark) values ('63', '2013-06-04 00:00:00 UTC', 'English', '90.00'); 

Et la liste:

> select * from marks; 

id | date      | subject  | mark 
----+--------------------------+-------------+------- 
63 | 2013-06-04 01:00:00+0100 |  English | 90.00 
63 | 2013-06-04 01:00:00+0100 | Mathematics | 80.00 
63 | 2013-06-04 01:00:00+0100 |  Science | 89.00 

Vous pouvez stocker la marque comme int (ou potentiellement flotter) afin que vous puissiez faire des comparaisons numériques dans vos requêtes.

Vous pouvez également stocker vos marques dans la valeur de la colonne plutôt que dans le nom de la colonne. Pour ce faire, supprimez la marque de la clé primaire. Ensuite, vous pourriez, par exemple, Construire un index secondaire sur les marques.

Questions connexes