2014-10-10 17 views
34

Szukam odpowiedniego DB wykresu dla projektu. Testowałem Neo4j i naprawdę mi się podobało. Ale problemy licencyjne AGPL nieco mnie zniechęciły (you can read about it here).Doświadczenia OrientDB kontra Neo4j

Potem znalazłem kilka artykułów, które twierdzą, że OrientDB jest rzeczywiście znacznie szybszy. Ale one nie są naprawdę aktualne. Znajdziesz je here i here. I jest licencjonowany pod Apache 2, co jest dobre.

Po prostu chcę zapytać wspaniałych ludzi o stackoverflow za Twoją opinię.

  • Skalowalność jest ważne i OrientDB twierdzi, że jest lepiej, że (here)
  • licencjonowania powinna być otwarta
  • Mam złożony model wierzchołków/krawędzi i trzeba pobrać relacji do 3 poziomy głębokich
  • Mieszanka dokumentów-wykresów, które oferuje OrientDB, wydaje się być korzystna.

Dzięki za opinie!

+4

Czy ktoś mógłby wyjaśnić, dlaczego jest to cofane, a ludzie głosują, aby zamknąć pytanie? Poważne pytanie, co zrobiłem źle? –

+2

Ogólnie uważam, że format SO służy do zadawania pytań i uzyskiwania odpowiedzi. Ludzie często łamią posty, które przyciągają bardzo upartych odpowiedzi, na przykład "czy mógłbyś polecić najlepsze X" lub "co jest lepsze, X lub Y?" - twoje pytanie nie zawiera żadnego konkretnego zestawu danych lub zapytania związanego z nim. Jeśli przeformułowałeś swoje pytanie, aby zadać pytanie, które funkcje są lepsze * dla Twojego problemu * łatwiej byłoby odpowiedzieć na to pytanie, nie mówiąc tylko o opiniach "No cóż, to mi się podoba lepiej ..." – FrobberOfBits

+0

powinieneś użyć Neo4j, najpierw próbowałem używaj OrientDB, ale masz wiele błędów w tak zwanym SQL, ale Neo4j rozwiązał wszystkie moje problemy. –

Odpowiedz

26

Uwaga: Jestem w zespole OrientDB, moja opinia jest zdecydowanie skośna. Odpowiadam również zdecydowanie zdecydowanym tonem.

Na swoich punktach:

1) Na temat rozmieszczenia klastrowym, obecnie nie ma nawet porównania. Neo4j jest replikacją master-slave, stwierdzają, że jest ona zasadniczo dostosowana tylko do wdrożeń węzłów jednocyfrowych, a cały wykres musi należeć do jednego komputera. Usłysz to od razu: http://www.infoq.com/interviews/ian-robinson-neo4j?utm_source=infoq&utm_medium=videos_homepage&utm_campaign=videos_row1

OrientDB ma pełną zdolność do replikacji wielomiejscowej (każdy węzeł może akceptować odczyty i zapisy), ma zdolność dzielenia danych, inteligentnie dystrybuuje dane za pomocą klastrów i automatyzuje rozproszone zapytania i transakcje . Nasz dyrektor wykonawczy niedawno przeprowadził doskonałe seminarium internetowe dla hazelcastów, pokazujące nasze ustawienia w tej dziedzinie: http://hazelcast.com/resources/orientdb-hazelcast-memory-distributed-graph-database/

2) Apache 2.0 jest naszą wspólnotową licencją, jest to niezwykle liberalne. Możesz nawet osadzić edycję społeczności OrientDB bez żadnych kosztów. (A) GPL martwi się, że ich zamknięty kod źródłowy zostanie zanieczyszczony. To może, ale nie musi być zagrożeniem, ale czasem trudno je określić. Nasza licencja społecznościowa jest bardzo bogata w funkcje, w tym pełną, wielomianową replikację i sharding.

3) Nawiązywanie relacji jest swego rodzaju punktem baz danych wykresów. Tak więc albo Neo4j, albo OrientDB będzie ci pasować dobrze ... przejdź 2000 poziomów i nadal będzie działać.

4) Możliwości dokumentu i wykresu są świetne, ale wiedziałeś, że tak powiem. Produkt, który stworzyliśmy, jest systemem klasy produkcyjnej zaprojektowanym jako pełna baza danych, a nie poboczna baza danych używana jako dodatek do RDBMS lub innego magazynu danych.

Silnie tu schodzę. Ale mam dobry powód. W ciągu ostatnich 3 tygodni cały zespół programistów w wiodącej na świecie firmie technologicznej testował OrientDB przeciwko Neo4j. Ze względu na bardzo wymagający przypadek użycia, byliśmy lepszym wyborem z różnych powodów. Pieniądze nie były problemem, zyskaliśmy dzięki naszej technologii.

Weź to za to, co jest warte, powiedziałem, że moje nastawienie z góry. Z mojego doświadczenia wynika, że ​​po pracy z OrientDB, nie będzie się spoglądać wstecz. Daj nam znać, jeśli potrzebujesz pomocy!

+1

Link do Hazelcastu jest świetny. Przechodzimy do hazelcastu w pracy i pracuję nad tym, abyśmy przyjęli OrientDB. – CodeShaman

+2

@Greg McCarvell Prawie tylko z OrientDB jest (rozszerzonym) SQL dla zapytań. Po prostu nie pasuje, nawet bałagan z RDBMS, ale używanie go do DBMS, który jest bardzo różny od tego, do czego został zaprojektowany, jest trochę niewygodne. Zapytanie lang sprawia, że ​​OrientDB jest mniej dostępny, nawet jeśli jest napisane, że zmniejsza krzywą uczenia się z powodu wcześniejszej znajomości SQL. Ponieważ myślenie na wykresie różni się od myślenia w tabelach i sprzężeń, i to samo w przypadku modelowania odpowiednich rodzajów danych, bardzo intuicyjne jest twierdzenie, że kwerenda powinna również być taka. A dzisiaj nie jest intuicyjne zapytanie o OrientDB. –

+1

mr @greg problemem z tym, że nie ma nic lepszego niż stabilne sterowniki dla najczęściej używanych języków programowania, takich jak php i wiele innych. –