http://www.orientechnologies.com/orientdb-vs-neo4j/
OrientDB and Neo4j* share many features, but the engines are fundamentally different. While Neo4j is a pure Graph Database, OrientDB has a hybrid Document-Graph engine that adds some compelling features to the Graph Database model.
This page will outline only the most important differences.
Price and Licensing
Many make the mistake of assuming that Neo4j is free because it’s open source. This is a quote from their official website: “Simply, if you are open source, then Neo4j is open source; if you are closed source, then Neo4j is commercial” – Fair Trade Software Licensing – A Guide To Licensing Options For Neo4j. In the 2014 Gartner report, Neo4j’s referenced customers identified Neo’s pricing model as an issue.
It takes a lot of effort to fully understand the Neo4j pricing and licensing model. They have two product versions with a very different feature set. Community Edition, which lacks clustering (fault tolerance), advanced caching and other important production features is GPL. Enterprise edition is available underAGPL or a paid subscription license.
In our experience, we’ve found enterprise users aren’t receptive to (A)GPL. There are too many grey areas interpreting a derivative work and they aren’t willing to risk polluting their closed source code with an AGPL license.
We opted for the completely permissive Apache 2 Open Source license on our Community Edition. Free for any purpose! We also didn’t disable the features allowing horizontal scale and fault tolerance. Cluster, shard and replicate until your heart is content. Let your free use project expand globally without the fear of license restrictions. Oh, almost forgot, you can embed our database as well. Try that with (A)GPL!
When it comes to pricing, we take a step forward. Not only is OrientDB Enterprise a fraction of the cost compared to Neo4J. We also utilize your resources in a more effective way. Neo4j allows only one database per server. OrientDB can host several databases per instance. We make our pricing EASY and PUBLIC. Discounts are deep for large deployments and we gladly work with OEMs on distribution friendly licenses.
Modern, friendly business practices. Browse the pricing of our Production Support and Training services. We have nothing to hide.
Feature Matrix
Operational DBMS
Most NoSQL solutions, like Neo4j, are used just as “cache” to speed up certain use cases, while the master database remains a Relational DBMS. In the 2014 Gartner report, Neo4j’s referenced customers expressed dissatisfaction with the product’s High Availability/Disaster Recovery capabilities.
Most NoSQL products are focused on performance and scalability, while sacrificing reliability. Users don’t perceive a NoSQL DBMS as reliable as a Relational DBMS.
OrientDB, however, isn’t the average NoSQL DBMS. Thanks to WAL (Write Ahead Logging), OrientDB is able to restore the database content after a crash. Any pending transactions are automatically rolled back. Your precious data is in a safe place.
For this reason, OrientDB was the first graph database to ever appear on Gartner’s Operational DBMS Magic Quadrant in 2013.
Gartner, Magic Quadrant for Operational Database Management System, Donald Feinberg, et al, October 21, 2013.
Scalability
Neo4j supports replication, but this is an Enterprise feature not released in the FREE Open Source Community Edition. Furthermore, the replication follows the Master/Slave architecture with a huge bottleneck on write operations: only one server can be the master, so the Neo4j write throughput is limited to the capacity of the single Master server. This means that Neo4j isn’t able to scale on writes.
OrientDB, instead, supports a Multi-Master + Sharded architecture: all the servers are masters. The throughput is not limited by a single server. With OrientDB, the global throughput is the sum of the throughput of all the servers.
This is also called Linear Scalability.
Query Language
Neo4j has its own Query Language called “Cypher“- which requires training to learn a new language.
OrientDB’s query language is built on SQL and is augmented with a few extensions to manipulate trees and graphs. Considering most developers are familiar with SQL, working with OrientDB is just easier.
Look at the same query in OrientDB SQL vs Neo4j Cypher query languages to retrieve the actor’s name and their movies from the actor vertex:
OrientDB SQL |
Neo4j Cypher |
|
SELECT name, out(‘ACTS’).title |
VS |
MATCH (actor:Person{name:’Robin’})-[:ACTS_IN]->(movie) |
Complex Domains
Neo4j doesn’t support a proper schema against Vertex and Edges, but only the “label” concept to group vertices and edges of the same type. No inheritance, no polymorphism and no complex constraints, but only the uniqueness of values by using indexes.
OrientDB, instead, supports the creation of schemas around graphs. Furthermore, the true inheritance and polymorphism allow you to create subclasses of Vertex and Edge. For example, you can have “Customer” and “Provider” that extend the common vertex class “Account” by inheriting all of the fields. By using the schema, you can also setup complex constraints against vertices and edges properties.
Complex Types
While OrientDB supports a rich set of types, Neo4 supports only primitive types. With Neo4j, it’s not possible to store decimal numbers (amounts, currencies, salaries, etc.) without loosing precision, because “float” and “double” Java types use the floating point technique. OrientDB, instead, provides the “decimal” type to handle numbers with no precision lost.
The same is for dates. Neo4j has no direct support for date types, so the management of temporal data is the responsibility of the developer that must convert it into milliseconds from 1970. OrientDB, instead, provides DATE and DATETIME types to handle dates easily.
OrientDB supports other complex types such as Binary to store BLOB (Binary Large Objects), Embedded to store embedded objects recursively,Collections and Maps.
Deleted Records
One of the most important features of an Operational DBMS is that it shouldn’t require a restart or down-time for maintenance. Neo4j isn’t able to automatically reclaim the space of deleted records and it requires a complete restart of the server. In comparison, OrientDB automatically reuses the freed space and such operations are transparent and occur while the server is online.
Are you already using Neo4j?
Many clients have passed from Neo4j to OrientDB, join them! To try OrientDB, follow these 3 simple steps: Import from Neo4j to OrientDB.
To discover 10 key advantages of using OrientDB, take a look at Why OrientDB? If you need OrientDB support, consulting or training, pleasecontact us.
*Neo4j is a registered trademark of Neo Technology Inc.
**Gartner, Magic Quadrant for Operational Database Management System, Donald Feinberg, et al, October 21, 2013.
相关推荐
ArangoDB vs. JanusGraph vs. Neo4j vs. OrientDB vs. TigerGraph System Properties Comparison ArangoDB vs. JanusGraph vs. Neo4j vs. OrientDB vs. TigerGraph
- **图数据库**:如OrientDB、Neo4j等,通过节点和边构建图形结构,适用于复杂关系查询。 #### 四、OrientDB的独特之处 - **文档-图模型**:OrientDB结合了文档数据库的灵活性与图数据库的强大功能,既能处理复杂的...
根据提供的文档内容,下面是关于ArangoDB与OrientDB的对比分析的知识点: 首先,文档提到了DB-Engines的排名系统,该系统根据多个因素(包括搜索引擎评分、在DB-Engines排名趋势图表上的位置、整体排名、特定数据...
本内容的讨论重点在于图数据库性能的比较,特别是orientdb、neo4j、allegrograph和fuseki这四种图数据库。同时,内容中提及了XGDBench这一基准测试平台,它在评估图数据库性能方面发挥重要作用。 首先,orientdb是...
尼奥贝(Niobe)是一个专门针对 Neo4j 和 OrientDB 数据库的 Scala 驱动程序,旨在为开发者提供一种高效、灵活的方式来操作图数据库。Scala 是一种强大的静态类型编程语言,它融合了面向对象和函数式编程的特性,...
3. **OrientDB数据模型**:OrientDB支持多种数据模型,如文档数据库(类似于MongoDB)、图形数据库(如Neo4j)和对象数据库。了解这些模型如何在实际应用中发挥作用,以及它们之间的转换和交互方式,对于掌握Orient...
“多模型NoSQL存储”是指OrientDB不仅支持文档型数据库(如MongoDB)、图数据库(如Neo4j)的特点,还支持键值对、列族和对象等其他NoSQL数据模型。这种灵活性允许开发人员根据具体需求选择最合适的模型,无需在不同...
- **多模式数据库**:OrientDB不仅支持文档型数据库(如MongoDB),还支持图形数据库(如Neo4j)以及关系型数据库(如MySQL)的特性,这使得它能够处理复杂的数据关联和查询。 - **图数据模型**:图形数据库允许...
它是TinkerPop堆栈的一部分,并连接到任何启用了Blueprints的图形数据库,包括Neo4j,OrientDB,Dex,OpenRDF Sail和TinkerGraph。 Bulbs支持可插拔的后端,并且更多的本机绑定正在开发中。 好了吗? 预览版现已...
它与 Neo4J、OrientDB、Titan 等兼容。 Rexster 项目由领导。 此容器使用Rexter 2.6.0 。 是由主导的开源分布式图数据库。 此容器已针对OrientDB 2.0.3进行了测试。 这个 docker 运行一个 Rexster 服务器,该...
例如,在选择 Neo4J 或 OrientDB 时,需要考虑到数据库的性能、可扩展性、安全性等因素。 Neo4J是一种功能强大且广泛应用的图数据库,可以满足各种复杂的数据存储和查询需求。但是,在选择图数据库产品时,需要根据...
OrientDB批处理导入器 这是OrientDB的快速,肮脏的批处理导入器,用于导入CSV文件中给出的图形数据。 就像Michael Hunger的neo4j批处理插入器(请参阅 )一样,它接受(a)指定图形节点的CSV文件,以及(b)指定其...
图数据库的典型代表包括Neo4j、OrientDB和ArangoDB等。 Neo4j是目前最流行的图数据库之一,它以高性能和快速查询响应时间而著称。Neo4j使用了一种名为Cypher的声明式图查询语言,这种语言是专门为图形数据库设计的...
此代码包含一系列针对 Neo4j、OrientDB 和 Titan 数据库的基准测试,所有这些都通过 java 运行。 尚未包括数据库库。 设置文件时,顶部有 numberOfNodes 和 fileSet,numberOfNodes 应等于将创建的顶点数,fileSet ...
当前的目标是支持Cassandra,OrientDB和Neo4J。 通过当前版本下载库。 builder = new GraphMetaBuilder() .withNodeClasses(nodes) .withEdgeClasses(edges);database = OrientGraphDatabase.create( pathOrUrl, ...
图数据库及应用场景 图数据库是一种特殊类型的数据库,专门设计用于存储和查询复杂的关系数据。它具有特点更好、更快速的查询和分析能力,更简单和更自然的数据建模,...5. OrientDB:一个多模型的图数据库管理系统。
当前,Neo4j是最流行的图数据库之一,但同时也有其他选择,例如OrientDB、Titan等。 OrientDB是一种NoSQL图数据库,具有高性能和灵活性。但是,它也存在一些缺陷,例如缺乏批量写入功能、慢速加载和初始化、写瓶颈...
3. OrientDB:支持图形和文档模式的数据库,Python客户端库`orientdb-python`可进行操作。 4. JanusGraph:分布式图数据库,支持大规模图数据存储,可使用`gremlin-python`进行图遍历。 接着,图计算工具在处理大型...
如果你只想跑步 转到 克隆该仓库并运行 docker-compose -f recipes / arcade-standalone.yml up 街机分析-玩数据 可以在上获得Arcade和演示数据库的Docker映像 快速开始 要启动ArcadeAnalytics,请运行(需要安装...
除了以上列举的数据库,还有其他如InfluxDB(时序数据库)、OrientDB(多模式数据库)、SQLite(嵌入式数据库)等,它们各自在特定场景下表现出色,共同构成了开源数据库的多元化生态。这些数据库的选择通常取决于...