65.9K
CodeProject 正在变化。 阅读更多。
Home

为什么图数据库能解决其他数据库无法解决的问题

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2022年6月2日

CPOL

5分钟阅读

viewsIcon

11305

在本文中,我们将探讨为什么在使用Neo4j等图数据库存储和查询数据时,能够快速地展现关键信息,并可能揭示隐藏在复杂数据集中的潜在灾难性问题。

使数据对人们有意义的是其相互关联性。而使数据难以处理的,通常是其缺乏相互关联性(在典型的数据库中)。

相互关联性扩展了可以从分散的、看似无关的数据中推断出的信息价值。关于集群或模式的问题,在图数据库中更容易解决,并且更加显而易见。当您使用Neo4j等图数据库存储和查询数据时,您能够快速地展现关键信息,并可能揭示隐藏在复杂数据集中的潜在灾难性问题。

立即收听

适合图数据库的场景

更多信息

Neo4j AuraDB:合适的图数据库,而非图数据库的附加组件

从简单开始

与任何数据库一样,您的基本问题应该能够轻松回答。例如,聚合信息(如记录的总计、平均值、最大值或最小值),或按特定属性值搜索和检索特定记录。

为了说明图数据库中的情况,假设我们有一个庞大的用户列表,并希望找到所有名字以“adam”开头的人。对于这种情况,图数据模型将是一个单一的标签类型

用户记录之间没有连接到任何其他用户或其他数据,因此整个列表可以被视为一个大的独立节点集合

查询“Adam”的结果将是一个子集

事实上,所有类似的查询,例如“谁是某个日期之后创建的所有用户”或“哪些用户居住在某个特定城市”,都将从总用户集合中返回这样的子集。

可以看到,这些类型的问题很容易被图数据库回答,但这组问题-答案集本身并不是图状问题。用户之间没有明显的关联或联系,无法发现其他有趣的信息。

数据中的关系

现在,假设一个图数据库为在线论坛提供支持,用户可以在其中提问。这些问题可以由其他用户回答。更新后的数据模型将是这样的

现在,不仅有了更多形式的数据(额外的节点),而且在节点之间也存在数据。例如:大多数用户之间相隔多少度?哪个用户子集只在没有其他答案存在时才回答问题?

请注意,上述数据模型的整个图呈现为散布的节点集群集合,就像马铃薯上的麻点一样。它们聚集在一起,分成小的、独立的组,这可能会给您留下印象,即大多数节点所指的问题彼此之间并不相关。实际上,这不太可能,因为用户可能在特定的上下文中提问。例如,在一个汽车维修论坛上,用户可能会寻求维护或改装特定汽车或组件类型的技巧。

因此,我们缺少一些能更好地将问题联系起来或对其进行分类的东西。一种连接它们的方法是为每个问题打上关键字标签。让我们添加一个新的节点类型,标记为“Tag”,并以关键字作为唯一的名称属性。

有了这个补充,更新后的数据模型变成了

请注意,在Neo4j中还可以通过其他几种方式建立这些关键字关联,但这似乎是最清晰的选择——这一点稍后会更加明显。有关节点标签的其他选项和最佳实践的更多信息,请参阅David Allen撰写的这篇Medium文章

一旦我们将这些标签包含在数据库中,我们就会得到一个更丰富的网络,其中所有数据节点现在都相互链接

像这样的图数据在外观上既美观又令人敬畏。起初您可能不知道从何入手,但图数据库可视化在这里可以非常方便。仅仅通过查看这个可视化的图,我们就可以立即看到,大多数问题都围绕着一个名为“cypher”的标签,而cypher是一种开源的图数据库查询语言。

Cypher使用类似ASCII艺术的语法,可以轻松形成与模式相关的查询并执行CRUD操作。了解如何编写Cypher查询将帮助您更好地利用图数据库,但随着Neo4j Bloom等交互式可视化工具的出现,这并非绝对必要。

通过Bloom,您可以快速地探索数据集,聚焦于特定的节点、关系或模式,从而进行查找数据集群或异常值,或查找节点集之间的最短路径等操作。

下一步

关系型数据库和NoSQL数据库(包括工具和数据结构)确实有,而且将永远有其存在的价值。但是,Neo4j等图数据库管理器是存储和查询松散或紧密互连信息的强大工具。它们不仅能够支持来自表格数据的简单查询,而且还能够回答从数据关系中浮现的重要问题。

如果您从事软件开发,您可能会注意到上面讨论的数据模型看起来很像Stack Overflow,事实也确实如此!实际的Stack Overflow数据包含评论节点,以及从评论节点到用户和问题的额外关系。

要更深入地以图的形式研究SO的数据,请参阅Neo4j的Stack Overflow沙盒上的这篇文章,其中有关于启动您自己的免费实例的说明。此外,还介绍了高级的APOC数据科学算法库,这些库增加了从其他数据库导入或集成数据的实用程序,利用Page Ranking等图算法,以及训练或利用机器学习模型的能力。

现在您的眼界已经打开,看到了图数据库的一些功能和可能性,一个充满新见解的世界正等待着您。

阅读更多

© . All rights reserved.