【问题标题】:OrientDB - Problems with Clusters ConceptOrientDB - 集群概念的问题
【发布时间】:2014-10-08 19:36:27
【问题描述】:

我在 orient db 中遇到了集群问题。所以我想确保我对集群的理解是正确的,如果你能帮助我解决我的问题,那就太好了。

我对集群的理解

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

所以例如我有数据:

{"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

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


编辑 2014/03/26

我的用例

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

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

(在推文和用户上方有一个 TwitterBaseClass)我有这样的优势:

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

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


非常感谢您的帮助,在此先感谢
路德维希

orient-db v. 1.7-rc1

【问题讨论】:

    标签: orientdb


    【解决方案1】:

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

    2014-10-08 编辑:

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

    【讨论】:

    • 您能否详细说明 2.0 中的变化?是否在任何地方发布了路线图?谢谢。
    【解决方案2】:

    您应该通过 API 或 SQL 将集群“Test”添加到课堂助手:

    alter class assistant addcluster test
    

    【讨论】:

    • 您好,Lvca,感谢您的回答。不幸的是,它仍然不起作用。我现在将集群 ID 添加到类中。还有其他想法吗?您能否也回答我的第一个问题,我对集群的理解是否正确?
    • 抱歉,初读时没看懂问题。当 CONTENT 关键字覆盖 CLUSTER 时,这似乎是一个错误。从 1.7x 开始,我们不鼓励对同一个类使用不同的集群,因为未来的优化之一是删除少数开发人员使用的这个特性。您是否可以使用 1 个类 -> 1 个集群并使用继承来拥有多个类/集群?它适用于您的用例吗?
    • 嘿 Lvca,对我来说集群的概念——据我所知——真的很棒,我更愿意保留这个功能。我编辑了我的问题,并为我的用例提供了更多详细信息。我认为每次添加新关键字时都可以通过创建子类来工作,但这不是使用集群的更好方法吗? ----[[我的问题似乎得到了回答,由于错误和映射1类->多个集群将在以后的版本中被删除,所以我的问题似乎得到了回答,请您写一个新的答案来总结一下这让我能接受吗? ]]----
    猜你喜欢
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    相关资源
    最近更新 更多