Standardowa rodzina kolumn
Standardowa rodzina kolumn to obiekt NoSQL , który zawiera kolumny powiązanych danych. Jest to krotka (para), która składa się z pary klucz-wartość , w której klucz jest odwzorowany na wartość będącą zbiorem kolumn. Analogicznie do relacyjnych baz danych, standardowa rodzina kolumn to „tabela”, w której każda para klucz-wartość jest „wierszem”. Każda kolumna jest krotką ( trójką ) składającą się z nazwy kolumny, wartości i znacznika czasu . W relacyjnej bazy danych , dane te zostałyby zgrupowane w tabeli z innymi niepowiązanymi danymi.
Standardowe rodziny kolumn to kontenery kolumn posortowane według ich nazw, do których można się odwoływać i sortować według klucza wiersza.
Korzyści
Dostęp do danych w rozproszonym magazynie danych byłby kosztowny (czasochłonny), gdyby zostały one zapisane w formie tabeli. Nieefektywne byłoby również odczytywanie wszystkich rodzin kolumn, które tworzyłyby wiersz w tabeli relacyjnej, i składanie ich razem w celu utworzenia wiersza, ponieważ dane dla niego są rozmieszczone w dużej liczbie węzłów . W związku z tym użytkownik uzyskuje dostęp tylko do wymaganych powiązanych informacji.
Na przykład tabela relacyjna może składać się z kolumn UID, imię, nazwisko, data urodzenia, płeć itp. W rozproszonym magazynie danych ta sama tabela zostałaby zaimplementowana poprzez utworzenie rodzin kolumn dla „UID, imię, nazwisko” , „data urodzenia, płeć” itp. Jeśli do zapytania w relacyjnej bazie danych potrzebne są tylko mężczyźni urodzeni w latach 1950-1960, należy przeczytać całą tabelę. W rozproszonym magazynie danych wystarczy dostęp tylko do drugiej standardowej rodziny kolumn, ponieważ reszta informacji jest nieistotna.
Sortowanie i zapytania
rozproszonych magazynach danych nie ma możliwości sortowania kolumn ani wykonywania dowolnych zapytań . Kolumny są sortowane podczas dodawania ich do rodziny kolumn. Sposób sortowania określa atrybut. Odbywa się to na przykład za pomocą CompareWith
w Apache Cassandra , który może mieć następujące wartości:
Typ Ascii
Typ bajtów
Leksykalny typ UUIDT
Długi typ
CzasUUIDTyp
Typ UTF8
Możliwe jest również dodanie niektórych zdefiniowanych przez użytkownika atrybutów sortowania. Zastosowanie tego sposobu sortowania sprawia, że proces ten jest niezwykle szybki.
Standardowe rodziny kolumn a wiersze
Standardowe rodziny kolumn mają charakter bezschematowy, więc każdy z ich „wierszy” może zawierać inną liczbę kolumn, a nawet różne nazwy kolumn mogą znajdować się w każdym wierszu. Są więc zupełnie inną koncepcją niż wiersze w systemach zarządzania relacyjnymi bazami danych (RDBMS) . Jest to jeden z powodów, dla których koncepcja ta nie jest trywialna dla doświadczonego eksperta RDBMS.
Przykłady
W notacji podobnej do JSON definicja rodziny kolumn wyglądałaby następująco:
UserProfile = { Cassandra = { emailAddress : "[email protected]" , wiek : 20 }, TerryCho = { emailAddress : "[email protected]" , płeć : "mężczyzna" }, Cath = { emailAddress : "cath @apache.org" , wiek : 20 lat , płeć :
"kobieta" , adres : "Seul" }, }
gdzie „Cassandra”, „TerryCho”, „Cath” odpowiadają kluczom wierszy; i „emailAddress”, „wiek”, „płeć”, „adres” odpowiadają nazwom kolumn.