Cassandra'da bir sütun ailesinin pratik kısıtlamaları nelerdir?


10

Cassandra'da, birkaç binden fazla sütun ailesinin olması tavsiye edilmez , diyelim ki tartışma uğruna 2.000. 2.000'den fazla veri türünün kalıcı olması gerektiğinde, bir yaklaşım, her bir sütun ailesine ilişkisiz birden çok veri türü kırmak olacaktır.

Örneğin, tek bir CF, satır anahtarlarının farklı olması koşuluyla Siparişler, Faturalar ve Müşteriler içerebilir (örneğin, nesne türüyle ön ek getirilmiş, yani tek bir CF'nin anahtarları hem Order|1234ve hem de içerebilir Customer|1234). İkinci bir CF sözde Adresler, LineItems ve OrderTypes içerebilir. Bu yaklaşımın temel fizibilitesi göz önüne alındığında, bunun üzerindeki pratik sınırlar nelerdir? Örneğin, 10.000 tipteki nesnenin tümünü tek bir CF'ye koymak yanlış olur mu? Cassandra wiki'den anlayabildiğim kadarıyla , bir CF'nin boyutunda zor bir sınırlama yoktur.

Yanıtlar:


6

Ben hayran değilim. Her ikisi için de tanımlanmış sütunlarla OrdersOrCustomers adlı ilişkisel bir tablo oluşturmak kadar iyi bir fikir. Depolama motoru cezası, başlık altında seyrek hücre depolaması nedeniyle Cassandra'da biraz daha düşüktür, ancak yine de kötü bir uygulamadır.

Bu, verilerinizi eşlemek / azaltmak istediğinizde daha sonra ısırır; her görevin tüm verilerinizi taraması ve gerçekte ilgilendiğiniz (ör. müşteriler) ile eşleşmeyen satırları filtrelemesi gerekir. Ve Cassandra'nın CF başına izlediği istatistikleri anlamlandıran iyi şanslar. ("Bu CF, sipariş verilerimden dolayı başvurumun% 80'inin kaynağı mı? Yoksa birleştirildiği müşteri oturumları nedeniyle mi? Yoksa içine attığım diğer beş veri türü mü?")

Onlara veya yüz binlerce CF'ye kesinlikle pozitif ihtiyacınız varsa? O zaman bile, Cassandra'yı arena tahsisi olmadan çalıştırmayı tercih ederim, veri modelimi böyle ayırmak yerine.


Cevabınız için teşekkürler, Jonathan. Son cümleyi anlamak için arena tahsisini okumam gerekecek. Arena tahsisini kullanmak bir yapılandırma seçeneği midir?
Andrew Swan

Ya da bugünlerde Cassandra'ya arena tahsisi yapılıyorsa, yapılandırılabilir bir süre içinde erişilmemiş herhangi bir sütun ailesinin arenalarını dağıtmak ne kadar zor olurdu? Bu konuda bir JIRA bileti kaydetmeme değer mi?
Andrew Swan

1
Cassandra, hafıza baskısını hafifletmek için yıkama konusunda zaten akıllı. Sorun, her şeyin aktif olduğu en kötü senaryolarda.
jbellis

Hangi durumda ikinci bir halkaya sahip olacak tek çözüm?
Andrew Swan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.