OrientDB, the most versatile database I’ve run across
pettergraff.blogspot.sg
pettergraff.blogspot.sg
I'll be honest: I've pretty much only ever used Relational databases. I've not even properly tried using Document databases (the hype just didn't overcome my laziness and inertia!). On big big projects, I just wrote the queries I needed, with a schema I defined, and let my DBA deal with the nitty gritty of it... I really should learn more about the various classes of data stores. I know enough to understand a lot of the trade offs inherent to the major types (hence why I've stuck with relational, it fits the way i think about application data, and I haven't needed Web Scale(tm) for those projects, so horizontal scaling wasn't ever an issue), so I'm really curious how this one holds up under close scrutiny, and whether I can map how I think about data to how Orient works (or whether it's way of tackling it is better enough than how I think to just embrace it's style entirely).
Anyone here have experience with it? What use case, data model, etc. what trade offs did you make, and why?
I've been trying to decide between a graph db, which seems like a better fit for the real world relationships but is entirely new to me, and postgresql with exports to graph structures for analysis as needed.
In particular, I'd be interested in deployment experiences with Orient and other graph dbs. I don't have a sys admin and I'm not one myself, so a PaaS platform is highly attractive.
Neo4J has a Heroku "try" option, but there's no clear upgrade path. Titan is flexible in terms of backing store (Cassandra, PersistIt, etc.), but seems to require self-admin.
Anyone deployed and maintained OrientDB or any of these other tools?
They support a standardised query language called SPARQL which is based on matching graph patterns.
Here you have 15 Graph databases compared: https://docs.google.com/spreadsheet/ccc?key=0AlHPKx74VyC5dER...
Disclaimer: I work for Heroku on Add-ons.
Document oriented tables are used. I like no-sql access to indexes:
OIndex<?> index = db.getMetadata().getIndexManager().
getClassIndex(klassName, indexName);
Collection<ODocument> = index.getEntriesBetween(start, end, true);
Nothing to say here: it just works.It was the only joy I got from working with a Java Swing. It's excellent to just store Java Objects directly to the local filesystem. If you don't like that, you can setup a OrientDB server. The writer of OrientDB was super helpful too (always on google groups helping out). It's flexibility outdoes MongoDB.
I'm surprised that it's catching on now...after 2 years.
I'm still waiting to hear about a large project with fairly significant scaling needs go on to sing the praises of OrientDb. Unfortunately I don't have the time or resources to become said project.
We are actually talking about moving away from a relational DB to a graph one for some of our internal data needs. A coworker was looking at Neo4j (another great one, but with licensing fees) and I told him bout Orient. Exciting stuff, especially when you factor in Tinkerpop's (tinkerpop.com) abstraction layer allowing you to switch out DBs.
I can't remember the last time I had to do this.
Plus, it's hijacking my back button.