当我尝试使用
在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”)。添加()
答案 0 :(得分:1)
对顶点进行计数是一项昂贵的查询,预计不会在OLTP用例的生产中完成。
顶点按DSE图中的顶点类型存储在邻接列表中,并获取所有顶点的计数,这些顶点必须对每个顶点执行全表扫描,这在分布式事务系统中是不切实际的(您&#39 ; d必须点击整个副本集,这可能是很多节点。
如果这是一个真实的用例,它可能是一个分析用例,在这种情况下,您应该通过在分析模式下运行查询来利用spark图形计算机。 注意:全表扫描可能仍需要一些时间,但它将通过DSE Analytics以大规模分布的方式执行。