Jak powinien zostać zaprojektowany klucz rzędu, tak aby rząd z kluczem ~ 10 był ostatni?
W ten sposób widzisz wynik skanowania, ponieważ klawisze wierszy w HBase są sortowane lexicographically niezależnie od zamówienia reklamowego. Oznacza to, że są one sortowane na podstawie ich reprezentacji ciągów. Pamiętaj, że klawisze wiersza w HBase są traktowane jako tablica bajtów z reprezentacją ciągów znaków. Przycisk wiersza najniższego rzędu pojawia się jako pierwszy w tabeli. Dlatego 10 pojawia się przed 2 i tak dalej. Aby uzyskać więcej informacji na ten temat, zobacz sekcje Wiersze na temat tego .
Po opuszczeniu pad liczb całkowitych z zerami ich naturalna kolejność pozostaje nienaruszona podczas sortowania leksykograficznego i dlatego widzisz kolejność skanowania taką samą, jak kolejność włożenia danych. Aby to zrobić, możesz zaprojektować swoje klawisze wiersze zgodnie z sugestią @shutty.
Szukam niektórych zalecanych sposobów lub sposobów, które są bardziej popularne przy projektowaniu kluczy rzędu HBase.
Istnieją pewne ogólne wytyczne, których należy przestrzegać w celu opracowania dobrego projektu:
- utrzymać rowkey tak małe, jak to możliwe.
- Unikaj używania monotonicznie rosnących klawiszy wierszy, takich jak znacznik czasu itp. Jest to kiepski projekt shemma i prowadzi do hotspottingu RegionServer. Jeśli nie możesz tego uniknąć, np. Mieszania lub solenia, aby uniknąć hotspottingu.
- Unikaj używania ciągów jako klawiszy, jeśli to możliwe. Reprezentacja łańcuchowa liczby zajmuje więcej bajtów w porównaniu do jej liczby całkowitej lub długiej. Na przykład: Długi to 8 bajtów.W tych ośmiu bajtach można zapisać niepodpisaną liczbę do 18 444 774 070 7055 615. Jeśli zapisałeś ten numer jako ciąg - przypuszczając bajt na znak - potrzebujesz prawie 3x bajtów.
- Użyj jakiegoś mechanizmu, takiego jak mieszanie, aby uzyskać równomierny rozkład rzędów w przypadku, gdy twoje regiony nie są równomiernie obciążone. Aby to osiągnąć, możesz również utworzyć podzielone tabele.
Zobacz ten link, aby uzyskać więcej informacji na temat projektu wiersza.
HTH