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

Why the vertex count is getting only in Development mode in DSE Graph

当我尝试使用

在 DSE 图形中获取顶点数时

g.V().count()

在生产模式下显示以下错误。

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

但同样适用于开发模式。我是不是做错了什么。

我正在尝试快速启动 link 但创建了我自己的模式

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

架构:

schema.propertyKey("id").Int().single().create() schema.propertyKey("name").Text().single().create()

schema.edgeLabel("created").multiple().create()

schema.vertexLabel("feed").properties("id").create() schema.vertexLabel("user").properties("id", "name").create()

schema.vertexLabel("feed").index("byFeedId").materialized().by("id").add() schema.vertexLabel("user").index("byUser").materialized().by("id").add()

TL;DR

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

为什么?

顶点按 DSE 图中的顶点类型存储在邻接列表中,要计算所有顶点的数量,您必须对每个顶点进行完整的 table 扫描,这在分布式中是不切实际的事务系统(你必须命中可能有很多节点的整个副本集)。

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

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