Co oznacza termin „zorientowany na dokumenty” a klucz-wartość, gdy mówimy o MongoDB i Cassandrze?


Odpowiedzi:


153

Sklep klucz-wartość zapewnia najprostszy możliwy model danych i jest dokładnie to, co sugeruje nazwa: jest to system pamięci masowej, który przechowuje wartości indeksowane przez klucz. Jesteś ograniczony do zapytań według klucza, a wartości są nieprzejrzyste , sklep nic o nich nie wie . Pozwala to na bardzo szybkie operacje odczytu i zapisu (prosty dostęp do dysku) i postrzegam ten model jako rodzaj nieulotnej pamięci podręcznej (tj. Dobrze dopasowany, jeśli potrzebujesz szybkiego dostępu za pomocą klucza do danych o długiej żywotności).

Bazie dokument zorientowanych rozszerza poprzedni model i wartości są przechowywane w uporządkowany formacie (dokument, stąd nazwa), że baza danych może zrozumieć. Na przykład dokument może być postem na blogu, a komentarze i tagi przechowywane w zdenormalizowany sposób. Ponieważ dane są przezroczyste , sklep może wykonać więcej pracy (np. Indeksowanie pól dokumentu) i nie musisz ograniczać się do zapytań według klucza. Jak już wspomniałem, takie bazy danych pozwalają na pobranie danych całej strony za pomocą jednego zapytania i są dobrze przystosowane do aplikacji zorientowanych na treść (dlatego lubią je duże serwisy, takie jak Facebook czy Amazon).

Inne rodzaje baz danych NoSQL obejmują magazyny kolumnowe , graficzne bazy danych, a nawet bazy danych obiektów . Ale to nie podlega dyskusji.

Zobacz też


2
Magazyny klucz-wartość nie muszą być wykonywane z dostępem do dysku, a wywoływanie ich jako nieulotne jest nieprawidłowe w niektórych implementacjach. W pamięci można utworzyć magazyn klucz-wartość bez możliwości zapisu lub zapisu zwrotnego na trwałym nośniku pamięci. Wywoływanie danych długoterminowych jest również mylące, ponieważ czas życia danych nie ma nic wspólnego ze sposobem ich pobierania.
— Anthony

17

Cóż, sam badałem NoSQL przez ostatni miesiąc. Myślę, że ogólnie można by powiedzieć coś takiego

  • Magazyny KV nie wiedzą, jaka zawartość faktycznie przechowywana jest dla klucza
  • Oparty na dokumencie umożliwia zdefiniowanie indeksów pomocniczych w treści wartości, ponieważ db zna strukturę dokumentu (np. Znaczniki posta na blogu).
  • Każde rozwiązanie NoSQL ma określone cechy, które należy wziąć pod uwagę, takie jak
    • Specjalne typy danych w sklepie KV (np. Zestawy z lewym / prawym pop / push jak w redis)
    • łatwe skalowanie klastra w górę / w dół, jak mówi riak (nie próbowałem tego ... jeszcze)
    • podłączany magazyn danych jak w Voldemort
    • wbudowana konfiguracja sieciowa i obsługa aplikacji internetowych, jak w CouchDB / couchapp

2

Baza danych zorientowana na dokumenty lub magazyn dokumentów służy do przechowywania, wyszukiwania i zarządzania informacjami zorientowanymi na dokumenty, które są danymi częściowo ustrukturyzowanymi. Magazyn wartości kluczowej jest dziedziczony po bazie danych zorientowanej na dokumenty. Różnica polega na sposobie przetwarzania danych; w magazynie klucz-wartość dane są uważane za z natury nieprzejrzyste dla bazy danych, podczas gdy system zorientowany na dokumenty opiera się na wewnętrznej strukturze dokumentu w celu wyodrębnienia metadanych, które silnik bazy danych wykorzystuje do dalszej optymalizacji.

Jeśli zajmiemy się różnicą między MOngoDb i Cassandra. MongoDB działa podobnie jak relacyjna baza danych. Jego model danych składa się z bazy danych na najwyższym poziomie, następnie kolekcji, które są jak tabele w MySQL (na przykład), a następnie dokumentów zawartych w kolekcji, takich jak wiersze w MySQL. Każdy dokument ma pole i wartość, która jest podobna do kolumn i wartości w MySQL. Pola mogą być prostymi kluczami / wartościami, np. {'Name': 'David Mytton'}, ale mogą również zawierać inne dokumenty, np. {'Name': {'first': David, 'last': 'Mytton'}}. W Cassandrze dokumenty są nazywane „kolumnami”, które w rzeczywistości są tylko jednym kluczem i wartością. np. {'klucz': 'nazwa', 'wartość': 'David Mytton'}. Istnieje również pole sygnatury czasowej, które służy do wewnętrznej replikacji i spójności. Wartość może być pojedynczą wartością, ale może również zawierać inną „kolumnę”. Te kolumny istnieją następnie w rodzinach kolumn, które porządkują dane na podstawie określonej wartości w kolumnach, do których odwołuje się klucz.

Ale na najwyższym poziomie znajduje się przestrzeń kluczy, która jest podobna do bazy danych MongoDB.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.