MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Graficzne bazy danych a dokumentowe bazy danych a potrójne magazyny

Nie jestem pewien, czy zgodziłbym się z sentymentem, że wiele osób nie lubi SPARQL-a. SPARQL 1.0 miał pewne niedociągnięcia, ale całkiem ładnie odpowiadał temu, do czego został zaprojektowany, a nowa iteracja, SPARQL 1.1, opiera się na nim, dodając wiele konstrukcji z SQL, które ludzie spodziewali się zobaczyć w oryginalnej specyfikacji, w tym podzapytania, agregacje i zaktualizuj semantykę. Myślę, że fakt, że jest to standard i można spodziewać się tego samego parsowania i semantyki w każdym potrójnym sklepie, w przeciwieństwie do dialektów SQL, jest fajną funkcją.

Twierdziłbym również, że wszystkie potrójne sklepy są bazami danych wykresów; możesz umieścić właściwości na określonych krawędziach w RDF, aczkolwiek nie tak ładnie, jak w Neo4j. Ale potrójne sklepy mają tę zaletę, że prawdziwy język zapytań, standardowa reprezentacja danych w3c, co sprawia, że ​​przenoszenie danych do innego potrójnego sklepu jest trywialne, a w przypadku wielu potrójnych sklepów możliwość wnioskowania w oparciu o OWL.

Nie wiem nic o skalowalności większości baz danych wykresów, ale ogólnie komercyjne bazy danych RDF skalują się całkiem dobrze. Wszystkie można skalować do miliardów trójek, co obsługuje bardzo wiele przypadków użycia. Chociaż sposób, w jaki radzą sobie ze skalowaniem, bardzo różni się w zależności od dostawcy w zakresie skalowania w górę lub w górę, klastrowania itp. Zobaczysz również całkiem inne wymagania dotyczące pamięci i sprzętu, aby dopasować implementacje dla każdego z nich. Dla mnie zwykle wybieram instancję EC2, zwykle 2XL lub 4XL, montuję EBS wystarczająco duży, aby pomieścić dane, i jestem całkiem nieźle przygotowany.

Ponadto niektóre potrójne sklepy integrują się z Lucene lub podobnymi technologiami, aby zapewnić odwrócone indeksy na danych, a wiele z nich zaczyna teraz uwzględniać indeksy geoprzestrzenne i czasowe. Są to bardzo przydatne funkcje, co do których nie jestem pewien, czy są dostępne w czymś takim jak Neo4j.

Powiedziawszy to, nie będą się skalować tak dobrze, jak relacyjne bazy danych, po prostu nie są tak dojrzałe. Ale też nie będziesz się spieprzać, gdy masz „prawdziwe” ilości danych. Oczywiście jedną z zalet sklepów z trójkami jest rozumowanie, którego wykonywanie na dużą skalę jest trudne, ale to jest główny powód, dla którego stworzono różne profile OWL. Ale możesz wpaść w róg, jeśli nie myślisz z wyprzedzeniem.

Myślę, że grafowe bazy danych, a konkretnie potrójne sklepy, mogą być całkiem dobrym dopasowaniem do wielu tworzonych aplikacji, ale nie sądzę, aby oznaczało to, że wszystko powinno być z nimi zrobione. Jak wszystko inne, są narzędziami z dobrymi i złymi stronami, więc musisz dokonać właściwego wyboru w oparciu o swoją aplikację. Ale w dzisiejszych czasach prawdopodobnie zawsze zasługują na przynajmniej rozważenie.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak załadować 100 milionów rekordów do MongoDB za pomocą Scali w celu przetestowania wydajności?

  2. MongoDB kontra DynamoDB:co musisz wiedzieć

  3. Jak przeprowadzić wyszukiwanie pełnotekstowe w MongoDB?

  4. Mapa MongoDB()

  5. Projekcja MongoDB zagnieżdżonych tablic