2012-03-26 16 views
7

Muszę przetestować różne datamodele dla Cassandry. Zastanawiam się nad użyciem klucza złożonego utworzonego przez key1: key2 dla klucza rzędu. Przy tej konfiguracji na Cassandrze, na przykład, mogę zapytać, czy wszystkie wiersze mają określoną wartość key1 i jakąkolwiek wartość key2, ale jest to niemożliwe w inny sposób (uzyskaj wszystkie wiersze mające określoną wartość key2 i dowolny klucz1). Czy to prawda?Niezrozumienie klucza kompozytowego dla Cassandry

góry dzięki

Cesare

Odpowiedz

3

Jeśli używasz Zamówienie Zachowanie partycjonowania (OPP), to tak, klucze będą przechowywane sortowane, a następnie można uzyskać plastry w pewnym zakresie na przykład klucze Odp .: od A do A: Z - ale niekoniecznie dowolny: od A do dowolnego: Z.

Ale, OPP nie gwarantuje równomiernego rozłożenia kluczy między węzłami i może skończyć się "gorącymi punktami" zbyt dużej lub zbyt małej liczby kluczy. Prawdopodobnie chcesz użyć Random Partitioning (RP), która dystrybuuje klucze przez przechowywanie przez haszowanie we wszystkich węzłach.

Jednak, ponieważ kolumny są sortowane, użycie wartości złożonych może być dość wydajne, aby uzyskać dostęp do zakresów danych.

Szczegółowe informacje na temat wyszukiwania kolumn kompozytowych za pomocą Hector można znaleźć pod następującym numerem: question.

W razie potrzeby nazwy kolumn mogą być używane jako klucze do wykonywania zapytań Multiget w celu uzyskania dodatkowych wyszukiwań.

Powiązane problemy