知识库

如何生成节点、关系、属性的统计清单

使用以下 Cypher

MATCH (n) WHERE rand() <= 0.1
WITH labels(n) as labels, size(keys(n)) as props, size((n)--()) as degree
RETURN
DISTINCT labels,
count(*) AS NumofNodes,
avg(props) AS AvgNumOfPropPerNode,
min(props) AS MinNumPropPerNode,
max(props) AS MaxNumPropPerNode,
avg(degree) AS AvgNumOfRelationships,
min(degree) AS MinNumOfRelationships,
max(degree) AS MaxNumOfRelationships

将生成图中的节点“清单”以及与每个标签的节点数、平均属性数、最小属性数、最大属性数、平均关系数、最小关系数和最大关系数相关的统计信息。此 Cypher 可用于帮助理解性能和/或数据库增长。

以上 Cypher 执行了整个图遍历,然后通过包含“rand()⇐ 0.1”对 90% 的节点进行“采样”。因此,返回的数字实际上是图的 10% 样本。

在 Neo4j 3.0 中,上述查询已作为收藏夹包含在浏览器中,并定义在“数据分析 / 存在哪些类型的节点”下。

© . All rights reserved.