2016-04-14 24 views
1

cassandra db'de 10 milyon satırlık bir tablom var. Normal seçim sorgusu kullanırsam, verileri almak için yalnızca cassandra'ya 1 bağlantım olabilir. Satır numarasıyla sorgu seçmek mümkün mü?Cassandra bölümünden verileri porsiyona getir

Yani 10 farklı iş parçacığım olabilir, bu nedenle her biri 1 milyon satır getirmekten sorumlu olacak. Bu mümkün ise, kümemde sahip olduğum düğüm sayısına eşit sayıda iş parçacığı olmalı mı?

Java datastax sürücüsünü kullanarak cassandra kümeme bağlanıyorum.

cevap

2

Satır numarasıyla sorgu seçmek mümkün müdür?

Hayır, ancak bölüm anahtarınızın hashed belirteci değerini temel alan bir aralık sorgusu yürütmek mümkündür.

Altı düğümlü kümeniz olduğunu varsayalım.

node start range    end range 
1)  9223372036854775808 to -9223372036854775808 
2) -9223372036854775807 to -5534023222112865485 
3) -5534023222112865484 to -1844674407370955162 
4) -1844674407370955161 to 1844674407370955161 
5)  1844674407370955162 to 5534023222112865484 
6)  5534023222112865485 to 9223372036854775807 

Bir tablo pkey bir bölme anahtarı ile abc denir ve 2'Düğümünde bu tablo için tüm satırları sorgulamak istedik varsa, benim sorgusu: Murmur3 birincil belirteç böyle bir 6 düğüm küme görünüm için aralıkları Bu şekilde görünecektir: bütün bir satırın değer çok fazla olursa

SELECT * FROM abc 
    WHERE token(pkey) > 9223372036854775808 
    AND token(pkey) <= -5534023222112865485; 

(ve bunu olacağını tahmin ediyorum) kullanarak, satır sayısı yönetilebilir hale gelene kadar senin jeton aralığı bisecting üzerinde çalışabilirsiniz. Unutmayın, 10 milyon satır seçerken Cassandra'nın özellikle iyi bir şekilde tasarlandığı bir şey değildir, bu yüzden birkaç deneme yapabilir.

İş parçacığı sayısıyla ilgili olarak, bu da bazı deneme yanılmalarına neden olabilir. Ancak düğüm başına bir iplik, makul bir başlangıç ​​noktası gibi görünür.