Bir web uygulamasında ilk kez Cassandra'yı kullanıyorum ve bir sorgu sorunum var. İşte benim sekmesi: Her İstek üzerinecassandra birincil anahtar sütunu kısıtlanamaz
CREATE TABLE vote (
doodle_id uuid,
user_id uuid,
schedule_id uuid,
vote int,
PRIMARY KEY ((doodle_id), user_id, schedule_id)
);
, benim bölüm anahtar, doodle_id göstermektedir.
select * from vote where doodle_id = c4778a27-f2ca-4c96-8669-15dcbd5d34a7 and user_id = 97a7378a-e1bb-4586-ada1-177016405142;
Ama geçen istek üzerine yaptığım: Örneğin ben herhangi bir sorun olmadan yapabilirsiniz
select * from vote where doodle_id = c4778a27-f2ca-4c96-8669-15dcbd5d34a7 and schedule_id = c37df0ad-f61d-463e-bdcc-a97586bea633;
aldığım aşağıdaki hata:
Bad Request: PRIMARY KEY column "schedule_id" cannot be restricted (preceding column "user_id" is either not restricted or by a non-EQ relation)
Birlikte yeniyim Cassandra, ama eğer yanılıyorsam düzeltin, birleşik bir ana anahtarda, ilk kısım Cassandra'nın veriyi nerede arayacağını bilmesine izin vermek için gerekli olan PARTITION KEY. Sonra, diğer parçalar veri sıralamak için KÜME ANAHTARI.
Ama hala ilk isteğimin neden işe yaradığını anlamıyorum, ikincisi değil?
Herhangi biri yardımcı olabilirse, bu büyük bir zevk olacaktır.
İki cevap için çok teşekkürler! Şimdi Cassandra'nın nasıl çalıştığını biraz daha iyi anlıyorum. Bu yüzden, sorgularımı ele aldığınız için yeni bir tablo oluşturdum ve şimdi iyi çalışıyor. – Orodan
ve doodleid'de> ve
@ParthTrivedi 'doodle_id' üzerinde bir aralıklı sorgulama yapmak için, farklı bir bölüm anahtarı ile yeni bir tablo oluşturmanız gerekir (verileriniz için neyin mantıklı olduğunu öğrenin). Ardından, belirli bir bölüm anahtarı için 'doodle_id' aralığını sorgulayabilirsiniz. – Aaron