Settings

Theme

Graphing a Lesson-Learned Database for NASA Using Neo4j, RStudio, and Linkurious

neo4j.com

33 points by jvilledieu 10 years ago · 6 comments

Reader

grandalf 10 years ago

I have really enjoyed using neo4j. In my opinion the highlights are:

- The Cypher query language is extremely expressive. I ended up being able to represent lots of business logic succinctly using it.

- Domain modeling is natural and very natural. For me the key was writing a script to drop/recreate my development db from some basic fixtures to allow me to experiment with a few approaches before settling on one.

- So many things that are hard to discover (using other kinds of databases) or require a separate ETL, mapreduce, etc., are straightforward cypher queries.

- There is no need for an ORM or doing ugly manual joins in code. I am simply doing some basic data/input validation and then shipping the validated structure to a cypher query.

- Even things like security/acl metadata is naturally expressed via the graph, so whole layers of a typical app can be abstracted quite nicely.

  • jedc 10 years ago

    I really agree. The work I've done with Neo4j (and in particular the easy way I can query data via Cypher) blows the socks off most people I show it to.

  • rudolf0 10 years ago

    What are some advantages of Neo4j compared to the more recent OrientDB and ArangoDB? I know Neo4j is a pure graph DB and the other 2 claim to be "multi-paradigm", but those other 2 also claim to implement most graph functionality anyone would want, on top of claims that they are both more performant than Neo4j.

    • iamtherhino 10 years ago

      A lot of it comes down to robustness. Neo4j has the advantage of simplicity and maturity when compared with multi-model dbs. Multi-models, as of now, are feature rich and reliability poor. Instead Neo4j has fewer features but just tries to do those things really really well.

      It's been in mission critical prod. environments now for nearly a decade. I'm certain that in the future DSE, Orient, Arango, or someone like them will be big contenders in the space. However, for the time being, I wouldn't trust anything critical to them.

killface 10 years ago

I've done quite a lot of work in Neo4j, and have been quite impressed with it. With my last project (which was in the 1.9.x days), we had about 2b nodes and 4b edges, with lots of properties. It was basically being used as a social graph cache (for friend-of-friend style queries).

It was remarkably simple to set up, a bit harder to tune, but we ended up getting something like 5000 req/sec at <= 10ms per query sustained for several hours.

I'd highly recommend learning neo4j, if for nothing but the paradigm shift it forces you to learn.

nicolewhite 10 years ago

If you liked this, check out my RNeo4j[1] package that was used in this analysis.

[1] https://github.com/nicolewhite/RNeo4j

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection