【问题标题】:Neo4j - is it possible to visualise a simple overview of my database?Neo4j - 是否可以可视化我的数据库的简单概述?
【发布时间】:2016-02-08 23:07:08
【问题描述】:

我有我的图形数据库,其中填充了节点、关系、属性等。我想了解整个数据库的连接方式、与每个节点的每个关系、节点的属性等的概述。

我的意思不是查看每个单独的节点,而是像来自关系数据库的 ERD 之类的东西,像这样,带有节点标签。这可能吗?

【问题讨论】:

  • neo4j 不需要节点和关系来符合模式。因此,一般来说,很难产生一个清晰简洁的数据模型图,显示所有属性、关系类型和节点“类型”(带或不带标签)。
  • neo4j浏览器等工具由neo4j提供。看看这个链接是否有帮助neo4j visualization

标签: neo4j diagram erd visualize


【解决方案1】:

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

【讨论】:

  • 我的 Neo4j 社区版 v4.0 中没有,至少 Neo4j 浏览器中没有。我得到的响应是“Neo.ClientError.Procedure.ProcedureNotFound”——“没有为此数据库实例注册名称为 db.schema 的过程。请确保您已正确拼写过程名称并且该过程已正确部署。”
  • 在新版本的 Neo4j 中,可以使用CALL db.schema.visualization() 代替CALL db.schema()
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    据我所知,没有直接的方法可以得到一张精美的 neo4j 数据库结构图。

    neo4j 浏览器中有一个预定义的查询,用于查找所有节点类型及其关系。但是,它会遍历完整的图表,如果您有大量数据,它可能会因内存错误而失败。

    此外,还有 neoprofiler。这是一个声称你所问的工具。我从来没有尝试过,它最近没有得到太多更新。还是值得一试:https://github.com/moxious/neoprofiler

    【讨论】:

    • 至少在 3.1.2 中,此答案中提到的查询(即“CALL db.schema()”)按 OP 的要求工作。是的,我怀疑遍历完整的图表是唯一的方法,因为没有硬模式可供查看。但是当然隐式模式可以以某种方式被索引,我不知道。
    【解决方案4】:

    即使这不是图形表示,此查询也会让您了解哪些类型的节点以何种类型的关系连接到其他节点。

    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`;
    

    您可以使用此查询展开标签以动态编写下一个密码查询(通过脚本语言和使用 REST API),然后将该查询粘贴回 neo4j 浏览器以获取数据示例集。

    但这应该足以让您大致了解您的图表。从这里展开。

    【讨论】:

      猜你喜欢
      • 2011-06-23
      • 2011-01-30
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      相关资源
      最近更新 更多