为什么顶点计数仅在DSE Graph中的开发模式下获得

时间:2016-08-17 12:06:35

标签: datastax datastax-enterprise

当我尝试使用

在DSE Graph中获取顶点计数时
  

g.V()。COUNT()

在生产模式下显示错误。

Could not find a suitable index to answer graph query and graph scans are disabled

但同样在开发模式下工作。我做错了什么。

我正在尝试快速启动链接,但创建了我自己的架构

https://docs.datastax.com/en/latest-dse/datastax_enterprise/graph/QuickStartStudio.html

架构:

  

schema.propertyKey( “ID”)。INT()。单()。创建()   schema.propertyKey( “名称”)。文本()。单()。创建()

     

schema.edgeLabel( “创建”)。多个()。创建()

     

schema.vertexLabel( “进料”)。特性( “ID”)。创建()   schema.vertexLabel(“user”)。properties(“id”,“name”)。create()

     

schema.vertexLabel( “进料”)。指数( “byFeedId”)。物化()。由( “ID”)。添加()   。schema.vertexLabel( “用户”)。指数( “byUser”)。物化()由( “ID”)。添加()

1 个答案:

答案 0 :(得分:1)

TL; DR

对顶点进行计数是一项昂贵的查询,预计不会在OLTP用例的生产中完成。

为什么?

顶点按DSE图中的顶点类型存储在邻接列表中,并获取所有顶点的计数,这些顶点必须对每个顶点执行全表扫描,这在分布式事务系统中是不切实际的(您&#39 ; d必须点击整个副本集,这可能是很多节点。

这是一个真实的查询。我该怎么办?

如果这是一个真实的用例,它可能是一个分析用例,在这种情况下,您应该通过在分析模式下运行查询来利用spark图形计算机。 注意:全表扫描可能仍需要一些时间,但它将通过DSE Analytics以大规模分布的方式执行。