2015-05-08 25 views
11

Neo4j to doskonałe narzędzie do mapowania danych relacyjnych, ale jestem ciekawy, w jakich warunkach nie byłoby to dobre narzędzie do wykorzystania.Kiedy nie używać neo4j?

W jakich przypadkach użycie przy użyciu neo4j byłoby złym pomysłem?

+3

Przygotuj się na telefon z linią SO –

+1

Niezwykle wysokie obciążenie zapisu to jeden przypadek użycia zapobiegawczego: zobacz https://stackoverflow.com/questions/21558589/ neo4j-sharding-aspect – DNA

+1

Zobacz także [post] (https://www.quora.com/What-was-the-reason-for-Facebook-team-to-avoid-using-Neo4J-for-she-Social -Graph) o tym, dlaczego FaceBook nie używa Neo4j – DNA

Odpowiedz

15

Możesz chcieć sprawdzić this slide deck, a zwłaszcza slajdy 18-22.

Twoje pytanie może zawierać wiele szczegółów, ale pozwól mi skupić się na dużych elementach. Bazy danych wykresów są zależne od naturally indexed. Więc bazy danych wykresów będą dobre, gdy będziesz musiał przejść przez wiele relacji. Same wykresy są bardzo elastyczne, więc będą dobre, gdy połączenia między danymi będą musiały się zmieniać od czasu do czasu lub gdy dane dotyczące podstawowych obiektów, które są ważne do przechowywania, muszą się zmienić. Wykresy są bardzo naturalną metodą modelowania niektórych (ale nie wszystkich) źródeł danych, takich jak sieci peer to peer, mapy drogowe, struktury organizacyjne itp.

Wykresy nie są dobre w zarządzaniu ogromnymi listami rzeczy. Na przykład, jeśli zamierzasz zbudować bazę danych transakcji klienta z analizami (gdzie potrzebujesz 1 miliona klientów, 50 milionów transakcji i wszystko, co robisz, to księgowanie transakcji przez cały dzień), to prawdopodobnie nie jest to dobre dopasowanie. RDBMS świetnie sobie z tym radzi, zauważ, że ten przypadek użycia naprawdę nie wykorzystuje relacji.

Pamiętaj, aby przeczytać te dwa linki, które podałem, mają o wiele więcej dyskusji.

1

Każda usługa agregująca pliki danych do tej pory była niezawodnie utrzymywana w niezależnych źródłach.

Jeśli chcę zbadać relacje między różnymi kanałami, można to zrobić na poziomie aplikacji, używając śledzenia danych (na przykład) preferencji użytkownika wśród innych kanałów.

Bazy danych wykresów dotyczą zarządzania złożonością relacji, ale ta złożoność jest w wielu przypadkach wyborem projektu. Umieszczanie wszystkich dzieci w jednej wannie jest w porządku, dopóki nie upuścisz mydła ..

Powiązane problemy