OrientDB - 集群概念问题

标签 orientdb

我在东方数据库中遇到了集群问题。因此,我想确保我对集群的理解是正确的,然后如果您能帮助我解决我的问题,那就太好了。

我对集群的理解

首先,我想确保我正确理解集群的概念:对我来说,集群是数据的子集,一个集群可以包含不同的类,单个类可以包含在不同的集群中,这是正确的吗?

例如我有数据:

{"name": "john", "sports": "tennis", "gender": "male", "@class": "assistant"}
{"name": "susan", "sports": "hockey", "gender": "female", "@class": "assistant"}
{"name": "peter", "sports": "hockey", "gender": "male", "@class": "trainee"}
{"name": "mary", "sports": "tennis", "gender": "female", "@class": "trainee"}

然后我就可以拥有这样的集群:

cluster:Male {john, peter}
cluster:Tennis {john, mary}

这种对OrientDB集群的理解正确吗?

我的集群问题

将新数据插入数据库时​​,我想将数据添加到特定集群。我的数据是json格式的。该集群已经存在。但使用以下命令插入后,集群仍然为空。这是通过使用 java API 以及 Web 界面来实现的。

INSERT INTO cluster:Test CONTENT {"name": "john", "@class": "assistant"}

请求时数据本身会被保存:

SELECT FROM assistant

我确实找到了该条目,但该条目不在集群中:Test。我究竟做错了什么?


编辑2014/03/26

我的用例

我实际上将推文保存在我的数据库中。我正在通过给定的关键字搜索 Twitter。我的类(class)模型如下所示:

  • 推特推文
  • Twitter用户
  • 标签

(在推文和用户上方有一个 TwitterBaseClass),我有这样的边缘:

TwitterTweet --originalTweet--> TwitterTweet
TwitterTweet --postedBy--> TwitterUser
TwitterTweet --hasHashtag--> Hashtag

我认为执行高效请求的最佳实践是为每个关键字创建一个集群。例如,当我有关键字“鲨鱼”和“狗”时,我会收到有关鲨鱼和狗的推文,它们都存储在不同集群的同一个图中。


非常感谢您的帮助,提前致谢
路德维希

orient-db v.1.7-rc1

最佳答案

在下一个版本 2.0 中,您无法将多个集群关联到一个类,因此为了与 future 版本保持兼容,最好使用类继承将记录拆分到多个集群上。

编辑2014-10-08:

这不再是真的,在 2.0 中你不能在任何集群中存储记录,但应该声明它托管 X 类的记录。所以类可以有多个集群。我们使用这个功能来管理分布式。

关于OrientDB - 集群概念问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22606111/

相关文章:

json - golang - 解码动态 'flat' http-json 响应

java - 如何从 OrientDB 中存储的日期仅获取年份

database - 我应该使用什么工具在 Web 应用程序上实现 OrientDB?

orientdb - 顶点和边的更新和更新插入

neo4j - 如何构建图形数据库以支持三向关系?

caching - 如何限制 OrientDB 中使用的预写日志文件 (WAL)

java - 将 Neo4j 密码查询转换为 orientdb/gremlin(在 java 中)

OrientDB 包含连接到特定顶点的边的属性

database - 如何在桌面应用程序中嵌入 ArangoDB

node.js - 如何使用nodejs处理OrientDB中的SQL注入(inject)?