Neo4j - 我是否能够可视化我的数据库的简单概览?

19

我已经有了我的图形数据库,包含节点、关系、属性等。我想看到整个数据库是如何连接的,每个关系对每个节点的影响,以及节点的属性等概述。

我不是想查看每个单独的节点,而是想要类似于关系型数据库中的ERD,像这样带有节点标签的东西。这种情况是否可能?

输入图片说明


1
Neo4j不需要节点和关系符合模式。因此,通常很难生成清晰简洁的数据模型图,显示所有属性、关系类型和节点“类型”(带或不带标签)。 - cybersam
Neo4j提供了像Neo4j浏览器这样的工具。请查看此链接是否有帮助Neo4j可视化 - Madhusudana Reddy Sunnapu
5个回答

29

您可以通过运行命令call db.schema()来使用元数据。


1
至少在我的Neo4j Community Edition v4.0中是没有的,在Neo4j浏览器中也不行。 我得到的回复是“Neo.ClientError.Procedure.ProcedureNotFound”--“没有名为'db.schema'的过程在此数据库实例中注册。请确保您正确拼写了过程名称并且已正确部署该过程”。 - Tom Stambaugh
12
在Neo4j的新版本中,您可以使用CALL db.schema.visualization()替代CALL db.schema() - E. Zeytinci

20
在Neo4j v4中,call db.schema()已被弃用,现在可以使用call db.schema.visualization()

4
据我所知,没有直接的方法可以获得一个漂亮的neo4j数据库结构图。在neo4j浏览器中有一个预定义查询,可以找到所有节点类型及其关系。但是,它遍历了整个图形,在数据量过大时可能会因内存错误而失败。

enter image description here

此外,还有neoprofiler。它声称可以做到你所要求的。我从未尝试过,而且最近也没有更新太多。但仍然值得一试:https://github.com/moxious/neoprofiler

1
至少在3.1.2版本中,本答案提到的查询(即“CALL db.schema()”)按照OP的要求工作。是的,我怀疑遍历整个图形是唯一的方法,因为没有硬模式可供查看。但当然,隐式模式可以以某种方式进行索引,我不知道。 - Per Wiklander

2
  1. CALL db.schema.visualization()
    可以使用,但我找不到获取节点或关系属性的方法。

  2. CALL apoc.meta.schema()
    提供了所有内容 - 节点、关系及其属性(包括类型等)以表格/JSON形式呈现。您需要安装数据库插件APOC才能使用它,这并不麻烦。


1
尽管这不是一个图形化的表现方式,但是这个查询将让您了解哪些类型的节点以何种关系连接到其他节点。
MATCH (n)
OPTIONAL MATCH (n)-[r]->(x)
WITH DISTINCT {l1: labels(n), r: type(r), l2: labels(x)}
AS `first degree connection`
RETURN `first degree connection`;

您可以使用此查询来展开标签,以便动态编写下一个Cypher查询(通过脚本语言和使用REST API),然后将该查询粘贴回neo4j浏览器以获取数据的示例集。但这足以让您了解图形概述。从这里开始扩展。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接