【发布时间】:2015-02-17 02:58:02
【问题描述】:
我希望涉足多模型 DBMS 的世界,我没有特定的用例,只是想开始学习。
我发现有两个突出的 - OrientDB 与 ArangoDB,但无法在它们之间找到任何 meaningful 比较,unopinionated。有人可以阐明两者之间功能的差异,以及使用其中一个而不是另一个的任何警告吗?如果我学会了一个,我能轻松过渡到另一个吗?
(我也标记了FoundationDB,但它是专有的,我可能不会考虑)
此问题要求对 OrientDB 与 ArangoDB 进行一般性比较 > 关于哪个更好的固执己见的答案。
【问题讨论】:
-
我是 ArangoDB 的开发人员之一,因此我无法给出公正的答案。例外是关于“过渡”的最后一个。不幸的是,在 NoSQL 世界中没有像 SQL 这样的通用查询语言。 Gremlin 是向图形数据库的通用 QL 迈进,但恕我直言,仍有很多未解决的问题。随着 Datastax 收购 Titan,我不确定 Tinkerpop3 会发生什么。因此,您需要为真正的多模型学习一种完全不同的查询语言。遍历是在 Java(东方)或 JavaScript(ArangoDB)中完成的——同样是不同的语言。
-
我是 OrientDB 的创始人(所以是有偏见的),我可以说 OrientDB 是引擎级别的多模型 DBMS,而 ArangoDB 和 FoundationDB 只是在它之上实现了层。这就像在 Oracle 之上使用 Hibernate 并认为您有一个 ODBMS。我的 0,02。
-
我是 ArangoDB 的另一位创始人,因此也有偏见。 Luca,我担心你弄错了:ArangoDB 从一开始就是作为多模型数据库设计和构建的。所有三个数据模型连同对 API 和查询语言的完全支持在数据库引擎中作为一等公民和高性能 C++ 代码实现。图表和键/值仅作为文档存储顶部的层实现是不正确的。
-
嘿 weinberger,GraphDB 被定义为“无索引邻接”。 ArangoDB 使用哈希索引来交叉关系,所以它不是“无索引”,抱歉。它是一个JOIN。这就像使用 RDBMS 遍历关系。
-
这个定义是谁制定的?这比其他任何事情都更具营销性。当我们执行遍历时,它不是 JOIN。你写的不是真的。 j.mp/1EOt8gk
标签: database orientdb arangodb foundationdb multi-model-database