Figure 1 – Mapping relational data to a graph model in Teleporter
The developers claim that OrientDB was the first multi-model graph database to be launched (in 2009). Originally, it was designed as a hybrid document/graph database, but since then the core (native) engine has been extended to include objects, spatial and key-value elements. Moreover, the product now offers a multi-model API that allows you to work with all types of model (including documents, graphs, objects, and so on) seamlessly through a single interface. The product is ACID compliant and supports strong consistency, though eventual consistency is an option.
It supports Apache TinkerPop (either as an API, for backwards compatibility with TinkerPop 2.6, or as a plugin for later versions) and, especially, Gremlin. More importantly, it uses an extended form of SQL for query processing that leverages MapReduce under the covers. OrientDB’s version of SQL notably includes live querying, the ability to create queries that are updated dynamically as your data changes over time. The product can be used in full schema, schema-free or hybrid schema environments and uses sharding for distributing data across a cluster. Scheduled full and incremental backups are supported.
In addition to the database itself, there is a native ETL engine that can be used to import and export JSON documents. Teleporter, as seen in Figure 1, is an additional tool included with Enterprise Edition that provides transformation capabilities for mapping from a relational to a graph model. OrientDB also includes a connector for Apache Spark and the Neo4j Importer. The latter allows you to readily and easily import an existing Neo4j database (or, to be more specific, the nodes, relationships, indices, and unique constraints contained therein) into OrientDB.
Figure 2 – The server management dashboard in Studio
There is also a Studio tool that allows you to view and edit your OrientDB environment via a web browser. This provides a variety of ways to view and manage your database, including a server management dashboard (see Figure 2), which displays various metrics relating to your server cluster, as well information about any single server in real time; a SQL browser; and a graph editor, allowing you to view, explore and modify your graph through a visual medium. There is also a JDBC connector to support integration with various (partner) visualisation tools.