groovy – 泰坦的“超级节目”

groovy – 泰坦的“超级节目”,第1张

概述我正在开发一个可以很好地处理图形数据库( Titan)的应用程序,除了它有很多边缘的顶点有问题,即 supernodes. 上面的超节点链接指向Titan作者的博客文章,解释了解决问题的方法.解决方案似乎是通过边缘过滤来减少顶点的数量. 不幸的是我想要groupCount属性的边或顶点.例如,我有100万用户,每个用户属于一个国家.如何进行快速groupCount计算每个国家/地区的用户数量? 到 我正在开发一个可以很好地处理图形数据库( Titan)的应用程序,除了它有很多边缘的顶点有问题,即 supernodes.

上面的超节点链接指向Titan作者的博客文章,解释了解决问题的方法.解决方案似乎是通过边缘过滤来减少顶点的数量.

不幸的是我想要groupCount属性的边或顶点.例如,我有100万用户,每个用户属于一个国家.如何进行快速groupCount计算每个国家/地区的用户数量?

到目前为止我所尝试的内容可以在这个精心设计的groovy脚本中显示:

g = TitanFactory.open('titan.propertIEs')  // Cassandrar = new Random(100)people = 1e6def newKey(g,name,type) {    return g        .makeType()        .name(name)        .simple()        .functional()        .indexed()        .dataType(type)        .makePropertyKey()}def newLabel(g,key) {    return g        .makeType()        .name(name)        .primaryKey(key)        .makeEdgeLabel()}country = newKey(g,'country',String.class)newLabel(g,'lives',country)g.stopTransaction(SUCCESS)root = g.addVertex()countrIEs = ['AU','US','CN','NZ','UK','PL','RU','NL','FR','SP','IT'](1..people).each {    country = countrIEs[(r.nextfloat() * countrIEs.size()).toInteger()]    g.startTransaction()    person = g.addVertex([name: 'John the #' + it])    g.addEdge(g.getVertex(root.ID),person,[country: country])    g.stopTransaction(SUCCESS)}t0 = new Date().timem = [:]    root = g.getVertex(root.ID)root.outE('lives').country.groupCount(m).iterate()t1 = new Date().timeprintln "groupCount seconds: " + ((t1 - t0) / 1000)

基本上一个根节点(为了Titan没有“全部”节点查找),通过具有country属性的边链接到许多人.当我在100万个顶点上运行groupCount()时,它需要一分钟.

我意识到Titan可能会迭代每个边缘并收集计数,但是有没有办法让这个在Titan或任何其他图形数据库中运行得更快?索引本身可以计算,所以它不必遍历?我的索引是否正确?

解决方法 如果您为“生活”标签创建“国家/地区” primary key,那么您可以更快地检索特定国家/地区的所有人.但是,在您的情况下,您感兴趣的是一个组计数,该组计数需要检索该根节点的所有边缘,以便迭代它们并对这些国家进行抢占.

因此,这种分析查询更适合图形分析框架Faunus.它不需要根顶点,因为它通过完整的数据库扫描执行groupcount,从而避免了超级节点问题. Faunus还使用Gremlin作为查询语言,因此您只需稍微修改您的查询:

g.V.country.groupCount.cap...

HTH,马蒂亚斯

总结

以上是内存溢出为你收集整理的groovy – 泰坦的“超级节目”全部内容,希望文章能够帮你解决groovy – 泰坦的“超级节目”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1224882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存