Masz pomysł na rodziny kolumnowe: zasadniczo jest to tylko wskazówka dla HBase do przechowywania i replikacji tych elementów w celu szybszego dostępu.
Jeśli umieścisz dwie rodziny kolumn w tej samej tabeli i zawsze będziesz mieć do nich dostęp za pomocą różnych kluczy, oznacza to, że mają one dwie osobne tabele. Zyskujesz tylko dzięki posiadaniu dwóch rodzin kolumn w tej samej tabeli, do których można uzyskać dostęp za pomocą tych samych kluczy.
Na przykład: jeśli mam kolumny określające całkowitą liczbę odsłon danej witryny, liczbę unikalnych widoków dla tej samej witryny, przeglądarkę, której używa użytkownik do przeglądania witryny, oraz ich połączenie internetowe, mogę zdecyduj, że chcę, aby dwie pierwsze były rodziną kolumnową, a dwie ostatnie - kolejną kolumną rodziny. Tutaj wszystkie cztery są dostępne za pomocą tego samego klucza, a mianowicie strony internetowej, o której mowa, więc zyskuję, mając je w tym samym stole.
Jeśli są w różnych tabelach, musiałbym wykonać operację łączenia na dwóch stołach. Tak naprawdę nie znam liczb, więc nie mogę ci powiedzieć, jak powolna jest operacja podobna do łączenia (ponieważ nie pamiętam, że HBase ma połączenie, ponieważ nie jest relacyjna) i jaki jest punkt krytyczny, w którym dzielenie ich w osobnych tabelach przewyższają ich w tym samym stole (lub odwrotnie).
Oczywiście wszystko zależy od danych, które próbujesz zapisać, więc jeśli nigdy nie będziesz musiał łączyć się między tabelami, chcesz zachować je w osobnych tabelach, ponieważ możesz twierdzić, że nie są one takie związanych ze sobą w pierwszej kolejności.
Mówisz "Dołącz jest drogi". Wydaje się to sugerować, że "łączenie" między grupami kolumn w tej samej tabeli jest tańsze niż łączenie grup kolumn w tabelach. Czy tak jest? Dokumenty HBase nie wydają mi się jasne, jak sądzę. – Thilo
Myślę, że znacznie tańsze jest "łączenie" między kolumnami w tej samej tabeli, ponieważ jest to operacja "get" z dwiema kolumnami o nazwie i jest prymitywna w języku zapytań. "Dołączanie" nie jest jednak prymitywne i trzeba je wdrożyć na własną rękę (co wymaga więcej operacji). –