Artykuł DynamoDB Wikipedia mówi, że DynamoDB jest „ klucz-wartość ” bazy danych. Jednak nazwanie go bazą danych „klucz-wartość” całkowicie pomija niezwykle fundamentalną cechę DynamoDB, jaką jest klucz sortowania : klucze składają się z dwóch części (klucz partycji i klucz sortowania), a elementy z tym samym kluczem partycji można skutecznie sortować razem sortować według klucza sortowania.
Cassandra ma również dokładnie tę samą funkcję sortowania elementów wewnątrz partycji (którą nazywa „kluczem do klastrowania”), a artykuł Cassandra Wikipedia używa terminu magazyn szerokokolumnowy, aby to opisać. Jednak chociaż ten termin „szeroka kolumna” jest lepszy niż „klucz-wartość”, jest nadal nieco nieodpowiedni, ponieważ opisuje bardziej ogólną sytuację, w której element może mieć bardzo dużą liczbę niepowiązanych kolumn - niekoniecznie posortowaną listę oddzielnych przedmiotów.
Moje pytanie brzmi więc, czy istnieje bardziej odpowiedni termin, który może opisywać model danych bazy danych, takiej jak DynamoDB i Cassandra - bazy danych, które podobnie jak magazyn klucz-wartość, mogą skutecznie wyszukiwać elementy dla poszczególnych kluczy, ale mogą również skutecznie wyszukiwać elementy posortowane według klucz lub tylko jego część ( klucz sortowania DynamoDB lub klucz klastrowania Cassandry ).
źródło
Odpowiedzi:
Przed wprowadzeniem CQL Cassandra bardziej rygorystycznie przestrzegała modelu danych magazynu szerokich kolumn, w którym wiersze identyfikowane były tylko kluczem wiersza i zawierały posortowane kolumny klucz / wartość. Wraz z wprowadzeniem CQL wiersze stały się znane jako partycje, a kolumny można opcjonalnie pogrupować w wiersze logiczne za pomocą kluczy klastrowych.
Nawet do Cassandry 3.0 CQL był po prostu abstrakcją na oryginalnym modelu danych oszczędnościowych i nie istniała koncepcja wierszy CQL w silniku pamięci. Były tylko posortowanym zestawem kolumn ze złożonym kluczem składającym się z połączonych wartości kluczy klastrowych. Więcej szczegółów podano w tym artykule . Teraz istnieje natywna obsługa CQL w silniku pamięci, która pozwala na bardziej wydajne przechowywanie modeli danych CQL.
Jeśli jednak myślisz o wierszu CQL jako logicznym grupowaniu kolumn w tej samej partycji, Cassandra nadal można uznać za magazyn o szerokich kolumnach. W każdym razie, według mojej wiedzy, nie ma innego dobrze ustalonego terminu na opisanie tego rodzaju bazy danych.
źródło