2015-06-04 36 views
5

Mam aplikację, w której "naturalny" klucz partycji dla tabeli Cassandra wydaje się być "klientem". To jest podstawowy sposób, w jaki chcemy zapytać o dane, uzyskalibyśmy dobrą dystrybucję danych, itp.Wybór klucza partycji dla tabeli Cassandra - ile jest za dużo partycji?

Ale gdyby było ponad milion klientów, czy byłoby to zbyt wiele różnych partycji?

Czy powinienem wybrać klucz partycji, który daje mniejszą liczbę klawiszy partycji?

Przyjrzałem się kilku pokrewnym pytaniom na ten temat, ale żaden nie odnosi się do tej konkretnej kwestii.

Odpowiedz

7

Ale gdyby było ponad milion klientów, czy byłoby to zbyt wiele różnych partycji?

Nie. Murmur3Partitioner obsługuje około 2^64 (-2^63 do + 2^63) partycji. Cassandra została zaprojektowana tak, aby była bardzo dobra w przechowywaniu dużych ilości danych i pobieraniu za pomocą klucza partycji. Istnieją ograniczenia dotyczące liczby kolumn w obrębie partycji (2 miliardy), ale dla całkowitej liczby partycji myślę, że wszystko będzie w porządku z tym, co masz.

Czy powinienem wybrać klucz partycji, który daje mniejszą liczbę klawiszy partycji?

Zdecydowanie nie. To może spowodować, że twoje partycje staną się zbyt duże i/lub rozwijać "gorące punkty" w klastrze.

Głównym zadaniem przy wyborze dobrego klucza partycji jest znalezienie takiego, który (oba) zapewnia dobrą dystrybucję danych w klastrze i dopasowuje wzorce zapytań. I z tego co czytam, brzmi, jakbyś właśnie to zrobił.

4

Myślę, że źle rozumiesz sposób użycia klucza partycji. Zalecany program partycjonujący przyjmuje wartości kluczy partycji, a następnie oblicza z nich 128-bitowy skrót. Wartość skrótu nazywa się tokenem tokenem rekordu i jest to wartość tokena, która określa miejsce przechowywania rekordu. Każdy węzeł Cassandra ma zestaw powiązanych z nim tokenów. Jeśli token rekordu przypada na zakres węzła, rekord jest przechowywany w tym węźle. Liczba partycji nie zależy od wybranego klucza partycji: jest to liczba zakresów znaczników w klastrze. Jest to mniej więcej tyle, ile całkowita liczba vnodes została wybrana podczas konfigurowania węzłów składnicy danych.

2

Jesteś dobry, aby przejść do bieżącego klucza partycji. Nie trzeba iść na kompozytowy klucz partycji, aby napędzać więcej partycji. Czy robisz modelowanie danych szeregów czasowych, zwiększając liczbę kolumn na sekundę. Jeśli NIE, twój bieżący klucz partycji może trafić do wielu milionów klientów.