2013-09-05 32 views

cevap

34

sizin kümeleme tuşları ki i'inci anahtar adıdır ve ti i anahtar türüdür

k1 t1, k2 t2, ..., kn tn 

olduğunu varsayalım. Daha sonra, sipariş verisi depolandığında, her bir boyutun bu tür için karşılaştırıcı kullanılarak karşılaştırıldığı sözcüksel sıralamadır. Yani

(a1, a2, ..., an) < (b1, b2, ..., Bn) a1 < b1 kullanılarak t1 karşılaştırıcı veya a1 = b1 ve a2 < b2 kullanılarak t2 karşılaştırıcı olması durumunda veya (t3 karşılaştırıcısı kullanılarak a1 = b1 ve a2 = b2) ve a3 < b3, vs ..

Bu, verilerin birlikte depolandığından, belirli bir k1 = a ile tüm satırları bulmanın etkili olduğu anlamına gelir. Ancak, i> 1 için ki = x ile tüm satırları bulmak yetersiz kalıyor. Aslında böyle bir sorguya izin verilmiyor - izin verilmeyen ilk kümeden başlayarak sıfırdan veya daha fazla kümelenme anahtarını belirtmesine izin verilen tek küme anahtarı kısıtlamaları .

Örneğin

, şema düşünün

create table clustering (
    x text, 
    k1 text, 
    k2 int, 
    k3 timestamp, 
    y text, 
    primary key (x, k1, k2, k3) 
); 

aşağıdaki uçlar yaptıysak:

insert into clustering (x, k1, k2, k3, y) values ('x', 'a', 1, '2013-09-10 14:00+0000', '1'); 
insert into clustering (x, k1, k2, k3, y) values ('x', 'b', 1, '2013-09-10 13:00+0000', '1'); 
insert into clustering (x, k1, k2, k3, y) values ('x', 'a', 2, '2013-09-10 13:00+0000', '1'); 
insert into clustering (x, k1, k2, k3, y) values ('x', 'b', 1, '2013-09-10 14:00+0000', '1'); 
sonra

onlar diskte bu sırayla depolanır (sipariş select * from clustering where x = 'x' döner):

x | k1 | k2 | k3      | y 
---+----+----+--------------------------+--- 
x | a | 1 | 2013-09-10 14:00:00+0000 | 1 
x | a | 2 | 2013-09-10 13:00:00+0000 | 1 
x | b | 1 | 2013-09-10 13:00:00+0000 | 1 
x | b | 1 | 2013-09-10 14:00:00+0000 | 1 

k1 siparişi bastırmaları, daha sonra k2, daha sonra k3.

+0

Teşekkürler Richard. Bir örnek verebilir misiniz lütfen? – Vinodh

+2

Cevabım için bir örnek ekledim. – Richard

+1

Çok teşekkürler Richard. Örneğinizden, kümeleme sütunlarını ve CQL belgelerini "PRIMARY KEY konuları için sütunların tanımlandığı sıralamayı" anlayabiliyorum. http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmt. – Vinodh