首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Titan - Cassandra:在不耗尽内存的情况下处理给定类型的整个顶点集

Titan - Cassandra:在不耗尽内存的情况下处理给定类型的整个顶点集
EN

Stack Overflow用户
提问于 2016-01-26 21:43:06
回答 1查看 80关注 0票数 1

我是Titan的新手,正在寻找在不耗尽内存的情况下迭代具有给定标签的整个顶点集的最佳方法。我有很强的SQL背景,所以我仍然在努力将我的思维方式从SQL类型的思维方式转换过来。假设我有一百万个轮廓顶点。我想遍历每个配置文件,并对链接到每个配置文件的信息执行某种类型的统计分析。我真的不关心整个分析过程需要多长时间,但我需要迭代所有的配置文件。在SQL语言中,我会使用滚动敏感的结果从MY_TABLE中选择*,获取下一个结果,抓取并处理链接到该行的信息,然后获取下一个结果。我也不关心结果是否实时准确,因为它只是为了收集一般统计数据,所以如果在迭代过程中添加了新的配置文件,而我错过了它,那也没问题。

即使有一种方法可以获取给定属性的所有值,这也可能是可行的,因为这样我就可以遍历该列表,并通过ID来获取每个顶点。

EN

回答 1

Stack Overflow用户

发布于 2016-01-27 16:49:19

我相信titan做了延迟加载,所以你应该能够遍历整个图:

代码语言:javascript
复制
GraphTraversal<Vertex, Vertex> it = graph.traversal().V();
while(it.hasNext()){
    Vertex v = it.next():
    //Do what you want here
}

另一种选择是使用range步骤,以便显式选择所需的顶点范围。例如:

代码语言:javascript
复制
List<Vertex> vertices = graph.traversal().V().range(0, 3).toList();
//Do what you want with your batch of vertices.

关于获取特定类型的顶点,您可以根据其内部属性来查询顶点。例如,如果您有和内部属性"TYPE",它定义了您感兴趣的类型。您可以通过以下方式查询这些顶点:

代码语言:javascript
复制
graph.traversal().V().has("TYPE", "A"); //Gets vertices of type A
graph.traversal().V().has("TYPE", "B"); //Gets vertices of type B
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35015214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档